I am working on a project whereby I am trying to determine the exact note played on an electric guitar with a microcontroller (as quickly as possible after the string is plucked) and to use this information (ie digital value of note) to manipulate an audio output via DAC.

I am using an STM32F4, sampling the DC offset and active fitered guitar signal with a 12-bit ADC (sample rates pretty much as fast as I need with timer triggered ADC DMA) and the highest number of F32 FFT points I can achieve with the RAM available is 4096 (ie 8192 samples).

The guitar frequencies I need to measure are between 82Hz and about 831Hz, with a resolution at the low end of 2Hz and about 22Hz at the top.

* Am I correct in saying minimum sample time to achieve this is about 0.5s, driven by the minimum frequency and resolution requirement?
* And at higher frequencies I can sample for shorter (with a higher sample rate)?
* Or is there (hopefully) something I'm missing?
* Can I measure the lower frequencies with fewer FFT points (and thus samples), saving time?