-
Proje özeti
- Bu proje, müziği notaya dönüştüren bir program yapmayı hedefliyor.
- Harici enstrüman ayırma kütüphaneleri kullanmadan, müziği onu oluşturan enstrümanlara ayıran bir açık kaynak proje.
- Projenin çıkış noktası, kişisel ihtiyaçlar ve basit bir açık kaynak algoritmanın olmamasıydı.
-
Hazırlık süreci
- Enstrüman verileri, University of Iowa Electronic Music Studios veritabanından alındı.
- Bu verilerden tüm dalga biçiminin Fourier dönüşümü ve dalga biçiminin zarfı çıkarıldı.
-
Çalışma prensibi
- Enstrümanların ses dalga biçimleri esas olarak Fourier dönüşümü ve zarf ile karakterize ediliyor.
- Bu sayede hangi enstrümanın hangi notayı çaldığı belirlenebiliyor.
-
Fourier dönüşümü
- Müzik dosyasının Fourier dönüşümü her 0,1 saniyede bir uygulanarak bir spektrogram oluşturuluyor.
- Her enstrüman için saklanan Fourier dönüşümleri toplanarak 0,1 saniyelik pencerenin Fourier dönüşümü yeniden kuruluyor.
- Her enstrümanın büyüklüğü, MSE maliyet fonksiyonunun frekansa göre kısmi türevi üzerinden bulunuyor.
-
Zarf
- Zarf, dalga biçiminin üst sınırıdır; gürültüye ve belirli dalga biçimi türlerine dayanıklı bir yönteme ihtiyaç vardır.
- Dalga biçimi parçalara bölünür ve her parçanın maksimum değeri alınarak zarf elde edilir.
- Zarf; atak, sürdürme ve bırakma bölümlerine ayrılarak analiz edilir.
- Enstrüman dalga biçimleri statik veya dinamik sönümlemeye sahip olabilir; bunu ayırt etmek için sönümleme katsayısı ve değişim oranı analiz edilir.
-
Dalga biçimlerinin farklı türleri
- Müzik dosyasını işlemek için her notanın frekansı üzerinde bant geçiren filtre uygulanır.
- Her enstrüman için atak ve bırakmanın çapraz korelasyonu kullanılarak her notanın başlangıcı ve bitişi bulunur, ardından maliyeti hesaplamak için MSE kullanılır.
- Fourier dönüşümü aşamasında bulunan büyüklük ile maliyetin tersi çarpılarak nihai büyüklük elde edilir.
-
Sonuçlar ve görselleştirme
- Notaları göstermek için matplotlib'in scatter plot'u kullanılır.
- Başlangıçta büyüklüklerden sesi yeniden üretmeye çalışıldı, ancak çok sayıda sorun çıktığı için bu fikirden vazgeçildi.
- Nota rekonstrüksiyonu için faydalıdır; özellikle perde veya akor bulmakta zorlanan durumlarda yardımcı olur.
1 yorum
Hacker News görüşleri