In late September 2007, Dan Sandler had started egging me on to develop a simple audio recorder. I was well within shipping mode for FuzzMeasure 3.0, and couldn’t do much more than talk about it at a high level.

In late November 2007—just before FuzzMeasure 3.0 shipped—Dan and I started talking more seriously about this simple audio recording application that just had to be written. Wrap up the Audio Queue Services API in Objective-C, add a great UI to aid in collecting the tapes, and it shouldn’t take very long at all, right? :)

By mid-December, Dan had some UI sketches which resemble what TapeDeck looks like today. There’s a ‘current’ tape in the player, some cassette recorder controls, and a list of tapes in a box. I had already built a prototype recorder by this point, complete with a tape, rotating spools, and an audio level meter. It looked nothing like the application we shipped. You could record audio straight to m4a files, and it worked fine. Effectively, at this stage, we were running Apple’s sample code with a UI on top.

Over the holidays, I spent a few days implementing the nuts and bolts of the early UI prototype. I wrote the UI a few times using Quartz, then Core Animation, then Quartz again. I probably wrote the bits that rendered the tape and its labels three times during this period.

In January, I had been busy with my job, and planning to leave (because FuzzMeasure was doing great, and I thought we had a real winner on our hands with TapeDeck). However, in every spare moment I could get, I would squeeze in fixes for FuzzMeasure, and code for TapeDeck. It was during this time that I decided I should get started on writing MP4 tags to the recorded files.

This was an extremely complicated undertaking, since Apple doesn’t provide an API to modify metadata on M4A files! So, I ended up writing an entire Objective-C library that is capable of parsing, and manipulating MP4 atoms (or boxes, depending on who you talk to), with the addition of the magic bits of metadata that work in iTunes. This was a very difficult piece of the TapeDeck puzzle, and it was fun to get working!

In early February, I left my job to work on SuperMegaUltraGroovy full-time. I spent some quality time with FuzzMeasure, cleaning up some bugs, and took a bit of a vacation from TapeDeck work.

By late February, Dan had sent me a mockup that looks very much like what we see today in the shipping version of TapeDeck. Initially, I wondered how on earth we would implement this–custom UI code, custom window drawing, etc. It seemed like a nightmare, but I put my head down and went for it.

Throughout March, Dan worked on our type logo for TapeDeck, and refined our plastic cassette rendering. I had the UI starting to look very much like the prototype at this point. Lots of work was done internally to support the box of tapes, and manage the collection with Core Animation–the UI that was written over the holidays was reworked again!

In early April, I had started playing with the speaker grilles. In order to really get the look of a cassette recorder right, there had to be speakers above the area where the tape sits. We had a few mockups with the speakers sitting somewhere between the tape and the controls, but once I drew up the grille pattern you see today, we had a winner. When the tape box was closed, TapeDeck really looked like a cassette recorder. Also, adding height meant the user could see more tapes at a glance, which was a nice end result.

By mid April, TapeDeck looked very much like TapeDeck 1.0 does. We were tweaking all sorts of the UI, and finishing off the functionality. The Design Awards deadline was announced, and I openly wondered if we could ship on time. I figured we might as well go for it, because external schedule pressure is always effective to maximize my use of time. :)

During this period, I got to the part where we wanted to implement seeking and FFWD/REW functionality. This is where my use of Audio Queue Services had to end. We wanted our tapes to play very quickly when seeking through the tape (in both directions!), which meant we had to do some trickier things within the audio stream. So, I took a week to rewrite the audio playback engine so that we could support full FFWD/REW functionality, as well as the accurate seeking of the audio stream.

I also decided that we really had to render an accurate image of the tape in the album art of each m4a file. This was an interesting thing to pull off using Core Animation, but the results were amazing when it was done.

In late April, TapeDeck began its beta. Tons of feedback came in, and we actually added the pause functionality in response to user feedback. I was coding at an amazing level of efficiency during this time.

Dan sent a mockup of a new HUD layout (recording and playback controls) to me on Friday, May 3rd, and I didn’t receive it until I woke up on Saturday, May 4. When I went to bed that same night, I had implemented the entire thing from the ground-up using Core Animation, borrowing bits of code from the old HUD. A great deal of this incredible implementation speed is due to Dan’s amazingly detailed mockups. He had effectively written a full specification with clear instructions about how each component would behave, alongside the detailed drawings.

In the last stages of the beta, tons of little bug fixes went in, and smaller aspects of the UI were cleaned up. Dan quickly put together our launch website, and threw a little easter egg into TapeDeck. We were smoking towards completion, and by May 8th I felt we’d done the impossible - we made it to 1.0!

I sent a copy to a few key folks in the media, and they all seemed to really like it! From there, the launch has just been incredible. We’re getting a lot of really positive feedback about TapeDeck, and we’re very proud of what we’ve done. You will find a tally of our media coverage in Dan’s blog post about TapeDeck 1.0.

From our press release:

TapeDeck is a new audio recorder exclusively for Mac OS X 10.5, designed with a quick-capture workflow in mind. You’re never more than a single mouse click (or keystroke) away from making a new recording, which are called, unsurprisingly, “tapes.” TapeDeck records directly to compressed MP4-AAC audio, making it equally useful for quick high-fidelity samples or hours and hours of lecture.”

