Ya, inilah tujuan FFT! Untuk memberi Anda spektrum frekuensi dari data yang Anda makan. Bagian yang sulit adalah detail implementasi, seperti yang telah Anda sebutkan.
Bergantung pada apa yang ingin Anda lakukan, tepatnya, mengubah jawabannya.
Jika Anda hanya ingin menganalisis musik Anda sendiri, sudah ada perangkat lunak di luar sana untuk melakukan itu. Anda bisa melihat EQ yang menunjukkan respons (pada dasarnya FFT), atau mendapatkan "EQ musikal" yang menunjukkan nada juga. Anda bisa mendapatkan audio ke midi VST yang mengubah apa yang Anda mainkan menjadi catatan midi yang benar. Jika keyboard Anda adalah midi, lewati saja VST, dan rekam midi secara langsung.
Jika Anda ingin mengajari FFT sendiri dan hubungannya dengan musik, lebih baik dapatkan sesuatu seperti Matlab di mana Anda dapat menghitung FFT dari data apa pun. Ini memiliki kemampuan untuk merekam dan juga pemutaran bersama dengan membaca file wav dan semacamnya. Ini kemudian menjadi benar-benar mudah digunakan. Anda dapat membuat grafik audio dan melakukan semua jenis analisis dengan lebih cepat jika Anda tahu sintaksnya.
Jika Anda ingin membangun perangkat untuk melakukan hal seperti itu maka itu cukup rumit. Anda memerlukan uC / dsp / fpga / etc untuk melakukan perhitungan. Sebagian besar perangkat populer sudah dilengkapi dengan kode FFT sehingga Anda tidak perlu membuat kode sendiri (juga rumit).
Anda harus membangun sirkuit dan semua itu. Ini tidak sulit tetapi tergantung pada pengalaman / pengetahuan Anda, itu bisa memakan waktu dan memiliki kurva belajar yang curam. Itu juga tergantung pada kualitas produk akhir.
Secara matematis, not musik ideal terdiri dari deret geometris "fundamental".
Misalkan F0 adalah frekuensi dasar, maka sebagian besar not musik akan didekati oleh F (t) + F0 * jumlah (a_k e ^ (2 ^ k F0 * pi i t)) = F0 + a_1 * F1 + a_2 * F2 +. ...
A_k hanyalah kekuatan dari frekuensi yang lebih tinggi F_k dan F_k hanyalah beberapa kelipatan dari F0. Jika a_k = 0 untuk semua k, maka kita memiliki sinusoid murni. Pitch ini mudah dideteksi. Temukan saja maksimum FFT dan frekuensi itu adalah dasar dari nada = not musik.
Ketika Anda mengambil FFT, Anda berakhir dengan data itu, dan berhitung saja. Ini pada dasarnya kalkulus.
Semua itu relatif mudah.
Beberapa masalah yang harus Anda atasi. Perhatikan bahwa tidak semua ini "diselesaikan".
Latensi - Jika Anda akan melakukan segala jenis hal waktu nyata, ini bisa menjadi masalah.
Beberapa catatan - Sulit untuk menentukan kelompok catatan karena semua harmonik tambahan. Jika memainkan A = 440hz dan A '= 880hz, sebagian besar harmonik akan tumpang tindih. Anda dapat dengan mudah mendapatkan A = 440hz, tetapi mendapatkan A '= 880hz lebih sulit. Ketika Anda memikirkan akor, lari cepat, dll, maka bisa sangat sulit untuk mendapatkan semua informasi (catatan) dengan tepat. Meskipun secara umum semuanya secara matematis dimungkinkan, data itu sendiri memiliki kesalahan dan penyimpangan, dan persamaannya didefinisikan dalam beberapa kasus.
Noise - Noise pada sinyal dapat memberi Anda hasil palsu. Jika kebisingan musik terjadi itu dapat mengacaukan hasil Anda. Algoritma yang lebih baik akan dibutuhkan = waktu + uang + pengetahuan.