
Երաժշտության տեսությունը ծրագրավորողների համար. տասներկու նոտան կոդից
RunJS բլոգի հոդվածը երաժշտության տեսությունը զրոյից կառուցում է կոդով. օսցիլյատորները, ներդաշնակ հարաբերություններն ու լարման սխալը տանում են տասներկու նոտային, գամմաներին ու ակորդներին։
RunJS բլոգի հրապարակումը փորձում է երաժշտության տեսությունը սովորեցնել ինժեների մոտեցմամբ՝ ամեն ինչ բխեցնելով ժամանակի ընթացքում փոփոխվող մեկ թվից, բրաուզերում աշխատող սովորական JavaScript-ի և Web Audio API-ի միջոցով։
Հեղինակը սկսում է խոստովանությամբ՝ գործիք նվագել սովորելու մի քանի փորձեր, որոնք անցել են ոչ ավելի, քան մոտավորապես ճիշտ հնչյուններ արձակելը, և բացատրում է դրանց ձախողման պատճառը. տեսության բացատրությունները ցույց էին տալիս արդյունքը՝ բաց թողնելով պատճառը։ «Ահա նոտագիծը, ահա մաժոր գամման՝ անգիր արա օրինաչափությունը։ Ինչո՞ւ հենց այդ նոտաները։ Որովհետև այդպես ընդունված է»,– գրում է նա։ Փոխարենը հոդվածը սկսվում է սինուսոիդ ալիքից և ընթերցողից չի պահանջում ոչինչ ընդունել հավատով։
Սինուսոիդից մինչև տասներկու նոտա
Ձայնը օդի ճնշման տատանում է, ուստի 440 Հց հաճախականությամբ օսցիլյատորը սկզբի համար բավարար միակ երաժշտական փաստն է. հաճախականությունը բարձրությունն է, իսկ 440-ը պարզապես այն թիվն է, որն աշխարհը պայմանավորվել է անվանել «լյա»։ Առաջին իսկական դժվարությունը ֆիզիկական է, ոչ երաժշտական. ալիքի մեջտեղում կանգնեցված օսցիլյատորը կտտոց է առաջացնում, և դա շտկվում է ձայնային ծրարով՝ հարվածի և մարելու կորով, որը փորձնական տոնը վերածում է լսելի երաժշտության։
Տեմբրը բխում է ներդաշնակ շարքից. 440 Հց լարված լարը տատանվում է նաև կիսով, երրորդով ու քառորդով՝ ավելացնելով հանգիստ 880, 1320, 1760 և ավելի բարձր հաճախականություններ։ Հենց այդ ներդաշնակների բաղադրատոմսն է, այլ ոչ հիմնական տոնը, որ ջութակը տարբերում է շեփորից։ Այստեղից բխում են օկտավան (հաճախականության կրկնապատկումը նույն նոտան է տալիս) և կոնսոնանսը. որքան պարզ է հաճախականությունների հարաբերությունը, այնքան լավ է հնչում զույգը, քանի որ պարզ հարաբերություններն ավելի շատ ներդաշնակներ են կիսում և ավելի քիչ են «ծեծում»։
Լարման համակարգի սխալը
Տասներկու մաքուր կվինտան յոթ օկտավան գերազանցում է 1.0136 գործակցով՝ դա Պյութագորասի կոման է՝ մոտ 23 ցենտ։ Այն ուղղել հնարավոր չէ, և հոդվածը բերում է մի պատճառ, որ ծրագրավորողն անմիջապես կճանաչի. փակ շղթայի համար պետք է, որ 3^n հավասար լինի 2^(n+m), իսկ երեքի աստիճանը երբեք հավասար չէ երկուսի աստիճանին։ Լուծումը հավասար տեմպերացիան է՝ օկտավան բաժանվում է տասներկու հավասար քայլի, որոնցից յուրաքանչյուրը երկուսի տասներկուերորդ արմատն է։ Ինչո՞ւ տասներկու։ Բոլոր հնարավոր բաժանումների կոպիտ ստուգումը ցույց է տալիս, որ 12-ը առաջին թիվն է, որի լավագույն կվինտան ճշգրիտ է մինչև տոկոսի տասներորդ մասը։
Գամմաներ, ակորդներ և բաց հարցեր
Դրանից հետո ամեն ինչ դառնում է զանգված։ Գամման ինտերվալների ցուցակ է՝ մաժոր գամման՝ [2,2,1,2,2,2,1], հունական լադերը՝ նույն զանգվածի պտույտներ, իսկ ակորդը՝ ամեն երկրորդ նոտան ([0,2,4]), քանի որ երկու աստիճան հեռավորության վրա գտնվող նոտաներն արդեն կիսում են ներդաշնակները։ Մաժորն ու մինորը, ինչպես նշում է հեղինակը, տարբերվում են մեկ տարրի մեկ կիսատոնով։ Հռոմեական թվանշանները, պարզվում է, հարաբերական հասցեավորում են, և դրա համար է, որ մեկ ակորդային սխեմա աշխատում է բոլոր տոնայնություններում։
Վերջում հեղինակը թվարկում է, թե ինչ դեռ չի հասկանում՝ դրանց թվում ռիթմն ու ձայնատարությունը, և ընթերցողներին խորհուրդ է տալիս Eevee-ի «Music Theory for Nerds»-ը, LightNote կայքը և MDN-ի Web Audio փաստաթղթերը։ Ամբողջ հոդվածը մեկ ավանդույթի պատասխան է, ընդունում է նա, բայց այլևս անգիր անելու չոր փաստ չէ։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։