Звук фортепьяно. Состав звука и управление им
- в дополнении к этой статье. Там же даны некоторые пояснения.
Сценарий написан на языке Бейсик для среды VB6.
=====================================
Клип "Как сделать звук фортепьяно" смотрите тут - http://cloud.mail.ru/public/3Fh6/4NFYzgpMm
кстати, вот тут - http://www.pianoteq.com/home можно прослушать звуки клавишных синтезаторов, имитирующих разные инструменты. Прослушайте и сравните. Звук моего фортепьяно выглядит вполне достойно.
Ранняя, и более простая версия сценария для звука фортепьяно описана тут - http://www.proza.ru/2017/04/01/260
Звук фортепьяно, синтезированный на компьютере программой Трио, имеет сложную структуру. Сценарий №8, по которому развивается этот звук, помимо обертонов, привносит в звук и другие нюансы, которыми можно управлять, имитируя тонкости нажатия на клавиши, и создавая тем самым выразительное исполнение.
Сам сценарий во всех подробностях обсуждается тут - http://www.proza.ru/2017/04/25/939 сейчас же мы обсудим состав полученного звука, воспользовавшись тестовым режимом программы Трио.
Чтобы перейти в тестовый режим программы Трио, нужно кликнуть на нижнем правом уголке окна, а затем - на кнопке с буквой "T". В этом режиме имеется возможность демонстрировать осциллограммы звука, развивающегося по указанному сценарию, а также рассматривать изменения осциллограмм, отключая или изменяя те или иные строки сценария.
Так мы и будем делать.
На верхней осциллограмме рисунка к этой статье показан синтезированный по сценарию №8 звук фортепьяно для частоты 240 Гц. Эта частота лежит между Си и Си бемоль малой октавы.
Видно, что обертоны, имея в начале звука значительную амплитуду, и появляются довольно резко - время атаки для них занимает 3 периода основного колебания. Потому и звук нажатой клавиши слышится, как раздельно акцентированный. Сделать звук нажатия мягким можно, указав в партитуре на 5 периодов атаки вместо трёх - UDc=5.995 взамен принятого в норме по умолчанию значения 3.995 (.995 здесь фактор затухания для обертонов, который также можно изменить).
Указание UDa=... (в норме также 3.995, эта величина корректируется по частоте, и именно к этой величине привязывается норма для обертонов) позволяет одновременно изменить скорости нарастания и затухания и основного звука, и обертонов, если это будет иметь смысл. Поэтому указание UDa=5.995 ещё более радикально умягчит звук.
Другой способ уменьшения вклада обертонов в звук - уменьшить их амплитуду. Партитурное указание Ar=.5 уменьшит наполовину амплитуду обертонов в последующих за этим указанием звуках. Но можно и усилить обертоны, указав, например, Ar=1.2
Отдельное локальное указание b (удар по клавише) создаст обертонам отдельной ноты громкость в полтора раза большую, чем норма, а затем их громкость вернётся к прежнему указанию Ar=...
Ту же функцию выполняет отдельное локальное указание w=Ч, если число Ч больше или равно .2
Однако, если значение Ч лежит между нолём и .2, то функция этого указания несколько другая - амплитуда обертонов изменяется в отношении к норме в Ч*5 раз, а амплитуда девиации параметров основного колебания снижается до величины Ч. Такие изменения создают впечатление более тусклого звука - игры "под сурдинку". Кроме того, это указание действует не на одну ноту, но и на все последующие, вплоть до нового указания w=... Например, просто w возвращает настройку в норму.
Как описанные изменения проявляются в осциллограммах звука, об этом мы сейчас и поговорим.
Указание Ar=.001 практически лишает звук обертонов. Такой звук вы можете видеть на рисунке - второй (в мелком масштабе), и третий треки. Тем не менее, как можно видеть, пички на этих треках отнюдь не однотипны, а претерпевают некие существенные изменения. Изменения эти связаны главным образом с установлением некого уравновешенного эха, налагающегося в начале развития звука на рельеф основного колебания.
Если эхо из сценария убрать, или не включать его, не давая на то специальное указание, то эхо пропадёт, а рельеф колебания станет почти однотипным, особенно, если указанием w=.001 убрать одновременно и обертоны и девиацию параметров - см. треки 4 и 5 на рисунке.
Тем не менее, даже и в этом случае звук может быть вполне признан за фортепьянный, пусть невыразительный и недостаточно живой.
Тут дело в форме колебания - видите, это отнюдь не синусоида, вершинки колебаний обострены.
ФОРМА КОЛЕБАНИЯ ОСНОВНОГО ФОРТЕПЬЯННОГО ЗВУКА
Обострение вершинок колебаний синусоидальной формы производится в программе Трио подмешиванием к изначальной форме колокола тех же колебаний, возведённых в четвёртую степень. Параметр подмешивания (в сценарии №8 этот параметр обозначен как Vo) указывает на долю синусоидального колебания - если он равен единице, то никакого подмешивания не происходит, и вершины колебания не обостряются. Если этот параметр равен нулю, то синусоида полностью заменяется на обострённые колебания четвёртой степени.
Оптимальное значение параметра подмешивания легко определяется на слух - излишек подмешивания в большой и малой октавах создаёт излишне гулкий звук, а излишек подмешивания во второй октаве воспринимается, как звук, излишне звонкий и даже резкий. Граница перехода от одной качественной оценки звука к другой лежит как раз посередине первой октавы, то есть соответствует частотам среднего человеческого голоса.
Этот интересный с теоретической точки зрения факт, практически выливается в принятые в сценарии №8 оптимальные значения, плавно переходящие от Vo=0 на низких частотах до Vo=.3 на высоких и очень низких частотах. Таким образом, параметр подмешивания изменяется с частотой, образуя в малой октаве некую "яму".
И то, и другое значение можно поменять, давая указания в партитуре:
UEa=... укажет на уровень "краёв ямы", а UX=... на уровень "дна ямы".
Совместное указание UEa=1 UX=1 лишит колебания обострений и фактически сведёт их к синусоиде во всём диапазоне частот - см. треки 6 и 7 на рисунке. Звук таких колебаний на частоте 240 Гц никак не похож звук фортепьяно (слышится низкое невыразительное гудение).
Тем не менее, указанные назначения UEa=... и UX=... вполне могут быть использованы для перехода от звука более яркого к звуку более тусклому, и обратно. Для назначения UX=... допустимы и отрицательные значения, вплоть до -1.
ЯРКИЙ ЗВУК ФОРТЕПЬЯНО НА НИЗКИХ ЧАСТОТАХ
Если частота звучащей ноты оказывается меньше 150 Гц, то есть если нота находится ниже Ре малой октавы, то простых средств для создания яркого и громкого звука не хватает. В частности, потому, что динамики ноутбука низкий звук передают плохо. А также потому, что человеческое ухо в принципе мало чувствительно к низким звукам синусоидальной формы.
Чтобы низкий звук был явственно слышен, приходится принимать специальные меры, насыщая звук острыми пичками высоких обертонов. В то же время, желательно, чтобы сами эти обертоны не производили впечатление просто нажатой ноты высокого тона. То есть, не были слышны.
Такое противоречивое требование, как оказывается, может быть выполнено, если использовать квазиобертоны - звуковые образования, звучащие в каждом периоде точно в противофазе к их же звучанию в предыдущем периоде.
В программе Трио квазиобертоны подключаются к звуку сценарием №8, если частота основного звука ниже частоты ноты Ре малой октавы (150 Гц), и их амплитуда постепенно нарастает для нот, берущихся ниже.
Для подключения квазиобертонов в партитуре даётся указанием UV=...
где за знаком равенства стоит единица или число, показывающее, во сколько раз амплитуда квазиобертонов для ноты с частотой 60 Гц будет больше, или будет меньше амплитуды обычных обертонов, которые также сопровождают звук.
Таким образом, квазиобертоны могут подключаться в полную мощь, создавая громкий низкий звук, могут подключаться слегка, или совсем не подключаться. Длительность звучания квазиобертонов принимается равной длительности звучания обертонов, а стало быть, может регулироваться указанием UDc=...
Однако, не всегда квазиобертоны стоит подключать - иногда даже хорошо, чтобы ноты низкого тона в аккопанементе звучали тише. В этом плане выбор тоже есть.
И последнее замечание.
Реализация аккордов низкого тона в программе Трио имеет одну особенность - квазиобертоны сопровождают только опорную ноту аккорда, поэтому, если аккорд фортепьяно имеет две ноты низкого тона, приходится выбирать, какая из нот будет звучать ярче, или разносить ноты аккорда по разным партитурам. А партитур в программе Трио может быть использовано три. Именно таким образом, с использованием трёх партитур для создания фортепьянного звука сделано озвучивание последней части прелюдии С.Рахманинова. Запись этого произведения можно прослушать тут - http://yadi.sk/d/LC3BQFlK3PovvA
ЗАКЛЮЧЕНИЕ
Синтезированный программой Трио звук фортепьяно имеет сложный состав, передающий нюансы звука реального инструмента. В сценарии №8 имеется возможность управлять этими нюансами из партитуры, используя в общей сложности 9 типов указаний, не считая указаний на громкость звука и на длительность звучания ноты.
Таким образом, звучание записи, создаваемой программой, может быть сделано вполне выразительным и близким к живому исполнению.
_____
озвучивание маленького музыкального произведения моего отца "Песенка", по нотам, написанным в 1963-м году, я сделал с помощью программ Пианола и Трио. Запись можно прослушать тут - http://yadi.sk/d/YAs7uBS9cCytLg
==============
ДОПОЛНЕНИЕ
СЦЕНАРИЙ ЗВУКА ФОРТЕПЬЯНО.
Ниже приводится сценарий звука фортепьяно в новом его варианте. В верхней строке показаны указания, которые можно давать для этого сценария из партитуры.
Case 8 'f-no tembr: UDa=0 UDc=0 UW=0 Ar=0 b UEa=.3 1 w_w.2 UX=0 -1 UV=1
'затухание_a_c полнозучие громкость_c удар звон сурдинка гулкость квазиобертоны
MU1=0 : AU1=1.5 : IF UD3a>0 THEN DU1=UD3a ELSE DU1=3.995
V=INT(DU1) : DU1=DU1-V : V=V+INT(FS/260)
DU1=1-(1-DU1)*SQR(260/FS) : DU3=1-(1-DU1)*2 : DU1=V+DU1
MU3=0 : AU3=5 : IF UD3c>0 THEN DU3=UD3c
IF FS>260 THEN AU3=AU3*SQR(260/FS) 'снижение обертонов на высоких частотах
Vo=UEA3 : IF Vo=0 THEN Vo=.3 'след.строка делает звук гулким в м. и 1-й окт.
IF FS>65 AND FS<1040 THEN V=COS(LOG(FS/260)*2.2662) : Vo=Vo-(V/2+.5)^2*(Vo-UX3)
If ARE3 > 0 And ARE3 <= 3 And W3W = 0 Then AU3 = AU3 * ARE3 'изменить громкость обертонов
If W3W >= .2 Then AU3 = AU3 * W3W : W3W = 0 'локально изменить громкость обертонов
If W3W > 0 And W3W < .2 Then AU3 = AU3 * W3W * 5 Else W3W = 0 'сурдинка
If UD3b < 0 Then AU3 = AU3 * 1.5: UD3b = 0 'удар по клавише
V=150-FS : IF V>110 THEN V=110
IF FS<150 AND UV3>0 THEN 'квазиобертоны низкого звука включаются, если UV>0
MU8=98002 : AU8=-AU3*V*UV3/100 : DU8=DU3-INT(DU3)+INT(FS/60)
MU6=98006 : AU6=-AU8/2 : DU6=DU8 : END IF
A33r$="7550604565304035" : A32r$="6560505555403045" : A31r$="5560605545404045"
Apm$="505050707050505560657035504744433857" : Dpm=.98 'стук клавиши
R(0)=0 : V=FNR1(0,1006.4) : V=FNR1(0,2006.4) 'заброс эха
IF UW3>0 THEN V=FNR1(0,3206.4) : V=FNR1(0,4506.4) '<=== полнозвучное эхо
V=FNR1(30,-9)
Case -8: V = 0.2: If UW3 > 0 Then If UW3 < 0.25 Then V = UW3
If W3W > 0 Then V = W3W 'сурдинка - w.2 - w.01
E0=(1.05+V)*(1+V*FNTIM(4,T)) : EA =Vo*(1+V*FNTIM(8,T))
E1 =(1.1+V)*(1+V*FNTIM(10,T)): E2 =(1.1+V)*(1+V*FNTIM(7,T))
V=(FNTIM(9,T)+FNTIM(13,T))/3 : Arr$=FNRE$(AU3/2-1+V,3)
If AU8<>0 Then V=0.04*AU3: V =(V*V+0.07)*FNTIM(6,T): MU8=99002+V: MU6= 99004-V
Таких указаний может быть сделано девять. Мнемоника их в партитурах для разных МУЗов одинакова, а глобальные переменные, перестраивающие сценарий, содержат в своём названии номер МУЗа.
Сценарий, приведённый выше, и переменные, перечисленные ниже. относятся к МУЗу №3 -
указание переменная пояснение
UDa=... UD3a - диссипативный фактор группы фортепьяно
UDc=... UD3c - диссипативный фактор группы рельефа ( рельеф обертонов)
UW=... UW3 - полнозвучие ( при UW=1 добавляются забросы на дальнее эхо)
Ar=... Ar3 - громкость обертонов ( если 1, то указанная в сценарии)
b UD3b - удар по клавише ( громкость обертонов увеличивается в 1.5 раза)
UEa=... UEA3 - звонкость на периферии клавиатуры
w... W3W - локальная звонкость ( указываемое значение имеет приоритет)
UX=... UX3 - гулкость в центре клавиатуры
UV=... UV3 - подключение басов ( громкость квазиобертонов, 1 - номинал)
__________ 25.04.2017
Звук на новом сценарии можно послушать тут - http://yadi.sk/d/O7X0iNl43HonLP
обратите внимание на звучание низких нот и на акценты, сделанные указанием b.
Свидетельство о публикации №218093000642