Geri Dön
Programcılar için müzik teorisi: on iki nota koddan türetiliyor
SiTech AI Team3 წთ. საკითხავი

Programcılar için müzik teorisi: on iki nota koddan türetiliyor

RunJS blogundaki bir yazı müzik teorisini kodla sıfırdan kuruyor: osilatörler, harmonik oranlar ve akort hataları on iki notaya, dizilere ve akorlara götürüyor.

RunJS blogunda yayımlanan bir yazı, müzik teorisini bir mühendisin öğreneceği biçimde anlatmayı amaçlıyor: her şey zamanla değişen tek bir sayıdan türetiliyor, enstrümanın yerini ise tarayıcıda çalışan sade JavaScript ve Web Audio API alıyor.

Yazar bir itirafla başlıyor: bir enstrüman çalmayı birkaç kez denedi ve her seferinde yalnızca kabaca doğru sesleri çıkarmayı başardı. Başarısızlığın nedenini de teorinin sonucu gösterip nedeni atlamasında görüyor. "İşte porte, işte majör dizi, kalıbı ezberle. Neden o notalar? Çünkü gelenek öyle," diye yazıyor. Yazı bunun yerine bir sinüs dalgasıyla başlıyor ve okurdan hiçbir şeyi sorgusuz kabul etmesini istemiyor.

Sinüs dalgasından on iki notaya

Ses, hava basıncının zaman içindeki salınımıdır; bu yüzden 440 Hz'lik bir osilatör başlangıç için gereken tek müzikal olgudur: frekans perdedir ve 440, dünyanın "la" demeyi kararlaştırdığı sayıdan başka bir şey değildir. İlk gerçek zorluk müzikal değil fizikseldir: dalganın ortasında durdurulan bir osilatör tık sesi üretir ve yazı bunu bir ses zarfıyla, yani bir test tonunu dinlenebilir bir sese çeviren atak ve sönüm eğrisiyle düzeltir.

Tını, harmonik seriden doğar: 440 Hz'e ayarlı bir tel ayrıca yarım, üçte bir ve çeyrek parçalar hâlinde de titreşir ve 880, 1320, 1760 ile daha yukarı frekansları ekler. Kemanı trompetten ayıran şey temel ton değil, bu harmonik tarifidir. Buradan oktav (frekansın iki katı aynı notayı verir) ve konsonans çıkar: oran ne kadar basitse çift o kadar iyi tınlar, çünkü basit oranlar daha çok harmoniği paylaşır ve daha az vurur.

Akort sistemindeki hata

On iki saf beşli, yedi oktavı 1.0136 kat aşar — buna Pisagor koması denir ve yaklaşık 23 sent eder. Düzeltilemez ve yazı, bir programcının hemen tanıyacağı gerekçeyi verir: döngüyü kapatmak için 3^n'in 2^(n+m)'e eşit olması gerekir, oysa üçün kuvveti hiçbir zaman ikinin kuvvetine eşit olmaz. Çözüm eşit tampereman: oktavı, her biri ikinin on ikinci kökü olan on iki eşit adıma bölmek. Neden on iki? Tüm bölme sayıları üzerinde kaba kuvvet denemesi, en iyi beşlisi yüzde birin onda biri kadar hata veren ilk sayının 12 olduğunu gösterir.

Diziler, akorlar ve açık kalanlar

Sonrasında her şey dizilere dönüşür. Dizi, aralıkların listesidir — majör dizi [2,2,1,2,2,2,1] — Yunan modları aynı dizinin döndürülmüş hâlidir ve üçlü akor her ikinci notadır ([0,2,4]), çünkü iki derece arayla duran notalar harmonikleri zaten paylaşır. Majör ile minörün, yazının da belirttiği gibi, tek bir öğede bir yarım ton farkı vardır. Roma rakamları ise göreli adreslemedir; bu yüzden tek bir akor tablosu her tonda çalışır.

Yazar sonunda hâlâ anlamadıklarını sıralıyor — ritim ve ses yürüyüşü bunların arasında — ve okurlara Eevee'nin "Music Theory for Nerds" yazısını, LightNote sitesini ve MDN'in Web Audio belgelerini öneriyor. Yazının tamamı tek bir geleneğin yanıtı, kabul ediyor; ama artık ezberlenecek bir sınav bilgisi değil.

SSiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.