Audio Decomposition – Open source untuk memisahkan musik menjadi instrumen penyusunnya
(matthew-bird.com)-
Ikhtisar proyek
- Proyek ini bertujuan membuat program yang mengubah musik menjadi partitur.
- Ini adalah proyek open source yang memisahkan musik menjadi instrumen penyusunnya tanpa menggunakan library pemisahan instrumen eksternal.
- Kebutuhan pribadi dan tidak adanya algoritme open source yang sederhana menjadi motivasi proyek ini.
-
Proses persiapan
- Data instrumen diambil dari basis data University of Iowa Electronic Music Studios.
- Dari data ini, dihitung transformasi Fourier dari seluruh bentuk gelombang dan envelope bentuk gelombangnya.
-
Cara kerja
- Bentuk gelombang suara instrumen terutama dicirikan oleh transformasi Fourier dan envelope.
- Dengan ini, dapat diketahui instrumen mana yang memainkan nada tertentu.
-
Transformasi Fourier
- Transformasi Fourier pada file musik dilakukan setiap 0,1 detik untuk menghasilkan spektrogram.
- Transformasi Fourier yang tersimpan untuk tiap instrumen dijumlahkan untuk merekonstruksi transformasi Fourier dari jendela 0,1 detik.
- Besaran masing-masing instrumen diperoleh melalui turunan parsial terhadap frekuensi dari fungsi biaya MSE.
-
Envelope
- Envelope adalah garis batas atas dari bentuk gelombang, dan dibutuhkan metode yang tahan terhadap noise serta jenis bentuk gelombang tertentu.
- Envelope diperoleh dengan membagi bentuk gelombang menjadi beberapa chunk lalu mengambil nilai maksimum dari tiap chunk.
- Envelope dianalisis dengan membaginya menjadi attack, sustain, dan release.
- Bentuk gelombang instrumen dapat memiliki peluruhan statis atau dinamis, dan untuk membedakannya dianalisis faktor peluruhan serta laju perubahannya.
-
Berbagai jenis bentuk gelombang
- Untuk memproses file musik, diterapkan filter band-pass pada frekuensi tiap nada.
- Untuk setiap instrumen, awal dan akhir tiap nada dicari melalui cross-correlation pada attack dan release, lalu biaya dihitung dengan MSE.
- Besaran akhir diperoleh dengan mengalikan besaran yang ditemukan pada tahap transformasi Fourier dengan kebalikan dari biayanya.
-
Hasil dan tampilan
- Partitur ditampilkan menggunakan scatter plot dari matplotlib.
- Awalnya audio ingin direkonstruksi dari besarannya, tetapi banyak masalah muncul sehingga upaya itu dihentikan.
- Ini berguna untuk merekonstruksi partitur, dan sangat membantu terutama jika mengalami kesulitan menemukan pitch atau chord.
1 komentar
Komentar Hacker News