Geri qayıt
Proqramçılar üçün musiqi nəzəriyyəsi: on iki nota koddan çıxarılır
SiTech AI Team3 წთ. საკითხავი

Proqramçılar üçün musiqi nəzəriyyəsi: on iki nota koddan çıxarılır

RunJS bloqundakı yazı musiqi nəzəriyyəsini kodla sıfırdan qurur: osillyatorlar, harmonik nisbətlər və kökləmə xətaları on iki notaya, qammalara və akkordlara gətirir.

RunJS bloqunda dərc olunan yazı musiqi nəzəriyyəsini mühəndisin öyrənəcəyi tərzdə izah etməyi qarşısına qoyur: hər şey zamanla dəyişən tək bir rəqəmdən çıxarılır, alətin yerini isə brauzerdə işləyən adi JavaScript və Web Audio API tutur.

Müəllif etirafla başlayır: alət çalmağı bir neçə dəfə sınadı və hər dəfə yalnız təxminən düzgün səslər çıxara bildi. Uğursuzluğun səbəbini isə nəzəriyyə izahlarının nəticəni göstərib səbəbi ötürməsində görür. "Budur not xətti, budur major qamması, naxışı əzbərlə. Niyə məhz o notlar? Çünki belə qəbul olunub" — yazır. Yazı bunun yerinə sinus dalğasından başlayır və oxucudan heç nəyi inamla qəbul etməyi tələb etmir.

Sinus dalğasından on iki notaya

Səs hava təzyiqinin zamanla rəqsidir, buna görə 440 Hz tezlikli osillyator başlanğıc üçün lazım olan yeganə musiqili faktdır: tezlik pərdədir, 440 isə sadəcə dünyanın "lya" adlandırmağa razılaşdığı rəqəmdir. İlk əsl çətinlik musiqili deyil, fizikidir: dalğanın ortasında dayandırılan osillyator klik səsi yaradır və yazı bunu səs zərfi — test tonunu iki dəfə dinlənilə bilən səsə çevirən hücum və sönmə əyrisi ilə düzəldir.

Timbr harmonik sıradan irəli gəlir: 440 Hz-ə köklənmiş sim həm də yarımlar, üçdəbirlər və dörddəbirlərlə titrəyir və 880, 1320, 1760 və daha yüksək tezlikləri əlavə edir. Skripkanı trubadan fərqləndirən əsas ton deyil, məhz bu harmonik reseptidir. Buradan oktava (tezliyin ikiqat artırılması eyni notanı verir) və konsonans çıxır: nisbət nə qədər sadədirsə, cüt bir o qədər yaxşı səslənir, çünki sadə nisbətlər daha çox harmonik paylaşır və daha az "döyünür".

Kökləmə sistemindəki xəta

On iki təmiz kvinta yeddi oktavanı 1.0136 əmsalı qədər aşır — buna Pifaqor koması deyilir və təxminən 23 sentdir. Onu düzəltmək mümkün deyil və yazı proqramçının dərhal tanıyacağı səbəbi göstərir: dövrü bağlamaq üçün 3^n-in 2^(n+m)-ə bərabər olması lazımdır, üçün qüvvəti isə heç vaxt ikinin qüvvətinə bərabər olmur. Kompromis bərabər temperamentdir — oktava, hər biri ikinin on ikinci kökü olan on iki bərabər addıma bölünür. Niyə on iki? Bütün mümkün bölmələr üzərində kobud yoxlama göstərir ki, 12 — ən yaxşı kvintası faizin onda biri qədər dəqiq olan ilk rəqəmdir.

Qammalar, akkordlar və açıq qalan suallar

Bundan sonra hər şey massivlərə çevrilir. Qamma intervalların siyahısıdır — major qamması [2,2,1,2,2,2,1], yunan modları eyni massivin fırlanmalarıdır, üçlük akkord isə hər ikinci notadır ([0,2,4]), çünki iki dərəcə aralı duran notalar artıq harmonikləri paylaşır. Major və minor, yazının qeyd etdiyi kimi, bir elementdə bir yarım tonla fərqlənir. Roma rəqəmləri isə nisbi ünvanlamadır — buna görə bir akkord cədvəli bütün tonallıqlarda işləyir.

Müəllif sonda hələ də anlamadıqlarını sadalayır — onların arasında ritm və səs aparıcılığı — və oxuculara Eevee-nin "Music Theory for Nerds" yazısını, LightNote saytını və MDN-in Web Audio sənədlərini tövsiyə edir. Bütün yazı yalnız bir ənənənin cavabıdır, etiraf edir, amma artıq əzbərlənəcək quru məlumat deyil.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.