

Making a Guitar Tuner with HTML5 - jbergknoff
http://jonathan.bergknoff.com/journal/making-a-guitar-tuner-html5

======
xyzzy_plugh
Pretty cool, but a Fourier transform is overkill! Many commercial hand-held
tuners use a cool trick that works exceptionally well: zero-crossing.

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.

Regardless, nice job.

~~~
spatten
True, and cool (I hadn't heard of zero-crossing before, thanks!) but an FFT
gives you the ability to do interesting things like chord recognition.

I may have to play around with the code here and see if I can get it to pick
out multiple notes being played simultaneously, and maybe get it to measure
how fast I can do chord changes (like Justin Sandercoe's "1 minute changes"
practice method[1]).

[1]:
[http://justinguitar.com/en/BC-115-1MinuteChanges.php](http://justinguitar.com/en/BC-115-1MinuteChanges.php)

------
notdan
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:

[http://www.tunetranscriber.com/](http://www.tunetranscriber.com/)

~~~
notthetup
Pretty cool. Do you have source or any writeup of your techniques for the kind
of phase vocoding you are doing?

