
Теорія музики для програмістів: дванадцять нот, виведених у коді
Стаття в блозі 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]), бо ноти за два щаблі вже мають спільні гармоніки. Мажор і мінор, зауважує автор, різняться одним елементом на півтон. Римські цифри виявляються відносною адресацією — саме тому одна схема акордів працює в будь-якій тональності.
Наприкінці автор перелічує те, чого досі не розуміє — серед іншого ритм і голосоведіння — і радить читачам «Music Theory for Nerds» від Eevee, сайт LightNote та документацію MDN з Web Audio. Уся стаття — відповідь лише однієї традиції, визнає він, але це вже не зубріння.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.