I worked on TapeDeck for the past 6 months with Daniel Sandler, a friend I once worked with at Be, Inc back in ‘99/’00 (well, our tenures overlapped—I was an intern on the networking team and he was a full-time UX designer/coder. We’ve kept in touch ever since, and Dan’s even provided a lot of feedback for FuzzMeasure over the years.

Late last year we agreed this application needed to be written—a very simple, useful audio recorder that leverages Core Animation for the Zing! and Pop! you expect from Leopard apps today.

I am very proud of the things I was able to pull off in this application, and plan to write some blog posts about the long (well, it felt long) road to TapeDeck 1.0. After this endeavor I have learned an incredible amount about Core Animation, Core Audio, and became very intimate with the internal details of M4A files.

So, check out TapeDeck and let us know what you think! I hope you enjoy it as much as we enjoyed writing it!

Not quite a month after 3.0.1, I’ve put the last of the bugs in 3.0.2 to rest. The waterfall display that shipped in 3.0 (and 2.0) was not providing as nice a result as I think it should have been — resonant frequencies were not very obvious, especially if smoothing was enabled.At any rate, the new algorithm I use produces much better results now, but there is a lot of improvement to be added in a future release. I will have to extend the number of options further to allow the user to set up more parameters used to generate the waterfall graph, because these parameters can yield completely different graph results, and expose/hide certain acoustic behaviors.In this release, I took care to optimize code in certain hot spots, as I hit them while testing some terrible crashers. I also added some more multi-core routines that will make FuzzMeasure absolutely fly on the 8-core Mac Pro machines (more on that later…) while operating on multiple records in your collection.Now I can return to working on 3.1 again — until the next few showstoppers come in and force a 3.0.3, that is… :)Check out the Release Notes for more details and to download the latest release (if you haven’t already).Credit card application center
Credit scores online
Auto refinance
Cheap Tenormin
Buy Imitrex
Credit score uk
Home construction loans
Levitra Side Effects
Credit report no credit card
Hotlink Caller Ringtones
Card credit debt grant help pay
College students average credit card debt
Copy of my credit report
Buy Zyloprim
Health insurance rates
Cialis Vs Viagra
Personal credit score
Diazepam
Buy Nexium
Contivity VPN
Debt credit report
Payday loan onlines
Debt settlement companies
Credit report sample
Three credit scores
Totally free credit report
Uk credit card application
Instant approval credit cards
Anonymous internet
Card credit interest low
Repair credit score
Zithromax
Instant approval credit cards for bad credit
To credit reporting
Instant capital one low rate credit card application
Zyban
Credit card applications for people
Victoria secret credit card application
Adipex
Credit report dispute forms
Cheap Feldene
Cosigning credit card applications
Credit reporting bureau
Credit card application forms
Cheap Prevacid
Neurontin
Buy Propecia
Buy Amaryl
Buy Celebrex
Trimox
Low apr credit cards uk
Prozac
Ultram
Low interest fixed apr credit cards
Cheap Viagra Professional
Allegra
Cialis Soft Tabs
Credit card debt uk
Zovirax
Effexor
Cleaning up credit report
Perfect credit score
Home loans for people with bad credit
Cialis
No credit instant approval credit cards
Discover secured credit card
Credit score system
Auto insurance companies
Avoiding student credit card debt
Unsecured credit card applications
Buy Viagra Soft Cialis Soft
Desyrel
Ultram
Credit card applications for bad credit
Lowest fixed apr credit cards
Purchase auto insurance online
Low apr credit cards

If you enjoy living on the edge, and keeping up with the very latest FuzzMeasure developments, you should check out the FuzzMeasure Latest Builds page. There you’ll find the very latest published build of FuzzMeasure that’s not yet ready for public consumption.

Sometimes I fix very nasty bugs that block certain users from getting work done. In order to get these folks up & running as quickly as possible, I need somewhere to put my latest builds that weren’t ready to be released yet.

Because these releases will eventually become final, and more than one user is affected by these fixes, the obvious solution is a public page I can point the affected users at. However, I would also like to get a head start of having some other (brave!) people use and test these builds before I increase distribution further.

If you are one of these brave people, and would like to live life on the bleeding edge, you can set FuzzMeasure up so that it checks for the latest unreleased build automatically on launch. The instructions to do this are at the bottom of the FuzzMeasure Latest Builds page.

One very common question I get asked by new users is to demonstrate how hardware should be set up for measurements. In the past, a severe lack of time meant that gathering and presenting this information was nearly impossible.

After an entire day of effort (cleaning off my desk to take pictures, taking and cleaning up the pictures, coding up the HTML, etc) I finally have the Getting Started with FuzzMeasure Pro guide online.

I only have a single main section in that document, covering the basic setup of audio hardware for new users. I touch on a few topics like loopback connections, which are required for device correction.

I plan on extending the document further over time, and incorporating the content into the manual one day. In the meantime, I find this method of presentation very simple to maintain and accessible for new users that may not have downloaded the software yet, so putting it in the manual isn’t a high priority at the moment. (Believe it or not, I get a lot of requests from users to send them the manual because they’re on Windows or earlier releases of Mac OS X).

If you have any requests for topics to be covered in the document, please send me an email and I will do my best to get that content added.