Interpolating the spectrum with a polynomial is one way to infer the true frequency of spectral peaks that lie in between FFT bins. This works with some success provided there isn't too much noise or other tones contributing to the adjacent bins.<br><br>Another method of getting finer frequency resolution from the FFT is to perform two consecutive FFTs on the signal and then look at how much the phase has changed in the dominant bins from one FFT frame to the next. Again this is susceptible to noise though and doesn't work if there is more than one tone contributing to the magnitude and phase in a given spectral bin!<br><br>In my opinion Autocorrelation or AMDF deal much better with complex or difficult signals for pitch detection than the FFT does. For example think of what the first dominant spectral bin would be for the FFT of a harmonic waveform that just happens to have its fundamental frequency absent. Whereas AC or AMDF don't care if the fundamental frequency is missing, they just look for time-domain periodicity, so aren't so easily tricked.<br><br>They also take the entire waveform into account so aren't so easily tricked by complex waveforms that cross zero several times during each period. Whereas squaring up the audio waveform with a comparator and either counting the zero-crossings or measuring the time between zero-crossings are both doomed to failure on all but the simplest of waveforms like sine, tri, sqr, etc...<br><br>FFT also has a lot of latency for pitch detection because you have to buffer up a full frame of audio data before you can even start to transform it into the frequency domain and begin looking for spectral peaks.<br><br>-Richie,<br><br>Sent from my Xperia SP on O2<br><br>---- Steve wrote ----<br><br><div style="font-family: Verdana;font-size: 12.0px;"><div> </div>

<div>> Don't both with FFT for pitch detection. It has loads of latency, poor pitch resolution</div>

<div> </div>

<div>Although that can be alleviated by using a center frequency estimator on FFT peaks?<br/>
I have no mathematical clue how real the seeming gain in accuracy is, I just know this has been used in a tuning product.<br/>
Some are described here:</div>

<div>http://www.ericjacobsen.org/fe2/fe2.htm</div>

<div> </div>

<div> 
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><br/>
<b>Von:</b> "Richie Burnett" <rburnett@richieburnett.co.uk><br/>
 </div>

<div name="quoted-content">Look up autocorrelation and AMDF. These are techniques used for detecting periodicity in complex waveforms.<br/>
<br/>
Don't both with FFT for pitch detection. It has loads of latency, poor pitch resolution, and is easily tricked by a missing fundamental.<br/>
<br/>
-Richie,<br/>
<br/>
Sent from my Xperia SP on O2<br/>
<br/>
---- oren levy wrote ----<br/>
<br/>
>Hi All,<br/>
><br/>
>I realize this isn’t directly synth related but it’s audio related electronics.<br/>
><br/>
>What are the preferred methods nowadays for designing accurate chromatic tuners for a range of instruments? I’d like to put together a chromatic tuner that I can hang on the wall that has a built in microphone to help tune instruments ranging from a bass (let’s say 30Hz) up to maybe 2k with better resolution than a snark tuner. The idea being that I can just play an open string on an acoustic guitar and look at the wall to see how far off I am. Or play an oscillator on my modular through my speakers and tune it.<br/>
><br/>
>I am aware of two ways of going about it at the moment: measuring the period of the wave and doing an FFT.<br/>
>I can take the mic signal and condition it and square it off through a comparator to get a clean pulse to measure the period on a uC but I worry that some instruments put out some funky waves.<br/>
><br/>
>Are there any newer or more novel ways to measure the frequency of funky waves as low as 30Hz?<br/>
><br/>
>Rock & Roll,<br/>
>Oren Levy<br/>
>_______________________________________________<br/>
>Synth-diy mailing list<br/>
>Synth-diy@synth-diy.org<br/>
><a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br/>
<br/>
_______________________________________________<br/>
Synth-diy mailing list<br/>
Synth-diy@synth-diy.org<br/>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a></div>
</div>
</div></div>