Ha habido muchos ejemplos de proyectos que tratan de resolver este problema, por ejemplo: detección de frecuencia Arduino por amandaghassaei y Biblioteca de contador de frecuencia de Arduino.
Pero todos ellos utilizan técnicas de dominio del tiempo; Análisis de la señal para las características tales como: pendiente de cruces por cero, detección de picos, detección etc...
Echa un vistazo a las formas de onda se muestra. Uno de ellos se registra de un Piano tocando C media (C4). El otro es de un sintetizador jugando-C media (C4). Claramente cualquier buen algoritmo tiempo dominio funcionará bien con la forma de onda de Piano. Pero la forma de onda de sintetizador no será identificable de esa manera porque su contenido armónico muy fuerte hace que la frecuencia fundamental undiscernable. Parece imposible identificar la frecuencia de esta señal.
Es posible.
Utilizando la técnica que voy a mostrar fue medido para ser 259,91 Hz ... sólo 0,09 Hz de una C media frecuencia de 260 Hz.