Pretty cool, but a Fourier transform is overkill! Many commercial hand-held tuners use a cool trick that works exceptionally well: zero-crossing.<p>While far less accurate than your implementation, it can still help nail the note (I've written an implementation in awk before... disgusting, but worked!). Simply look at the raw data, and see when it crosses over from negative to positive (or vice-versa). Count the number of crossings in some interval, and now you have the frequency. Usually a little input fuzzing is required, but it works exceptionally well.<p>Regardless, nice job.
If you are interested in guitars/music and HTML5, I wrote a transcribing tool (looper, slow downer, etc) that runs in a browser and uses the Audio APIs. Wasn't sure if it would be possible, but was able to do quite a bit:<p><a href="http://www.tunetranscriber.com/" rel="nofollow">http://www.tunetranscriber.com/</a>