Sim, é disso que trata a FFT! Para fornecer o espectro de frequência dos dados que você alimenta. A parte difícil são os detalhes da implementação, como você mencionou.
Dependendo do que você deseja fazer, exatamente, muda a resposta.
Se você deseja apenas analisar sua própria música, já existe um software para fazer isso. Você pode olhar para os equalizadores que mostram a resposta (basicamente a FFT), ou obter um "equalizador musical" que também mostra os tons. Você pode obter áudio para VSTs midi que convertem o que você toca nas notas midi corretas. Se o seu teclado for midi, basta pular os VSTs e gravar o midi diretamente.
Se você quiser aprender a FFT e como ela se relaciona com a música, é melhor obter algo como o Matlab, onde você pode calcular a FFT de qualquer dado. Tem a capacidade de gravar e também reproduzir junto com a leitura de arquivos wav e similares. Estes então serão realmente fáceis de usar. Você pode representar graficamente o áudio e fazer todos os tipos de análise rapidamente, se conhece a sintaxe.
Se você deseja criar um dispositivo para fazer isso, é bastante complexo. Você precisará de um uC / dsp / fpga / etc para fazer os cálculos. A maioria dos dispositivos populares já vem com o código FFT, assim você não precisará codificá-lo por conta própria (também complicado).
Você precisará construir o circuito e tudo mais. Não é difícil, mas dependendo da sua experiência / conhecimento, pode levar algum tempo e possui uma curva de aprendizado acentuada. Também depende da qualidade do produto final.
Matematicamente, uma nota musical ideal consiste em uma série geométrica do "fundamental".
Suponha que F0 é a frequência fundamental, então a maioria das notas musicais será aproximada por F (t) + F0 * soma (a_k e ^ (2 ^ k F0 * pi i t)) = F0 + a_1 * F1 + a_2 * F2 +. ...
Os a_k são apenas a força dessas frequências mais altas F_k e F_k é apenas um múltiplo de F0. Se a_k = 0 para todo k, então temos um sinusóide puro. O tom disso é fácil de detectar. Basta encontrar o máximo da FFT e essa frequência é o fundamental do tom = a nota musical.
Quando você pega a FFT, você acaba com os dados e apenas faz as contas. É basicamente cálculo.
Tudo isso é relativamente fácil.
Alguns problemas com os quais você terá que lidar. Observe que nem todos esses são "resolvidos".
Latência - Se você fizer qualquer tipo de coisa em tempo real, isso pode se tornar um problema.
Várias notas - É difícil determinar o grupo de notas devido a todos os harmônicos extras. Se tocar A = 440hz e A '= 880hz, a maioria dos harmônicos se sobrepõe. Você pode obter facilmente A = 440hz, mas obter A '= 880hz é mais difícil. Quando você pensa em acordes, execução rápida, etc., pode ser muito difícil obter com precisão todas as informações (notas). Embora tudo seja geralmente matematicamente possível, os dados em si apresentam erros e aberrações, e as equações são sub-definidas em alguns casos.
Ruído - O ruído no sinal pode gerar resultados espúrios. Se ocorrer um ruído musical, pode estragar seus resultados. Algoritmos melhores seriam então necessários = tempo + dinheiro + conhecimento.