Алгоритм Карплуса-Стронга
Алгоритм Карплуса-Стронга для синтеза струны — способ синтеза звука, заключающийся в пропускании короткого сигнала через линию задержки с фильтром. В зависимости он параметров, полученный звук может быть похож на звук струны, извлекаемый медиатором или тэппингом, либо на звуки некоторых ударных инструментов.
Эту технику можно рассматривать как субтрактивный синтез с применением линии обратной связи, аналогично гребенчатому фильтру для анализа методом z-преобразования. Её также можно рассматривать в качестве простейшего случая волнового синтеза, поскольку линия задержки выступает как хранилище одного периода сигнала.
Александр Стронг изобрёл алгоритм, а Кевин Карплус первым произвёл анализ его работы. Вместе они разработали программную и аппаратную реализации алгоритма, в том числе и реализацию на СБИС. Они назвали алгоритм «Digitar» (игра слов от англ. digital guitar — цифровая гитара).
Содержание
Принцип работы
- Генерируется короткий сигнал (длиной L отсчетов). В оригинальном алгоритме использовался короткий сигнал белого шума, однако может использоваться любой широкополосный сигнал, например ЛЧМ, период пилообразной или прямоугольной волны.
- Сигнал одновременно подается на выход и на вход линии задержки длиной L отсчетов.
- Выход линии задержки пропускается через звуковой фильтр. Для поддержания стабильной положительной обратной связи коэффициент передачи фильтра должен быть строго меньше 1 для всех частот. В качестве фильтра может использоваться однополюсной фильтр низких частот (как на картинке). В оригинальном алгоритме фильтр состоял из усреднителя двух смежных отсчетов, поскольку такой фильтр позволяет обойтись без умножителя и использовать только операции сложения и битового сдвига. Характеристики фильтра являются определяющими для гармонической структуры затухающего сигнала.
- Выход фильтра одновременно микшируется с выходом и подается на вход линии задержки.
Настройка струны
Основная частота (точнее, самая низкая ненулевая гармоника) полученного сигнала — самая низкая частота, при которой развернутый отклик фазы запаздывания и фильтра в каскаде равен <math>-2\pi</math>. Требуемое запаздывание по фазе D для данного основного тона F0 вычисляется по формуле D = Fs/F0, где Fs — частота семплирования.
Длина любой цифровой линии задержки является целым множителем периода семплирования. Для получения дробного запаздывания используются интерполирующие фильтры с параметрами, соответствующими запаздыванию фазы при выбранной основной частоте. Могут быть использованы БИХ- или КИХ-фильтры, однако КИХ-фильтр обладает тем преимуществом, что импульсные помехи подавляются, если дробное запаздывание изменяется с течением времени. Простейшим дробным способом вычисления дробного запаздывания является линейная интерполяция двух отсчётов (например, s(4.2) = 0.8s(4) + 0.2s(5)). Если фазовая задержка изменяется с частотой, гармоники могут быть усилены или ослаблены по сравнению с основной частотой. Оригинальный алгоритм использовал среднее значение двух последовательных отсчётов, что позволило реализовать фильтр с использованием только сложения и битового сдвига, делая реализацию весьма эффективной.
В оригинальной работе 1983 года указывается, что анализ с использованием Z-преобразования позволяет получить частоты и времена затухания гармоник с более высокой точностью.
Результат работы алгоритма Карплуса-Стронга можно прослушать в прилагающемся аудиофайле. Алгоритм использует коэффициент передачи 0.98 с последовательным смягчением частот низкочастотным фильтром первого порядка. Звучит нота ля второй октавы, 220 Гц.
Карплус-Стронг №1 | |
F1 = 220 Гц | |
Помощь по воспроизведению |
Постоянный период (то есть, длина линии задержки) дает звук, похожий на струнные или колокол. Резкое увеличение периода сразу после начала сигнала производит звуки, похожие на барабан.
Усовершенствования алгоритма
Алекс Стронг и Кевин Карплус поняли, что алгоритм в физическом смысле аналогичен записи отклонений струны в фиксированной точке с течением времени, а фильтр характеризует потерю струной энергии за один период. Джулиус О. Смит [ccrma.stanford.edu/~jos/] и другие исследователи обобщили идею алгоритма до метода цифрового волновода, который также можно применять для синтеза духовых и мембранных инструментов. Первый набор расширений и обобщений был представлен в работе 1982 года на международной конференции компьютерной музыки в Венеции, а также опубликован с дополнениями в 1983 году в журнале компьютерной музыке, в статье «Extensions of the Karplus Strong Plucked String Algorithm», за авторством Дэвида Яффе и Джулиуса О. Смита.[1]
Алекс Стронг создал более совершенную модификацию с использованием волновых таблиц для синтеза щипковых инструментов, опубликованную в виде патента.
Напишите отзыв о статье "Алгоритм Карплуса-Стронга"
Примечания
Литература
- (1983) «Digital Synthesis of Plucked String and Drum Timbres». Computer Music Journal (MIT Press) 7 (2): 43–55. DOI:10.2307/3680062.
- (1983) «[static1.1.sqspcdn.com/static/f/1195073/15927045/1326030818550/Jaffe-Smith-Extensions-CMJ-1983.pdf?token=jBAicC7FH9EIwp3LPLGs7NE%2BOjo%3D Extensions of the Karplus-Strong Plucked String Algorithm]». Computer Music Journal (MIT Press) 7 (2): 56–69. DOI:10.2307/3680063.
- Патент США № 4 649 783. [www.google.com/patents/US4649783.pdf Wavetable Modification Instrument and Method for Generating Musical Sound]. [patft.uspto.gov/netacgi/nph-Parser?patentnumber=4649783 Описание патента] на сайте Ведомства по патентам и товарным знакам США.
- Патент США № 4 622 877. [www.google.com/patents/US4622877.pdf Independently controlled wavetable-modification instrument and method for generating musical sound]. [patft.uspto.gov/netacgi/nph-Parser?patentnumber=4622877 Описание патента] на сайте Ведомства по патентам и товарным знакам США.
- Moore F. Richard. Elements of Computer Music. — Upper Saddle River: Prentice-Hall. — ISBN 0-13-252552-6.
Ссылки
- [ccrma.stanford.edu/~jos/pasp/Karplus_Strong_Algorithm.html The Karplus-Strong Algorithm]
- [ccrma.stanford.edu/~jos/Mohonk05/Karplus_Strong_Algorithm.html Sound Examples]
- [www.freesound.org/browse/tags/karplus-strong/ More sound examples under CC license]
- [lab.andre-michelle.com/karplus-strong-guitar Flash application implementing a guitar]
- [www.jaffe.com David A. Jaffe’s music, including sound examples]
|
Статья содержит короткие («гарвардские») ссылки на публикации, не указанные или неправильно описанные в библиографическом разделе. Список неработающих ссылок: Jaffe & Smith 1983 Пожалуйста, исправьте ссылки согласно инструкции к шаблону {{sfn}} и дополните библиографический раздел корректными описаниями цитируемых публикаций, следуя руководствам ВП:Сноски и ВП:Ссылки на источники.
|
Отрывок, характеризующий Алгоритм Карплуса-Стронга
– Элен! – сказал он вслух и остановился.«Что то такое особенное говорят в этих случаях», думал он, но никак не мог вспомнить, что такое именно говорят в этих случаях. Он взглянул в ее лицо. Она придвинулась к нему ближе. Лицо ее зарумянилось.
– Ах, снимите эти… как эти… – она указывала на очки.
Пьер снял очки, и глаза его сверх той общей странности глаз людей, снявших очки, глаза его смотрели испуганно вопросительно. Он хотел нагнуться над ее рукой и поцеловать ее; но она быстрым и грубым движеньем головы пeрехватила его губы и свела их с своими. Лицо ее поразило Пьера своим изменившимся, неприятно растерянным выражением.
«Теперь уж поздно, всё кончено; да и я люблю ее», подумал Пьер.
– Je vous aime! [Я вас люблю!] – сказал он, вспомнив то, что нужно было говорить в этих случаях; но слова эти прозвучали так бедно, что ему стало стыдно за себя.
Через полтора месяца он был обвенчан и поселился, как говорили, счастливым обладателем красавицы жены и миллионов, в большом петербургском заново отделанном доме графов Безухих.
Старый князь Николай Андреич Болконский в декабре 1805 года получил письмо от князя Василия, извещавшего его о своем приезде вместе с сыном. («Я еду на ревизию, и, разумеется, мне 100 верст не крюк, чтобы посетить вас, многоуважаемый благодетель, – писал он, – и Анатоль мой провожает меня и едет в армию; и я надеюсь, что вы позволите ему лично выразить вам то глубокое уважение, которое он, подражая отцу, питает к вам».)
– Вот Мари и вывозить не нужно: женихи сами к нам едут, – неосторожно сказала маленькая княгиня, услыхав про это.
Князь Николай Андреич поморщился и ничего не сказал.
Через две недели после получения письма, вечером, приехали вперед люди князя Василья, а на другой день приехал и он сам с сыном.
Старик Болконский всегда был невысокого мнения о характере князя Василья, и тем более в последнее время, когда князь Василий в новые царствования при Павле и Александре далеко пошел в чинах и почестях. Теперь же, по намекам письма и маленькой княгини, он понял, в чем дело, и невысокое мнение о князе Василье перешло в душе князя Николая Андреича в чувство недоброжелательного презрения. Он постоянно фыркал, говоря про него. В тот день, как приехать князю Василью, князь Николай Андреич был особенно недоволен и не в духе. Оттого ли он был не в духе, что приезжал князь Василий, или оттого он был особенно недоволен приездом князя Василья, что был не в духе; но он был не в духе, и Тихон еще утром отсоветывал архитектору входить с докладом к князю.
– Слышите, как ходит, – сказал Тихон, обращая внимание архитектора на звуки шагов князя. – На всю пятку ступает – уж мы знаем…
Однако, как обыкновенно, в 9 м часу князь вышел гулять в своей бархатной шубке с собольим воротником и такой же шапке. Накануне выпал снег. Дорожка, по которой хаживал князь Николай Андреич к оранжерее, была расчищена, следы метлы виднелись на разметанном снегу, и лопата была воткнута в рыхлую насыпь снега, шедшую с обеих сторон дорожки. Князь прошел по оранжереям, по дворне и постройкам, нахмуренный и молчаливый.
– А проехать в санях можно? – спросил он провожавшего его до дома почтенного, похожего лицом и манерами на хозяина, управляющего.
– Глубок снег, ваше сиятельство. Я уже по прешпекту разметать велел.
Князь наклонил голову и подошел к крыльцу. «Слава тебе, Господи, – подумал управляющий, – пронеслась туча!»
– Проехать трудно было, ваше сиятельство, – прибавил управляющий. – Как слышно было, ваше сиятельство, что министр пожалует к вашему сиятельству?
Князь повернулся к управляющему и нахмуренными глазами уставился на него.
– Что? Министр? Какой министр? Кто велел? – заговорил он своим пронзительным, жестким голосом. – Для княжны, моей дочери, не расчистили, а для министра! У меня нет министров!
– Ваше сиятельство, я полагал…
– Ты полагал! – закричал князь, всё поспешнее и несвязнее выговаривая слова. – Ты полагал… Разбойники! прохвосты! Я тебя научу полагать, – и, подняв палку, он замахнулся ею на Алпатыча и ударил бы, ежели бы управляющий невольно не отклонился от удара. – Полагал! Прохвосты! – торопливо кричал он. Но, несмотря на то, что Алпатыч, сам испугавшийся своей дерзости – отклониться от удара, приблизился к князю, опустив перед ним покорно свою плешивую голову, или, может быть, именно от этого князь, продолжая кричать: «прохвосты! закидать дорогу!» не поднял другой раз палки и вбежал в комнаты.
Перед обедом княжна и m lle Bourienne, знавшие, что князь не в духе, стояли, ожидая его: m lle Bourienne с сияющим лицом, которое говорило: «Я ничего не знаю, я такая же, как и всегда», и княжна Марья – бледная, испуганная, с опущенными глазами. Тяжелее всего для княжны Марьи было то, что она знала, что в этих случаях надо поступать, как m lle Bourime, но не могла этого сделать. Ей казалось: «сделаю я так, как будто не замечаю, он подумает, что у меня нет к нему сочувствия; сделаю я так, что я сама скучна и не в духе, он скажет (как это и бывало), что я нос повесила», и т. п.
Князь взглянул на испуганное лицо дочери и фыркнул.
– Др… или дура!… – проговорил он.
«И той нет! уж и ей насплетничали», подумал он про маленькую княгиню, которой не было в столовой.
– А княгиня где? – спросил он. – Прячется?…
– Она не совсем здорова, – весело улыбаясь, сказала m llе Bourienne, – она не выйдет. Это так понятно в ее положении.
– Гм! гм! кх! кх! – проговорил князь и сел за стол.
Тарелка ему показалась не чиста; он указал на пятно и бросил ее. Тихон подхватил ее и передал буфетчику. Маленькая княгиня не была нездорова; но она до такой степени непреодолимо боялась князя, что, услыхав о том, как он не в духе, она решилась не выходить.
– Я боюсь за ребенка, – говорила она m lle Bourienne, – Бог знает, что может сделаться от испуга.
Вообще маленькая княгиня жила в Лысых Горах постоянно под чувством страха и антипатии к старому князю, которой она не сознавала, потому что страх так преобладал, что она не могла чувствовать ее. Со стороны князя была тоже антипатия, но она заглушалась презрением. Княгиня, обжившись в Лысых Горах, особенно полюбила m lle Bourienne, проводила с нею дни, просила ее ночевать с собой и с нею часто говорила о свекоре и судила его.
– Il nous arrive du monde, mon prince, [К нам едут гости, князь.] – сказала m lle Bourienne, своими розовенькими руками развертывая белую салфетку. – Son excellence le рrince Kouraguine avec son fils, a ce que j'ai entendu dire? [Его сиятельство князь Курагин с сыном, сколько я слышала?] – вопросительно сказала она.