Введение
Метод синтеза физического моделирования
Синтез струн Карплуса — Стронга — это метод физического моделирования, который пропускает короткую форму сигнала через фильтрованную линию задержки для имитации звука ударенной или щипковой струны или некоторых видов ударных инструментов. На первый взгляд, эту технику можно рассматривать как субтрактивный синтез, основанный на контуре обратной связи, аналогичном гребенчатому фильтру для Z-преобразования. Однако, её также можно рассматривать как простейший класс алгоритмов модификации волновых таблиц, известных как цифровой волноводный синтез, поскольку линия задержки служит для хранения одного периода сигнала. Александр Стронг изобрел алгоритм, а Кевин Карплюс провел его первый анализ. Вместе они разработали программные и аппаратные реализации алгоритма, включая специализированный чип VLSI. Они назвали алгоритм синтезом "Digitar", как портманто от "digital guitar" (цифровая гитара).
Как это работает
Создается короткая форма сигнала возбуждения (длиной L отсчетов). В оригинальном алгоритме это был импульс белого шума, но он также может включать любой широкополосный сигнал, такой как быстрое синусоидальное изменение частоты или развертка по частоте, или один цикл пилообразной или прямоугольной волны. Этот сигнал возбуждения выводится и одновременно возвращается на вход линии задержки длиной L отсчетов. Выход линии задержки пропускается через фильтр. Коэффициент усиления фильтра должен быть меньше 1 на всех частотах для поддержания стабильного контура положительной обратной связи. Фильтр может быть фильтром нижних частот первого порядка (как показано на рисунке). В оригинальном алгоритме фильтр состоял из усреднения двух соседних отсчетов – особенно простой фильтр, который можно реализовать без умножителя, используя только операции сдвига и сложения. Характеристики фильтра критически важны для определения гармонической структуры затухающего тона. Фильтрованный сигнал одновременно смешивается с выходным сигналом и возвращается на вход линии задержки.
Настройка струны
Фундаментальная частота (в частности, самая низкая ненулевая резонансная частота) результирующего сигнала – это самая низкая частота, при которой фазовый отклик каскадного соединения задержки и фильтра соответствует требуемой задержке фазы D для данной фундаментальной частоты F0, поэтому она рассчитывается по формуле D = Fs/F0, где Fs – частота дискретизации. Длина любой цифровой линии задержки кратна целому числу периодов дискретизации. Для получения дробной задержки, часто необходимой для точной настройки ниже JND (Just Noticeable Difference), используются интерполяционные фильтры с параметрами, подобранными для обеспечения необходимой задержки фазы на фундаментальной частоте. Можно использовать фильтры IIR или FIR, но FIR имеют преимущество в подавлении переходных процессов при изменении дробной задержки во времени. Наиболее простая дробная задержка – это линейная интерполяция между двумя отсчетами (например, s(4.2) = 0.8s(4) + 0.2s(5)). Если задержка фазы меняется в зависимости от частоты, гармоники могут быть заострены или сглажены относительно фундаментальной частоты. В исходном алгоритме использовалось равное взвешивание двух соседних отсчетов, поскольку это не требует аппаратного умножения, что позволяет создавать очень дешевые реализации. Z-преобразование можно использовать для более точного определения высоты тона и времени затухания гармоник, как описано в статье 1983 года, в которой был представлен этот алгоритм. Пример работы алгоритма Karplus Strong можно услышать в следующем файле Vorbis. Алгоритм использовал коэффициент обратной связи 0,98 с фильтрами нижних частот первого порядка с возрастающим затуханием. Высота ноты была A2, или 220 Гц. Поддержание постоянного периода (= длины линии задержки) создает колебания, подобные колебаниям струны или колокола. Резкое увеличение периода после начального импульса создает звуки, похожие на барабанные.
Уточнения алгоритма
Из-за звука, напоминающего щипковую струну в определенных ладах, Алекс Стронг и Кевин Карплюс предположили, что алгоритм Карплюса-Стронга (KS) в некотором смысле является моделированием вибрирующей струны, и работали над доказательством того, что он решает волновое уравнение для вибрирующей струны, но не завершили эту работу. Джулиус О. Смит III обнаружил, что передаточная функция KS, рассматриваемая как цифровой фильтр, совпадает с передаточной функцией вибрирующей струны, при этом фильтр в контуре обратной связи отражает общие потери энергии струны за один период. Позже он вывел алгоритм KS как частный случай синтеза цифровых волноводов, который использовался для моделирования акустических волн в струнах, трубах и мембранах. Первый набор расширений и обобщений алгоритма Карплюса-Стронга, обычно известный как расширенный алгоритм Карплюса-Стронга (EKS), был представлен в докладе на Международной конференции по компьютерной музыке в Венеции (Италия) в 1982 году и опубликован в более подробном виде в 1983 году в журнале Computer Music Journal в статье под названием «Расширения алгоритма Карплюса-Стронга для синтеза щипковых струн», написанной Дэвидом А. Джаффе и Джулиусом О. Смитом, а также в диссертации Смита. Алекс Стронг разработал более совершенный метод модификации волновой таблицы для синтеза щипковых струн, но опубликовал его только в виде патента.
Музыкальные приложения
Первое музыкальное использование алгоритма было в произведении May All Your Children Be Acrobats, написанном в 1981 году Дэвидом А. Джаффе, для восьми гитар, меццо-сопрано и стереозаписи, с текстом, основанным на стихотворении Карла Сэндберга The People, Yes. Джаффе продолжил исследовать музыкальные и технические возможности алгоритма в Silicon Valley Breakdown (1982) для компьютерно сгенерированных щипковых струнных, а также в более поздних работах, таких как Telegram to the President (1984) для струнного квартета и магнитной ленты, и Grass для женского хора и магнитной ленты (1987). Патент был впервые лицензирован компании Mattel Electronics, которая обанкротилась до разработки какого-либо продукта с использованием алгоритма, а затем – стартапу, основанному бывшими руководителями Mattel. Им так и не удалось получить достаточное финансирование для завершения разработки и, следовательно, вывести продукт на рынок. В конечном итоге Yamaha лицензировала патент как часть пакета патентов Sondius, приобретенного у Стэнфордского университета. Неизвестно, были ли когда-либо проданы какие-либо устройства, использующие алгоритм, хотя было выпущено множество программных реализаций (которые не выплачивали лицензионные отчисления изобретателям). Хотя они могут не строго соответствовать алгоритму, многие аппаратные компоненты для модульных систем, коммерчески производимые, реализуют основные принципы Karplus Strong Synthesis: использование инвертированной, масштабированной системы управления для очень малых временных значений в фильтрованной линии задержки для создания воспроизводимых нот в западной темперированной системе настройки, управляемых с помощью отслеживания напряжения в октаву или данных MIDI. Изобретателям не было приписано авторство, хотя термин "Karplus Strong Synthesis" упоминается в некоторых руководствах. Аппаратные компоненты, способные к синтезу в стиле Karplus Strong, включают Moog Clusterflux 108M, Mutable Instruments Elements и Rings, 4ms Company Dual Looping Delay, 2HP Pluck, Make Noise Mimeophon, Arturia MicroFreak, Non Linear Circuits Is Carp Lust Wrong? и Strymon Starlab.