Pitch tracking stuff seems to be popular these days (referring to moog1's bass pitch tracker in this forum section).

I've implemented Philip McLeod's Specially Normalized AutoCorrelation (SNAC) method in [snac~]. Initially, I only wanted to evaluate the method. But it turned out to have some excellent characteristics which make it really useful in practice, therefore I decided to build binaries and share the stuff. See attached snac~.zip if you're logged in.

For one thing, it is incredibly accurate with no more than 0.1 Hz deviation from the real input pitch. Secondly, it generates 'fidelity' messages, indicating to which degree the input signal is periodic. So you can easily exclude results from noisy frames (transients or other non-periodic content). Fidelity messages do not depend on signal RMS level, they even distinguish periodic content at very low sound levels.

Theory of SNAC is described in Philip McLeod's thesis (though at the moment of this writing, the site seems to be inaccessible):



Edit: [snac~] is discontinued and replaced by improved object [helmholtz~], go to: