Sí, ¡de eso se trata la FFT! Para darle el espectro de frecuencia de los datos que alimenta. La parte difícil son los detalles de implementación, como usted ha mencionado.
Dependiendo de lo que quieras hacer, exactamente, cambia la respuesta.
Si solo quieres analizar tu propia música, ya hay un software para hacerlo. Podrías mirar los ecualizadores que muestran la respuesta (básicamente la FFT) u obtener un "ecualizador musical" que también muestre los tonos. Puede obtener audio en VST midi que convierten lo que toca en las notas midi correctas. Si su teclado es midi, simplemente omita los VST y grabe el midi directamente.
Si quieres enseñarte a ti mismo el FFT y cómo se relaciona con la música, entonces mejor obtener algo como Matlab donde puedas calcular el FFT de cualquier dato. Tiene la capacidad de grabar y también reproducir junto con la lectura de archivos wav y demás. Estos luego serán realmente fáciles de usar. Puede graficar el audio y hacer todo tipo de análisis bastante rápido si conoce la sintaxis.
Si desea construir un dispositivo para hacer tal cosa, entonces es bastante complejo. Necesitará un uC / dsp / fpga / etc para hacer los cálculos. La mayoría de los dispositivos populares ya vienen con código FFT, por lo que no tendrá que codificarlo usted mismo (también es complicado).
Tendrás que construir el circuito y todo eso. No es difícil, pero dependiendo de su experiencia / conocimiento, podría llevar bastante tiempo y tiene una curva de aprendizaje empinada. También depende de la calidad del producto final.
Matemáticamente, una nota musical ideal consiste en una serie geométrica de lo "fundamental".
Suponga que F0 es la frecuencia fundamental, entonces la mayoría de las notas musicales se aproximarán por F (t) + F0 * sum (a_k e ^ (2 ^ k F0 * pi i t)) = F0 + a_1 * F1 + a_2 * F2 +. ...
Los a_k son solo la fuerza de esas frecuencias más altas F_k y F_k es solo un múltiplo de F0. Si a_k = 0 para todo k, entonces tenemos una sinusoide pura. El tono de esto es fácil de detectar. Simplemente encuentre el máximo de la FFT y esa frecuencia es la fundamental del tono = la nota musical.
Cuando tomas el FFT, terminas con datos que, y solo haces matemáticas. Básicamente es cálculo.
Todo eso es relativamente fácil.
Algunos problemas con los que tendrás que lidiar. Tenga en cuenta que no todos estos están "resueltos".
Latencia: si va a hacer cualquier tipo de cosas en tiempo real, esto puede convertirse en un problema.
Notas múltiples: es difícil determinar el grupo de notas debido a todos los armónicos adicionales. Si toca A = 440hz y A '= 880hz, la mayoría de los armónicos se superpondrán. Puede obtener fácilmente A = 440 hz, pero obtener A '= 880 hz es más difícil. Cuando piensa en acordes, ejecuciones rápidas, etc., puede ser muy difícil obtener con precisión toda la información (notas). Si bien todo generalmente es matemáticamente posible, los datos en sí tienen errores y aberraciones, y las ecuaciones están poco definidas en algunos casos.
Ruido: el ruido en la señal puede brindarle resultados espurios. Si se produce un ruido musical, puede arruinar sus resultados. Se requerirían mejores algoritmos = tiempo + dinero + conocimiento.