Just Intonation: Making music come to life
By Gasman / RA
«...Раньше я вбивал ноты прямо в редактор ассемблера в виде пар чисел, без всяких меток, чтобы иметь возможность подстраивать эти числа чуть выше или ниже, добиваясь правильного, чистого резонанса аккордов».
— Бог музыки Tim Follin в эхоконференции comp.sys.sinclair
При нынешнем обилии музыкальных трекеров на Спектруме музыканты могут сочинять треки, совершенно не задумываясь о том, как именно ноты преобразуются в звуковые волны. Однако если вооружиться толикой физико-математических знаний, можно добиться качества звучания, недосягаемого для любого стандартного трекера.
До наступления эры компьютерной музыки эта наука безраздельно принадлежала захватывающему миру настройки фортепиано. Серьёзно, без шуток.
Дело в том, что существует более одного «правильного» способа настроить пианино. Большинство людей с трудом уловит разницу между ними на слух, однако каждый метод опирается на строгие математические нюансы, вступающие в противоречие с другими строями. Единственное, в чём сходятся абсолютно все подходы, — это октава. Возьмите любую ноту, удвойте её частоту — и получите ту же ноту октавой выше. Удвойте частоту ещё раз — и шагнёте ещё на октаву вверх.
Теперь перед нами встаёт задача: разделить октаву на 12 полутонов (да, именно на 12, а не на 8: C, C#, D, Eb, E, F, F#, G, Ab, A, Bb, B). Самое очевидное решение — распределить их с равным интервалом. Просто умножаем частоту на некий коэффициент «wibble», чтобы получить следующую ноту; умножив на него 12 раз подряд, мы в точности удвоим исходную частоту — то есть поднимемся ровно на одну октаву. Пара нажатий на кнопки калькулятора подскажет, что этот шаг равен 2^(1/12), что составляет примерно 1,0594631.
Главное достоинство такого подхода заключается в том, что вам не обязательно начинать именно с ноты До (C). Если стартовать с Си (B) и последовательно умножать частоту, получится точно такая же последовательность интервалов. Для настройщиков фортепиано это просто спасение: фуга Баха в ре миноре будет звучать ничуть не хуже, чем соната Моцарта в соль мажоре. Такой метод называется «равномерно темперированным строем» и сегодня применяется везде — от саксофонов до синтезаторов.
К сожалению, за это приходится расплачиваться посредственным качеством звучания. Чтобы понять причину, вспомним старика Пифагора. После тяжёлого дня, проведённого за доказательством теорем о треугольниках, мистер П любил расслабиться со своим Fender Stratocaster (ладно, включите немного воображение). Он обнаружил, что наиболее благозвучно ноты звучат тогда, когда их частоты соотносятся друг с другом простыми целыми дробями. Например, если ноты разделяет октава, отношение их частот равно 2:1 — проще не придумаешь. А вот 1,0594631:1 красивым соотношением назвать никак нельзя, из-за чего равномерная темперация звучит далеко не так приятно, как могла бы.
Спустя 2500 лет развития музыки человечество сошлось на том, что «красивыми» считаются пропорции, где числа раскладываются на простые множители 2, 3 и 5. Это называется чистым строем на основе 5-предела (Five-limit Just Intonation), поскольку выборка ограничена простыми числами не выше пяти. Можно построить системы и на других пределах, но в них мало практического смысла — они лишь вносят путаницу. Уж поверьте мне на слово...
Итак, если придерживаться 5-предельного чистого строя, ориентироваться нужно на следующие пропорции:
C — 1:1
C# — 25:24
D — 9:8
Eb — 6:5
E — 5:4
F — 4:3
F# — 45:32
G — 3:2
Ab — 8:5
A — 5:3
Bb — 9:5
B — 15:8
C — 2:1
Разумеется, если вам нужен диапазон шире одной октавы, сместиться вверх или вниз можно простым умножением или делением дроби на два. Но будьте внимательны: ЭТИ СООТНОШЕНИЯ РАБОТАЮТ ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ ВАША МЕЛОДИЯ НАПИСАНА В ТОНАЛЬНОСТИ ДО (C)! Сами по себе коэффициенты не привязаны намертво к названиям нот — просто я выбрал ноту До за точку отсчёта.
Проиллюстрируем это на примере последовательности C — F — Bb. Предположим, частота C равна 1000 Гц (для примера подойдёт любое число). Считая по приведённой таблице, получаем: C = 1000 Гц, F = 1333 Гц, Bb = 1800 Гц.
Теперь сыграем то же самое в тональности F: ноты превратятся в F — Bb — Eb. Мы уже знаем, что F должна звучать на частоте 1333 Гц. Однако мы не можем просто взять готовые коэффициенты из таблицы, ведь теперь тоникой служит F, а не C! И в данном случае Bb означает интервал «на пять полутонов выше тоники», для которого соотношение равно 4:3. Соответственно, частоту следует рассчитать как 1333 × (4/3), что даёт 1778 Гц. Точно так же Eb отстоит от F на десять полутонов, что выливается в 2400 Гц. Итого: F = 1333 Гц, Bb = 1778 Гц, Eb = 2400 Гц.
Погодите-ка... Только что нота Bb была 1800 Гц, а теперь стала 1778 Гц?! Нет, тут нет ошибки. Оба значения верны — всё зависит от тональности, в которой написана композиция. Очевидно, что для механического фортепиано такой трюк неосуществим: клавиша Си-бемоль может быть настроена только на одну конкретную частоту, поэтому настройщикам приходится идти на компромисс и использовать равномерно темперированный строй.
Но на ZX Spectrum этой проблемы нет и в помине, ведь мы способны генерировать абсолютно любую нужную нам частоту (ну, или максимально близкую к ней). Первым делом транспонируйте вашу мелодию в тональность C (до мажор или до минор). Затем определитесь с опорной частотой для ноты C. Подойдёт любое значение — главное, чтобы трек не звучал чересчур низко или визгливо. И наконец, с помощью удобной таблицы соотношений вычислите частоту каждой отдельной ноты.
Вот так всё просто! Конечно, это ещё не весь путь: теперь придётся написать собственную подпрограмму для воспроизведения звука, но это как раз наименее сложная часть, ведь львиная доля математической работы уже сделана. Да и вообще — если этот метод устраивал Тима Фоллина, есть ли у нас хоть одна причина с ним спорить?..
Поделитесь вашим мнением о статье