Тембры штрихи и регистры в моделировании звука
Особенности извлечения звука на разных музыкальных инструментах обязательно должны учитываться в компьютерных программах, создающих музыку. Программа «Пианола» в своём современном варианте очень удобна для проведения всевозможных экспериментов со звуком, и поэтому именно на ней легче всего опробовать какие-либо нововведения.
Поэтому, уж простите меня, начну я свой рассказ с небольшого экскурса в тайны программирования. Тем, кто с программированием знаком, рассказ о моём опыте может быть полезен, тем более, что то, о чём я рассказываю, давно используется, хорошо проверено и зарекомендовало себя с самой лучшей стороны.
КАК ПРОГРАММА ПИАНОЛА ДЕЛАЕТ МУЗЫКАЛЬНЫЙ ЗВУК
Звуки музыкальных инструментов в программе «Пианола» синтезирует специальная звуковая функция с входным параметром F. При генерации первого семпла ноты этим параметром указывается частота, но в дальнейшем, при генерации следующих семплов ноты, мы обращаемся к звуковой функции с параметром, равным нулю. Иллюстрация показывает, какие действия при этом происходят – при первом обращении мы запоминаем частоту, узнаём, какой музыкант Q или U является активным, какой инструмент он держит в руках, и считываем значения регистров для этого музыканта и именно для этого инструмента. Начальное время T полагается равным нулю, и определяется dT – временное расстояние между семплами (величина, обратная скорости раздачи семплов).
Каждый инструмент имеет свой номер K (от 1 до 9) и, соответствующий этому номеру сценарий развития звука. Сценарий имеет два раздела – верхний, головной, с положительным значением номера, и текущий, с таким же номером, но отрицательным. Во время первого обращения, когда головной раздел уже пройден, номер K меняет знак на противоположный и поиск сценария повторяется с этим знаком.
Таким образом, при первом обращении последовательно выполняются обе части сценария. В первой части звук подготавливается – устанавливается его начальная амплитуда AA и коэффициент затухания D. Целая часть числа D определяет время атаки, то есть, количество периодов, во время которых звук не затухает, а, наоборот – нарастает от нуля до установленного максимального значения и только потом начинает затухать. Ослабление амплитуды AA оформлено отдельным блоком и выполняется оно в начале каждого периода звукового колебания (период звукового колебания TT - величина, обратная частоте), то есть, выполняется редко. Для ноты Ля первой октавы в 440 раз реже, чем происходят вычисления нормированной на единицу амплитуды очередного семпла A, и это экономит время счёта.
Чтобы ещё более сэкономить время, блок ослабления выбрасывает флаг, этот флаг сигнализирует о начале нового периода и может быть учтён в нижних частях сценариев при девиации параметров.
Девиация параметров приводит к сложно периодическим изменениям формы звука внутри периода, которые делаются с тем, чтобы лишить звук монотонности и придать ему естественное звучание. Частоты девиации обычно составляют 8-16 Гц - они не принимаются слухом за вибрацию и не слышимы, как звук. В программе «Пианола» для девиации используется треугольная форма колебаний – при такой форме монотонность подавляется сильнее, чем при синусоиде, и звук становится весьма живым.
Несмотря на простоту, девиация требует определённого времени, а делать её постоянно, совмещая с вычислениями для каждого семпла, вовсе не обязательно - её можно делать значительно реже, ориентируясь на флаг, то есть, только в начале каждого периода.
Могут быть и другие изменения звука. Например, частотное вибрато, используемое в звуке Виолы. Для таких изменений нужно вмешиваться в звук на каждом семпле. Хотя эти изменения не такие уж и сложные – периодически меняется шаг времени dT.
Заканчивая рассказ об устройстве начальной части звуковой функции, хочу обратить ваше внимание на то место, в котором делается приращение времени. Кроме оператора T=T+dT следом за ним выполняется
X = T/TT: NT = Int(X): X = (X-NT)*2
В результате мы имеем информацию о количестве периодов звука NT, прошедших с момента начала его развития, и эта информация может быть использована, и имеем удобную переменную X, которая меняется от нуля до двух, имея число 1 в качестве середины периода. Эта переменная не зависит от частоты, и к ней привязываются все последующие вычисления.
Вслед за блоком ослабления идёт основная, но короткая и быстро выполняемая часть - это вычисления. В ней по простым формулам вычисляется нормированный на единицу профиль звука внутри периода. Это может быть деформированная синусоида или пичок, иногда два пичка, или профиль, заданный в мнемонической форме строковой переменной.
Благодаря девиации параметров профиль звука как бы дышит, он не остаётся постоянным от периода к периоду – деформация синусоиды меняется, пички двигаются, мнемонический профиль меняет свой вид.
Когда текущая амплитуда профиля вычислена, она умножается на AA, если сценарием заданы обертоны, то их амплитуды тоже вычисляются, умножаются на свои AA и прибавляются к амплитуде основного звука, если задано эхо, то к общей сумме добавляется и оно.
И, наконец, осуществляется выход из звуковой функции, и она возвращает значение амплитуды семпла, вычисленной внутри неё.
КАК МОЖНО УПРАВЛЯТЬ РАЗВИТИЕМ ЗВУКА
Чтобы музыка получалась выразительной, разнообразной и интересной, музыкальным звуком надо управлять. Среди множества реальных пианино и роялей имеются инструменты не только с хорошим звуком, но и с разными оттенками этого звука – мягкий, бархатный, или звонкий, звенящий, глубокий и раскатистый, сдержанный и строгий. И аккордеоны бывают разными, у них к тому же имеются переключатели, меняющие звук.
Итак – важную роль играют звуковые тембры, их разнообразие и доступность, заключающаяся в возможности их выбора или даже смены по ходу исполнения. Заметим, что тембры устанавливаются по принципу ИЛИ – если один тембр включён, подразумевается, что все остальные выключены.
Следующей категорией нюансов звучания являются штрихи исполнения.
Помимо стандартных стаккато и легато есть масса способов извлечения звука из клавиш фортепьяно, это и резкий удар по клавише, и акцентированное её нажатие, и мягкое отпускание с приглушением звука на окончании ноты.
Ещё больше штрихов у скрипичного звука. Некоторые штрихи в музыкальной грамоте имеют специальные обозначения.
В отношении большинства штрихов тоже действует правило исключающего ИЛИ – скрипичный звук может постепенно нарастать, или, наоборот, агрессивно начавшись, быстро спадать до номинального звучания. Нота, выделенная на фортепьяно акцентом, не может одновременно восприниматься как приглушённая.
У штрихов есть ещё одно свойство – некоторые из них исполняются, как одноразовые. Написан над нотой знак ударения – мы так её и исполняем, однако на следующую ноту действие этого знака не распространяется. Кроме того и действуют штрихи, как правило, не столь долго, как установленные тембры. Эти особенности штрихов тоже неплохо бы учитывать и создать такие правила, чтобы с тембрами и со штрихами в совокупности было бы максимально удобно работать.
Есть ещё одно категория нюансов, отличающаяся от тембров и штрихов и не подчиняющаяся принципу исключающего ИЛИ. Это регистры, или эффекты. Эффект эхо может быть включён, но он не ограничивает свободы выбора тембров или штрихов, и не запрещает одновременного использования других эффектов. Примером регистров могут быть некоторые переключатели аккордеона – одни из них добавляют резонирующие полости, другие – добавляют к аккордам дополнительные звуки.
В программе «Пианола» тембры и штрихи назначаются указаниями u,u0-u9 и q,q0-q9 при этом назначения u q обозначают обычный тембр инструмента и обычное исполнение. Текущий тембр, с которым работает музыкант, запоминается при смене одного музыканта на другого, и восстанавливается при его вторичной активизации. Что касается штриха, то он при такой замене ликвидируется. При переназначении музыканта, то есть, при вручении ему нового инструмента, устанавливается обычный тембр и обычное исполнение.
Если музыканты пользуются одними и теми же тембрами и штрихами, то регистры индивидуальны для каждого музыканта и для каждого принадлежащего ему инструмента. Если тембр и штрихи могут принимать значения 0-9, то регистр имеет только два состояния – он может быть включён (значение 1), или выключен (значение 0).
У каждого инструмента имеется пять регистров, включаются они значком латинское "o" с нечётными цифрами - o1,o3,o5,o7,o9, а выключаются этим же значком с чётными цифрами – o0,o2,o4,o6,o8 то есть, с цифрой на единицу меньшей. Отдельный символ "o" без цифры производит действие, противоположное предыдущему.
Во время проигрывания каждая новая строка обычно начинается как бы с чистого листа – без выставленного тембра и без штриха, однако в отношении регистров это не так – однажды выставленные, они сохраняют свои значения вплоть до закрытия программы. Регистры обнуляются только при загрузке файла с нотной записью, или указанием o* в нотной строке.
Описанные выше тонкости создания звука требуют управления сценарием в обоих его частях - и в головной, верхней, и в нижней, проходимой с отрицательным значением K, и, соответственно этому, значения тембра, штриха и всех пяти регистров могут быть использованы и для предварительной настройки развивающегося звука, и для влияния на него в процессе его развития.
Управление сценариями с помощью тембров, штрихов и регистров обещает стать эффективным средством создания выразительной музыки компьютерными методами.
_________
1.06.2024
Свидетельство о публикации №224060101401