Синтез звуку: FM, AM та аддитивний
Кожен патч синтезатора — від теплого аналогового педа до скляного цифрового дзвону — побудований на одному з невеликої кількості класичних математичних методів генерації хвилі. Розуміння трьох класиків — аддитивного, амплітудної модуляції та частотної модуляції — пояснює, чому Yamaha DX7 звучить зовсім не так, як Minimoog, і як побудувати будь-який з них з нуля в коді.
Аддитивний синтез
Найпряміший метод, що випливає безпосередньо з ряду Фур'є: зібрати складний тон, підсумовуючи багато синусоїд, кожна зі своєю частотою, амплітудою та фазою.
Якщо задати Aₙ ∝ 1/n, отримаємо яскравість, схожу на пилкоподібну хвилю; надання кожній гармоніці власної змінної в часі обвідної Aₙ(t) — що спадає швидше для вищих гармонік — відтворює те, як реальний дзвін чи фортепіанна струна втрачають високочастотний вміст швидше за основну частоту в міру затухання звуку. Саме це роблять трубні органи механічно вже кілька століть (регістри, що змішують різні гармонічні ряди), а орган Hammond — електромеханічно за допомогою тонколіс.
Амплітудна модуляція (AM) та бічні смуги
Замість додавання синусоїд, перемножте дві з них: швидку несучу на частоті fc і повільніший модулятор на частоті fm, який змінює амплітуду несучої:
Використовуючи тригонометричну тотожність добутку в суму, це розкладається на три складові: оригінальну несучу плюс дві нові бічні смуги на fc ± fm:
Якщо fm — повільний LFO (кілька Гц), ви чуєте тремоло — ритмічний пульс гучності. Якщо fm зростає до звукового діапазону (вище ~20 Гц), бічні смуги стають чутними як нові тони, і тремоло сприймається вже як зміна тембру.
Кільцева модуляція
Близький родич: перемножте два сигнали звукового діапазону напряму, без «1 +» зсуву, щоб зберегти несучу. Це кільцева модуляція, і вона створює лише суму та різницю частот — оригінальна несуча й модулятор повністю зникають:
= ½ cos(2π (fc−fm) t) − ½ cos(2π (fc+fm) t)
Оскільки отримані частоти зазвичай не є простими цілими кратними жодного з входів, кільцева модуляція створює негармонійні, металеві, дзвонові чи роботизовані тони — відомі завдяки голосам Далеків і синтезу металевої перкусії.
Частотна модуляція (FM) — синтез
Замість модуляції амплітуди модулюйте миттєву частоту несучої безпосередньо. Джон Чаунінг відкрив у Стенфорді в 1967 році (пізніше ліцензовано Yamaha для знакового DX7 1983 року), що напрочуд просте рівняння з двома осциляторами створює вражаюче багату палітру тембрів:
Тут I — індекс модуляції, наскільки сильно модулятор відхиляє фазу несучої. Співвідношення fc : fm («співвідношення C:M») визначає, чи потрапляють отримані бічні смуги на гармонічний ряд (цілі співвідношення, як-от 1:1 або 2:1, даючи тональні, музичні звуки), чи поза ним (нецілі співвідношення на кшталт 1:1.4, даючи дзвонові чи металеві тони).
Чому бічні смуги FM підпорядковані функціям Бесселя
Розкладання рівняння FM показує нескінченно багато бічних смуг на fc ± k·fm для кожного цілого k, і — на відміну від AM — їхні амплітуди не є простими константами, а функціями Бесселя першого роду, Jk(I):
При I = 0 присутня лише несуча (J₀(0) = 1, всі інші Jₖ = 0) — чиста синусоїда. Зі зростанням I енергія розподіляється по все більшій кількості пар бічних смуг, і кількість значущих бічних смуг зростає приблизно як I + 1. Саме тому підвищення індексу модуляції в патчі FM робить звук поступово «яскравішим» і складнішим — ви спостерігаєте, як функція Бесселя перерозподіляє енергію по дедалі ширшому спектру в реальному часі.
Як обрати метод синтезу
- Аддитивний — максимальний контроль, точне відтворення будь-якої періодичної хвилі, але дорого: потрібен один осцилятор на кожну гармоніку.
- AM / кільцева модуляція — дешево (одне множення), створює точно дві чи три нові частоти; добре для тремоло, металевих і роботизованих ефектів.
- FM — дешево (два осцилятори), але створює багатий, мінливий спектр із багатьох бічних смуг з однієї обвідної індексу модуляції; чудово для дзвонів, електропіаніно, мідних та басів, хоча керувати ним інтуїтивно важче, ніж аддитивним синтезом.
Сучасні програмні синтезатори часто поєднують усі три: аддитивні шари для гармонічного «тіла» звуку, пара FM-операторів для мінливого перехідного процесу атаки та кільцева модуляція для металевої текстури — ті самі математичні будівельні блоки, зібрані в набагато більший інструмент.
Спробуйте самі
Додавайте гармоніки по одній та слухайте, як аддитивний синтез будує хвилю наживо, від чистої синусоїди до яскравої пилкоподібної хвилі:
А потім побудуйте рівняння FM самостійно всього з двома осциляторами Web Audio API в супутньому туторіалі: