Старый 28.03.2024, 10:05   #76
Ardens
 
Аватар для Ardens
 
Рег-ция: 19.01.2005
Сообщения: 33,783
Благодарности: 15,246
Поблагодарили 3,601 раз(а) в 2,575 сообщениях
Отправить сообщение для Ardens с помощью ICQ
По умолчанию Ответ: ТВОРЕНИЕ ЗВУКА

Обертоны в синтезе звука колокола и гитары
Дмитрий Маштаков

В рамках обсуждения проблемы синтеза музыкального звука аддитивным методом, сам звук, его тембр, и его обертонный состав представляются понятиями достаточно неопределёнными и перетекающими друг в друга.
И в самом деле, можем ли мы назвать тот или иной музыкальный звук цельным, или он является составным - представляет собой наложение основного тона и нескольких его отголосков. Можно ли провести границу между звуком сложного тембра и аккордом?
Что называть обертоном - чистую синусоиду более высокой частоты, или сменяющие друг друга и достаточно короткие отрезки периодических колебаний, формирующие характерный тембр?
Но в действительности мы понимаем, о чём идёт речь - синтезируя звук, мы опираемся на основной тон, обладающей определённой частотой, и примешиваем к этому основному тону некие добавления, делая звук похожим на реальный, или просто его украшая.

До сих пор в программе ТРИО выдерживался по-периодный метод создания звука - некими средствами создаётся период звукового колебания, с достаточно сложным рельефом, затем некоторые параметры изменяются, и следующий период создаётся уже в несколько изменённом виде. И так шаг за шагом, период за периодом.
Но есть музыкальные звуки, которые трудно разбить по периодам - из одного периода в другой сплошняком идут вереницы обертонов. Кроме того наблюдаются и достаточно медленные изменения звучания, захватывающие не один, два, а десяток и более периодов, и объединяющие их вместе. Таким звуком является звук колокола.

Поэтому я ввёл в программу ТРИО в дополнение к трём основным группам - группе фортепьяно, группе Виолы и группе рельефа, - специальную группу, создающую обертоны.


ОБЕРТОННАЯ ГРУППА ПРОГРАММЫ ТРИО

Обертоны я использовал и раньше, в программах, предшествующих ТРИО. Но теперь, набравшись опыта, я решил несколько изменить алгоритм их создания и мнемонику задания в сценарии.
Напомню, что в сценарии, задающем параметры развития звука, каждая из трёх основных групп имеет модуляционный, амплитудный и диссипативный факторы (параметры) -

ф-но MU1 AU1 DU1, виола MU2 AU2 DU2 и рельеф MU3 AU3 DU3

к ним теперь добавляется группа их 4-х обертонов с номерами 5 6 7 и 8 (номер 4 оставлен как резерв для основной группы)
Амплитудный и диссипативный факторы обертонной группы полностью аналогичны факторам основных групп -
переменная AU5 указывает на максимальную амплитуду колебания обертона
DU5 - целая часть указывает на длительность атаки, число периодов, за время которых амплитуда линейно возрастает от нуля до максимума,
а дробная часть представляет собой множитель уменьшения амплитуды за период.

Но модуляционный фактор обертона имеет другое значение и другую мнемонику.
Если MU1=16.2 означает амплитудное вибрато глубиной .2 с периодом равным 16 периодам основного звука, то MU5=16.2 вызовет звучание обертона с частотой в 16.2 раза большей, чем частота основного звука.
Напомню, это может понадобиться, что частота основного звука хранится в статической переменной FS, период колебания в TT, T - время в секундах от начала звука, а NT - номер текущего периода.

Мнемоника модуляционного фактора обертона может быть и более сложной, например такой -
MU5=1016.2 где 1 в разряде тысяч указывает на обострение максимумов обертонного колебания и превращение их во всё более острые пики, соответственно указанной цифре -
MU5=3016.2 MU5=5016.2 MU5=7016.2 или MU5=9016.2 Вид колебания обертона вместо плавной синусоиды становится таким

---^---v---^---v-- а звук сначала более очевидным и тонким, а затем даже пищащим.

чётные указания - MU5=2016.2 MU5=4016.2 MU6=6016.2 или MU5=8016.2 создадут обертон в виде цепочки положительных максимумов или пиков. Отрицательные пички обертона «оборачиваются» вверх -

---^---^---^---^-- естественно, что частота его звучания будет в 2 раза большей.

На рисунке к статье Вы можете увидеть такие пички, последовательность которых была использована как составляющая в синтезе звука гитарной струны.

Но это не всё.
В мнемонике задания обертона используется и следующий разряд параметра MU. Обертон может быть задан, например так - MU6=33015.5
Здесь 3 в разряде тысяч означает понятно что - обострение амплитуды обертона, а на месте первого числа 3 может стоять 1 2 3 8 9 или не стоять ничего.
Если не стоит ничего, то это обычный обертон, может быть с обострёнными, или взятыми по модулю колебаниями, идущий непрерывно с момента возникновения звука. Нулевая фаза этого обертона привязана к моменту T=0.
Если же указано MU6=33015.5, то нулевая фаза обертонного колебания привязывается к началу периода - обертон как бы обновляет своё звучание с началом каждого периода, но в конце каждого периода, как только до окончания периода остаётся по времени 10%, амплитуда обертона начинает снижать своё значение, становясь нулевой в конце. Следующий период тоже начинается с нуля (поскольку фаза нулевая) и потому кривая звучания обертона является непрерывной, хоть она и сшита из коротких кусочков.
На рисунке к статье можно видеть эту сшитую из кусочков частых колебаний кривую MU6=33015.5 как одну из составляющих звука гитарной струны.

Но почему же обертонное число такое странное - 15.5 ? Почему не 16 ?
О, это интересно. Целочисленный обертон MU6=33016, хоть и прерывающийся на каждом периоде, создаст достаточно громкий писк, правда тембра другого, нежели чем обычная синусоида.
А вот писк обертона MU6=33015.5 слышен не будет. Дело в том, что в каждом последующем периоде колебания идут в противофазе к колебаниям периода предыдущего.
Писк мы попросту "не успеваем" услышать, и идентифицировать его, как писк.
Что же будет слышно? Будет слышна основная частота с интересным тембром, имитирующим "звон" гитарной струны. Такой, не звучащий на собственной частоте обертон, можно назвать квазиобертоном.

Интересно, что обертоны MU6=13015.5 и MU6=23015.5 звучат точно также. Хотя при первом задании колебания занимают только первую половину периода, а при втором - только вторую, тем не менее наш слух восстанавливает недостающее, и мы пропусков не замечаем.

Задания MU6=80016 и MU6=90016 создают квазиобертоны, используя две половинки периода - вторая половинка заполняется колебанием первой половинки с отрицательным знаком (если MU6=80016, то окончания звучания в половинках не сводятся к нулю принудительно, если MU6=90016 - то сводятся). Интересно, что квазиобертоны таким способом могут быть созданы только для чётных обертонов. Нечётные обертоны, например MU6=80015, пищат.


ЗВУК ГИТАРНОЙ СТРУНЫ

Не задумываясь особо, я решил ориентироваться на запись натурального звука гитары, осциллограмму которого можно видеть на рисунке.
Что видно по рисунку? Видно, что основной звук, пожалуй, синусоида. Однако на каждый отрицательный полупериод её наложен существенно более узкий положительный пичок от MU5. И всё это усеяно острыми пичками обертона MU6. Пожалуй, что число 16 для него подойдёт, но я взял 15.5 принимая во внимание то, о чём говорилось выше.
Вот и всё -
CASE 9
MU1=0 : AU1=3 : DU1=2.99
MU5=26001 : AU5=3 : DU5=2.99
MU6=33015.5 : AU6=.5 : DU6=2.98
CASE -9 : E0=1+.2*FNTIM(4,T)
E1=1+.2*FNTIM(10,T) : E2=1+.2*FNTIM(7,T)

параметры E0, E1 и E2 слегка изменяются между периодами, варьируя форму синусоиды.
Звук по этому сценарию получится вполне приличный и похожий на звук гитарной струны.
Прослушать, как этот звук складывается можно тут -
https://yadi.sk/d/36FQ20JTrjukY

Первая группа звуков - чистая синусоида, из сценария используется только первая строка.
Звук синусоиды скучный, хотя подобраны скорости атаки и затухания.
Вторая группа - с добавлением вариаций E0, E1 и E2.
Звук стал интереснее, но на звук гитары он не похож.
Третья группа - добавляем во втором полупериоде положительный пичок MU5=26001
Звук стал куда ярче.
И, наконец, с добавлением обертона 15.5 получаем результат. Не совсем хорошо звучит низко или слишком высоко - с изменением высоты основного тона сценарий нуждается в корректировке, но в среднем диапазоне, в районе первой октавы звучит вполне прилично.
Ясно, что изменением параметров AU5, AU6 и DU6 тембр звука можно легко и удобно варьировать.

И тут я должен сказать, что группу обертонов вовсе не обязательно использовать, для синтеза звука гитары. Вместо обертонов можно было воспользоваться группой рельефа, записав в рельеф и пички, и колебания обертона 15.5
Но чем рельеф лучше, или хуже обертонов?
Речь идёт о возможности варьирования тембра - с использованием обертонов тембр варьировать удобнее, и о скорости озвучивания - заход программы на один обертон требует 9 мксек времени, заход на рельеф - 12 мксек, но если обертонов много, то использование рельефа по соображениям быстродействия становится предпочтительным.
Правда всё это следует соизмерять со временем звучания записи, и стараться, чтобы время озвучивания не превышало сильно времени звучания, иначе в ожидании результата и заскучать можно))
Хотя даже для не очень современного компьютера эти времена - 9 и 12 мксек, потраченные во время изготовления семпла, оказываются меньше времени звучания семпла - 31 мксек.

Ситуация меняется, если мы хотим создать звук колоколов. Тут нам без обертонов не обойтись.


СИНТЕЗ ЗВУКА КОЛОКОЛА

По части обертонного состава и особенностей звука колокола сведения можно почерпнуть в интернете. Оттуда же взят и реальный звук (колокол весом 300 кг), осциллограмма которого в начальной фазе и в фазе установившегося звука приведена на рисунке.
Соответственно и сценарий звучания колокола может быть написан с ориентировкой на сказанное в интернете, или с ориентировкой на конкретную осциллограмму.
Я сделал и то, и другое. Сначала о первом.

"Первоначальный обертонный ряд колокола не является гармоническим, причем отношения обертонов неодинаковы для разных колоколов. Так, например, для одного большого колокола измеренные отношения частот обертонов к основной частоте составили 1,65, 2,10, 3,00, 3,54, 4,97 и 5,33. Но распределение энергии по обертонам быстро изменяется сразу после удара по колоколу, и, по-видимому, форма колокола подбирается таким образом, чтобы доминирующие частоты были связаны между собой приблизительно гармонически. Высота тона колокола определяется не основной частотой, а нотой, доминирующей сразу же после удара. Она соответствует примерно пятому обертону колокола. Спустя некоторое время в звуке колокола начинают преобладать низшие обертоны." - прочёл я в интернете

Другой источник даёт частоты 1.23 2 2.95 4 5.18 6.42
В программе ТРИО пока предусмотрено только 4 обертона, поэтому я решил попробовать только их, с частотами 1.23 2 2.95 4 и посмотреть, что получится.
Вот сценарий -
CASE 9
MU1=200.3 : AU1=6 : DU1=10.96
MU3=0 : AU3=1 : DU3=20.996
Arr$="75506045653040357550604565304035"
MU5=001.23 : AU5=1 : DU5=40.996
MU6=002 : AU6=.8 : DU6=2.997
MU7=002.95 : AU7=.6 : DU7=2.998
MU8=004 : AU8=.4 : DU8=2.995
CASE -9 : IF NT=40 THEN DU1=.998
EA=.3-2.5/(1+50*T)=.3-2.5/(1+50*T)

вы видите в нём все 4 обертона с указанными частотами.
Доминирующими при ударе (с малым числом периодов атаки) являются октавные обертоны и слегка диссонирующий с ними (не равный числу 3) обертон 2.95, тогда как звук основной частоты и относительно громкий обертон, означающий подъём на октаву и малую терцию, задерживаются со своим развитием на 10 и на 40 периодов.
Кроме того основной звук сделан ударным - с большой амплитудой и скорым затуханием, которое на 40-вом периоде приостанавливается изменением параметра DU1=.998
Но и этого мало - на первом этапе удара синусоида основного звука с помощью параметра EA рассекается острым пиком -
EA=.3-2.5/(1+50*T) что создаёт дополнительные обертоны.

Обращает на себя внимание и то, что высшие обертоны в звуке всё же присутствовать будут. Они вводятся рельефной группой параметров -
MU3=0 : AU3=1 : DU3=20.996
Arr$="75506045653040357550604565304035"
где строку рельефа я сделал очень просто - взял строку, сопровождающую звук фортепьяно и увеличил её размер вдвое, увеличив тем самым вдвое частоты обертонов, составлявших её.
Разумеется, можно сделать и любую другую строку, обеспечивающую колоколу другой тембр.

Вы чувствуете? При таком подходе к синтезу звука, открываются богатейшие возможности для всякого рода экспериментов с тембром колоколов. Однако хватит рассуждений, всё это мы с вами будем сейчас слушать вот здесь -
https://yadi.sk/d/JKh5utZZrjv4D

Вначале идёт звук, создаваемый только первой группой параметров -
CASE 9
MU1=200.3 : AU1=6 : DU1=10.96
CASE -9 : IF NT=40 THEN DU1=.998
EA=.3-2.5/(1+50*T)
несмотря на отсутствие обертонов, звук, достаточно интересный.

Следом - тот же звук с изменённой последней строкой сценария
EA=.3-2.5/(1+50*T*FS/400)
Коррекция *FS/400 сделана, чтобы привязать разрез синусоиды не ко времени, а к количеству периодов колебаний. Разница в звучании практически отсутствует, но на низких частотах, октавой ниже, она будет заметна. Последние звуки в записи сделаны именно с такой коррекцией, и вы можете сравнить их с предпоследними.

Далее идут звуки по сценарию с обертонами, вначале только с №5 -
CASE 9
MU1=200.3 : AU1=6 : DU1=10.96
MU5=001.23 : AU5=1 : DU5=40.996
MU6=002 : AU6=.8 : DU6=2.997
CASE -9 : IF NT=40 THEN DU1=.998
EA=.3-2.5/(1+50*T)

затем идут звуки по полному сценарию,
те же звуки октавой выше,
И те же звуки октавой ниже (предпоследние)

Ну, о последних звуках я уже говорил. Запись показывает, как присутствие высших обертонов украшает и разнообразит звук.
Недостаточно выразительным получился звук на низких частотах. Низкие частоты обычно требуют своего особого сценария, как впрочем и высокие. Иногда помогает коррекция параметров, но иногда приходится вводить в сценарий что-либо специальное.
Но давайте, создадим другой сценарий, и попробуем создать звук колокола по образцу его реальной записи.


СИНТЕЗ ЗВУКА КОЛОКОЛА ПО ЕГО РЕАЛЬНОМУ ЗВУЧАНИЮ

Смотрим на картинку "звук колокола натуральный" и начинаем соображать.
Прежде всего заметим, что звук демонстрирует повторяющиеся структуры, далеко выходящие за границы одного периода колебаний - на начальном участке на фоне кажущейся хаотичности наблюдаются сгущения и разрежения высокочастотного спектра, участок развитого звука демонстрирует отнюдь не хаос, а прямо-таки математическую графику, а общий ход звука (маленькая картинка справа) имеет периодично возникающие амплитудные пучности.

Начнём с участка установившегося звука, очевидная "математика", имеющаяся там, должна нам помочь расшифровать звук.
Биения, объединяющие в себе по 5-7 периодов основного колебания, говорят о том, что оно, основное колебание, на самом деле состоит из двух несколько различающихся частот.
Я взял обертоны одинаковой амплитуды с относительными частотами 1 и 0.85 и получил очень похожие биения. Однако результирующий звук получился трещаще схлопывающийся - идеальное повторение групп биения позволяло чётко услышать места схлопывания амплитуды в ноль.
Тогда, вместо первого обертона, я взял фортепьянную группу параметров, позволяющую уйти от повторяющейся формы синусоиды и разнообразить её, используя те самые вариации E0, E1 и E2, о которых мы говорили, обсуждая звук гитарной струны. Звук получился получше, но не совсем.

Я обратил внимание на то, что в реальной записи максимумы в группе биений идут вовсе не ровненько, а чуть вразнобой - одни выше, другие ниже. Как бы мне это сделать? И я добавил один "странный" обертон - MU6=4000.124
Это узкий положительный пичок, идущий с периодом чуть отличающимся от 1/(2*0.125)=4-х периодов основной частоты. Пичок подставляется под некоторые максимумы в биениях, повышая или понижая их. В результате биения приобретают некоторую апериодичность, а звук, сохраняя плавное вибрато, перестаёт быть трещаще схлопывающимся.

Посмотрим теперь на общую картинку звука колокола, имеющую 3 пучности, воспринимаемые на слух как долгое вибрато, или долгий перелив звука. Картинка не дорисована до конца (на записи последовал следующий удар колокола) и могла бы быть продолжена в том же духе на достаточно долгое время. В тех местах, в которых имеются пучности (и на начальном участке тоже) звук чётко группируется в биения, тогда как между пучностями биения исчезают.
Но что значит - биения исчезают? Это значит, что исчезает причина, их вызывающая - исчезает обертон частоты 0.85
А может ли обертон то исчезать, то вновь появляться? Может, если он - составной.
Мы можем расщепить обертон 0.85 на два обертона с амплитудами вдвое меньшими с частотами 0.85 и 0.855. Итак, мы имеем основную частоту 1, отщепление от неё 0.85 и отщепление от отщепления с частотой 0.855. В результате получим синтезированные биения, показанные на рисунке снизу слева, совершенно аналогичные тем. которые наблюдаются в реальном звуке.

А вот сценарий всего этого, он очень простой -

CASE 9
MU1=0 : AU1=2 : DU1=2.998
MU5=000.85 : AU5=-1 : DU5=2.998
MU7=000.855 : AU7=-1 : DU7=2.998
MU6=4000.124 : AU6=2 : DU6=2.998
CASE -9 : EA=-2/(1+200*T)

он очень простой, но звучит вполне прилично, вот запись -
https://yadi.sk/d/SBycqrEjrjvAX
Первыми в записи идут звуки, сделанные без расщепления обертона 000.85, но с вибрато, которое задаётся не естественным путём, через дополнительный обертон, а через амплитуду основного звука - MU1=400.6
Вибрато конечно слышно, но вы можете оценить, насколько красивее и естественнее вторые и последующие звуки, сделанные с участием расщеплённой пары 000.85 и 000.855

Естественно, для каждого сценария имеются частотные границы его успешного применения. По записи вы можете определить их. Играется последовательность нот соль-до-до-Фа.

Поразительным является факт, что в сценарии отсутствуют хоть сколько-нибудь высокие обертоны. Напротив того - обертоны взяты низкие!
Можно конечно говорить о том, что гармонический центр лежит чуть ниже основного тона, но где эти высокие обертоны - 2.95, 4 и тем более 5, который, как говорят, особенно явно проявляется при ударе? Их нет. А звук тем не менее воспринимается как вполне колокольный.
Что это значит? Это по-видимому значит, что не высота обертонов, а специфические биения, возникающие при интерференции гармонических составляющих, воспринимаются нашим ухом, как тембр колокольного звона.
==============================

ПРИЛОЖЕНИЕ. Фрагмент текста программы ТРИО с обертонной группой.

...
IF AU5=0 THEN Ao=0 ELSE Ao=AA5*FNOB(MU5,TT,T)
IF AU6<>0 THEN Ao=Ao+AA6*FNOB(MU6,TT,T)
IF AU7<>0 THEN Ao=Ao+AA7*FNOB(MU7,TT,T)
IF AU8<>0 THEN Ao=Ao+AA8*FNOB(MU8,TT,T)
FNSS3=A+Ao
END DEF
'============== obertones
DEF FNOB(M1,TT,T)
LOCAL M,AM,K,B,X,NT,A,d
M=M1 : IF M<=0 THEN FNOB=0 : EXIT DEF
AM=1 : d=0 : B=0 : X=T/TT : NT=INT(X) : X=(X-NT)*2
IF M>10000 THEN : K=INT(M/10000) : M=M-K*10000
IF M>1000 THEN : B=INT(M/1000) : M=M-B*1000
SELECT CASE K
CASE 0 : X=T*M/TT : NT=INT(X) : X=(X-NT)*2
CASE 1 : IF X>.8 THEN AM=1-(X-.8 )*5
X=(T-TT*NT)*M/TT : NT=INT(X) : X=(X-NT)*2 : IF AM<0 THEN AM=0
CASE 2 : IF X>1.8 THEN AM=1-(X-1.8 )*5
IF X<1 THEN AM=0 ELSE X=(T-TT*NT-TT/2)*M/TT : NT=INT(X) : X=(X-NT)*2
CASE 3 : IF X>1.8 THEN AM=1-(X-1.8 )*5
X=(T-TT*NT)*M/TT : NT=INT(X) : X=(X-NT)*2 : IF AM<0 THEN AM=0
CASE 7 : IF X<1 THEN X=(T-TT*NT)*M/TT : ELSE X=(T-TT*NT-TT/2)*M/TT : AM=-1
X=X+.25 : d=1 : NT=INT(X) : X=(X-NT)*2
CASE 8 : IF X<1 THEN X=(T-TT*NT)*M/TT ELSE X=(T-TT*NT-TT/2)*M/TT : AM=-1
NT=INT(X) : X=(X-NT)*2
CASE 9 : IF X>1.8 THEN AM=1-(X-1.8 )*5
IF X>.8 AND X<1 THEN AM=1-(X-.8 )*5
IF X<1 THEN X=(T-TT*NT)*M/TT ELSE X=(T-TT*NT-TT/2)*M/TT : AM=-AM
NT=INT(X) : X=(X-NT)*2
END SELECT
IF X>1 THEN A=X*2-3 : A=1-A*A ELSE A=X*2-1 : A=A*A-1
SELECT CASE B
CASE 1 : A=A^3
CASE 2 : A=A*A
CASE 3 : A=A^5
CASE 4 : A=A^4
CASE 5 : A=A^7
CASE 6 : A=A^6
CASE 7 : A=A^9
CASE 8 : IF FFF>80 THEN A=A^8 ELSE X=8+(8-INT(FFF/10))*2 : A=A^X
END SELECT
FNOB=AM*(A+d)
END DEF
'======
Полный текст программы ТРИО с обертонной группой можно скачать тут -
https://yadi.sk/i/lOaE1qGSrk3xR


https://proza.ru/2016/05/16/1070
__________________
Сохраняйте душевный свет. Вопреки всему, не смотря ни на что. Это свет, по которому вас найдут такие же светлые души.

Последний раз редактировалось Ardens, 28.03.2024 в 10:07.
Ardens вне форума  
Показать ответы на данное сообщение Ответить с цитированием Вверх