5. Средства выразительности в компьютерной музыке

   Язык программы «Пианола_М» удобен. Он позволяет записывать в строки музыку любой степени сложности, используя нотные обозначения, указания на длительность нот, повышая и понижая их тон, создавая аккорды и меняя темп исполнения. Это, так сказать, первая, необходимая часть мнемонического нотного языка.
   Вторую часть языка Пианолы составляют специальные символы, их тоже достаточно много, они делают звучание музыки выразительным. Сюда относятся уже знакомые нам указания на громкость - главные, устанавливаемые буквой Н, и локальные, относительные, задаваемые строчной буквой h и дополнительно изменяющие громкость, относительно установленной главной.
   
   Указания выразительности, в свою очередь, можно разделить на общие, одинакового влияющие на исполнение любым музыкальным инструментом, и конкретные, связанные с исполнением музыки на конкретном инструменте.
   К общим указаниям относятся, например, указания на громкость, а к конкретным - указания на тембр. Указания на тембр аккордеона понятно что значат, но те же указания на тембр пианино интерпретируются по другому - единственное указание u1 делает звонче звук верхних октав, остальные же тембры звучат так, как обычно. Разумеется, и для пианино можно было бы придумать разные тембры (при исполнении вживую это бы означало, что пианист быстренько встаёт и пересаживается за пианино другой марки, но где же Вы такое видели?). Поэтому разные тембры для пианино возможны, но пока оставим такие возможности для будущего.
   С другой стороны, звук пианино прекрасно управляется штрихами - указаниями с буквой q и цифрой вслед за этой буквой (сделать звук приглушённым, мягким, лёгким или нарочито подчёркнутым, или акцентировать звук ударом по клавише). И этого управления пока хватает.
   Рассмотрим поочерёдно общие и конкретные указания и приёмы выразительного исполнения.

ОБЩИЕ УКАЗАНИЯ И ПРИЁМЫ ВЫРАЗИТЕЛЬНОГО ИСПОЛНЕНИЯ

   Уже сам способ соединения нот в аккорд даёт возможность варьировать звук, делая его выразительным. В предыдущей статье говорилось про арпеджиато, которое заключается в последовательном появлении нот в аккорде. В арпеджиато из трёх нот C::6D:E появляющаяся нота D слышится тише чем C, а E – тише чем D. Связано это с ослаблением звука при сведении нот в аккорды.
   Эти же ноты CDE проигранные просто так, звучат одинаково громко. 

ГЛИССАНДО
   
   Другим способом исполнения последовательности нот является глиссандо. Заключается оно в том, что звук новых нот не начинается заново, а встраивается в продолжение первой ноты, меняя её частоту и, одновременно, увеличивая длительность её звучания. Вводится глиссандо так &CDE а отменяется и вновь вводится одиночным знаком &. Никаких цифр к этому знаку не добавляется, длительность звуков глиссандо определяется длительностью его нот.
   Глиссандо исполняется одинаково на всех инструментах, однако штатное ф-но знак & игнорирует. На осциллограмме иллюстрации видно, что глиссандо, назначенное в середине строки, исполняется штатным ф-но как три отдельные ноты, а глиссандо, назначенное в конце строки, которое исполняется музыкантом Q1, выглядит как одиночная нота. Прослушать строку с арпеджиато и глиссандо можно тут https://disk.yandex.ru/d/-PVf6lM5etj8cA

   Заметьте, что последнее звучит очень похоже на первое. Между тем, это не совсем так – на арпеджиато чётко заметны моменты присоединения последующих нот к аккорду (на рисунке показаны жёлтыми чёрточками), а на глиссандо моменты смены частоты совершенно незаметны.

ЗВУКОВЫЕ АКЦЕНТЫ ГРОМКОСТИ

   О регулировке относительной громкости уже говорилось. Помимо сказанного, имеются указания на однократное усиление звука для одной ноты – h* h*. h** делают её звук более громким. Последующие в строке одиночные h делают такое же однократное усиление громкости для других нот. Указание h0 снимает этот режим.
   Указания h с цифрами 1-9 действуют не на одну ноту, а на все последующие ноты, вплоть до другого указания с цифрой или до одиночного h. Второе одиночное h включит прежнее h c цифрой, и так до конца строки. В общем, ориентируясь на слух, вы всегда сможете отрегулировать громкость так, как надо.

КОНТУР ЗВУКА

   Аналогично работают и указания k с цифрами и без них. Только эти указания не просто изменяют громкость ноты, а изменяют контур звука – в одних случаях делая тише его начало, а в других приглушают его окончание.
   В тот момент, когда мы набираем букву k, на информационном поле появляется графическая подсказка, позволяющая выбрать нужную цифру за этой буквой (см.иллюстрацию). Указания k и h могут быть использованы одновременно. Указание k* по своему действию оказывается эквивалентным указанию h*, с той лишь разницей, что указание h* действует только на одну, следующую за ним ноту.

   На иллюстрации справа показано, как контур одиночной ноты До исполняемый звуком ф-но, меняется при его оконтуривании.
k4C звучит как мягкий звук, k2C как приглушённый, k7C как осторожный – начался и тут же примолк. Эти звуки имеют достаточно сильный фронт, и воспринимаются нормально, и вживую их тоже можно исполнить.
   А вот звуки k1C и k3C для фортепьяно не годятся – фронт у них хилый, поэтому вместо привычного звука ф-но получается звук трубы.

ПЕДАЛЬ

   Педаль включается символом  @ с последующим указанием на глубину (длительность) нажатия педали. Это цифры 1-9 или .1-.9 для небольшой глубины. Подобный значок с указанием на глубину, поставленный в первую позицию строки, создаёт режим автоматического включения такой педали в начале каждой строки. Указание @0 в любом месте строки отменит режим автоматического включения педали.
   Одиночное @ включает и выключает педаль, а если педаль не была включена в начале строки, то одиночное @ создаст длительность 0.3 сек. Если после ноты, исполняемой на педали, стоит пауза, то мы увидим действие педали на осциллограмме – звук ноты будет продолжаться, однако он будет постепенно сводиться к нулю в конце действия педали (см.осциллограмму @C ^ нота До на педали с последующей паузой).
   Если же после ноты находится следующая нота, то звук, сохраняемый на педали, будет складываться со звуком новой ноты. Эти моменты тоже можно видеть по исчезновению волнистости в комбинированном звуке на осциллограммах.
   Назначение @2 создаст педаль глубиной 0.25 сек, @3 – 0.35 сек, а @9 создаст глубокую педаль, время её действия 1 секунда.
   В режимах stakkato pizzicato действие педали очень коротко, а в аккордах она задерживает звук только последней ноты, чем и отличается от привычной для нас педали фортепьяно.

УПРАВЛЕНИЕ ЗВУКОМ КОНКРЕТНОГО ИНСТРУМЕНТА
   
   Символами U Q с цифрой после них можно назначать музыкальные инструменты. Пока в программе Пианола их восемь. Это 1 пианино, 2 виола, 3 аккордеон, 4 труба du-du, 5 и 6 колокол и колокольчик, 7 звук струны dzin, 8 голос. Указания Q0 и U0 снимают назначенных музыкантов с их инструментами, и тогда музыка исполняется звуками штатного фортепьяно (эти звуки никак специально не управляются, для них возможно только общее управление).

   Управляют звуком инструментов глобальные переменные, задаваемые латинскими строчными буквами с цифрой после них. Это u – тембр, q – штрих, o – регистры (число регистров 5). Тембр и штрих отключаются указаниями u  q, а  указание o* приводит в состояние 0 все пять регистров сразу.
   Если тембр и штрих могут иметь значения 0-9 или могут находиться в отключённом состоянии, то для каждого из регистров предусмотрены только два состояния – 0 или 1. В единицу регистры устанавливаются указаниями o1, o3, o5, o7, o9, а в ноль они ставятся чётными цифрами, на единицу меньшими, то есть так – o0, o2, o4, o6, o8.
   Наиболее полно рычаги управления инструментом задействованы в звуке трубы, поэтому именно о нём я вам сейчас и расскажу.

УПРАВЛЕНИЕ ЗВУКОМ ТРУБЫ

   Указание на тембр u1 вносит в звук трубы малозаметное эхо, настолько малозаметное на фоне трубного звука, что даже непонятно, а стоило ли вводить этот тембр. Зато другие «u» указания меняют звук трубы радикально. Что наиболее важно, они делают этот звук естественным и более нам привычным. Технические подробности, связанные с созданием этого звука, обсуждаются тут https://proza.ru/2024/08/28/1451 
   Указания u2…u9 делают звук трубы более похожим на звук саксофона, для u2-u5 со спокойным тембром, а для u6-u9 с тембром более резким. Увеличение цифры за «u» усиливает амплитуду подключаемого обертона и делает тембр более заметным (регулировка эта имеет 4 позиции и она совершенно одинакова как для спокойного, так и для резкого тембра.
   Тембр, задаваемый в скобках, имеет 5 позиций: (5) – наиболее спокойный, (9) – наиболее резкий. Таким образом делается тонкий выбор тембра внутри каждого из грубо выбранных диапазонов – u2…u5 или u6…u9. При этом группа тембров с нечётными номерами (5)(7)(9) оказываются более консонансной, а с чётными номерами (6)(8) более оригинальной.

   Звуком трубы можно также управлять, задавая этому звуку контур громкости. Контур задаётся последовательностью цифр, заключённых в скобки (5 номинальная, 1 минимальная, 0 нулевая, 9 максимальная). Количество цифр должно быть 3 и более. Задание контура звука одноразовое, но если контур звука был задан ранее, то он хранится в памяти и его можно вновь воспроизвести одноразово штрихом q2 или включить в постоянный режим штрихом q1. Новая строка начинается с отключённым контуром громкости.
   Контур громкости (количество цифр 3 и больше) можно задавать одновременно с тембром (одна цифра из набора 5…9), это видно из следующего примера:

прослушать который можно тут  https://disk.yandex.ru/d/ya1FfKeL778YvQ
   Тембр (9) делает более резким звук последующего Соль, а в окончании примера звучит глиссандо. Глиссандо несовместимо с контуром громкости, однако контур звука глиссандо можно корректировать общими методами, например, совмещая его с k указанием, или прямо указывая громкости его нот.
  На звук трубы влияют и регистры – во включённом состоянии регистр o3/2 ускоряет затухание звука и делает звук короче, регистр o5/4 делает звук длиннее. Когда включены оба эти регистры, то звук немного короче своей номинальной длины.
   Регистр o1/0 добавляет в звук ещё один обертон, это же делает и регистр o9/8 создавая при этом дрожание звука. Для дрожащего звука состояние o1 усиливает громкость добавленного обертона.
   Регистр o7/6 во включённом состоянии вносит небольшой хаос в громкость звука по пути его развития.

   Штрихи q3 q4 ускоряют атаку, делая начало звука более агрессивным. При этом штрих q4 действует одноразово. Эффект этот заметен на долгих нотах. Одновременно с этим штрих q3 позволяет уйти от монотонности повторяющихся звуков – он случайным образом изменяет фактор придыхания для каждый ноты, что сказывается и на её громкости, и на глубине дрожания звука. Труба имеет характерный дрожащий звук, он создаётся специальным буфером, и дрожание в большей или меньшей степени всегда присутствует в звуке трубы.

   По исполнению звука труба является самым сложным инструментом в программе «Пианола-М». Управление другими инструментами попроще. Обо всех инструментах и о работе с ними подробно рассказывается в разделе Help с названием «инструменты Пианолы», он специально посвящён этой теме.

ПОЛУЧЕНИЕ ИНФОРМАЦИИ В ХОДЕ РАБОТЫ

   При работе с программой обычно возникает масса вопросов, связанных с синхронизацией звука идущего от разных слоёв, с заполнением буфера, со значениями длительности нот, с громкостью текущего звука, с указаниями на тембр, на штрих и на состояние регистров в конкретный момент нотной записи. Всю эту информацию можно получить, если в интересующее нас место строки поставить восклицательный знак ! и проиграть эту строку.
   Появляется указанная информация в небольшой строке в левой нижней части рабочего окна. Можно продублировать появившуюся там информацию, с тем, чтобы сравнивать её с другой. Для этого кликаем по синей части кнопочки Q на правом табло кнопок, и получаем копию того, что нам нужно, на большой информационной строке. О большой информационной строке уже говорилось, она находится в центре окна под бегающей красной стрелочкой.

   Итак, ставим знак ! и проигрываем строку. Если в строке окажется насколько таких знаках, то информация будет выведена по первому из них. Что тоже удобно – можно сравнивать информацию, взятую в разных частях нотной строки.
   Приведу пример. Выставим длительность нот 1/4 и проиграем такую строчку: C>D ^!
   На информационной строке у нас появятся числа 32000 64000 96000, в то время как счётчик покажет число 2. Счётчик считает длительности проигрываемых нот и пуз, складывая их. Значок > длительность их уменьшил вдвое, поэтому и набежало 1+1/2+1/2=2
   А что показывает информационная строка?
96000 это размер буфера в семплах, 64000 семплов занято записью – там находятся семплы двух нот и семплы паузы ^ (если педаль не используется, то семплы паузы представляют собой нули), 32000 это номер семпла, с которого началась запись последней ноты.
   Чем интересна такая информация?
   Мы видим, что если далее будет нота, например Е^, то она поместится в буфер и как раз займёт его полностью. Поместиться в буфер и такой аккорд E^:G^.
   Если далее будет более длинная нота - одиночное E~, то тоже ничего страшного не произойдёт – как только буфер наполнится, он будет автоматически сброшен, затем заполнен нулями, и затем начнётся новое его заполнение семлами, это будет вторая половина звука ноты Ми, та, которая в буфер не поместилась. Однако, если Ми не одиночная нота, а у нас имеется аккорд E~:G~ тогда программе что делать? Начало ноты Ми уже сброшено, куда семплы ноты Соль мы будем добавлять? Фатальной ошибки не случится, программа не остановится, и даже этот самый аккорд мы услышим, но только раньше него мы услышим полностью сначала начальную одиночную ноту этого аккорда, потом ноту Ре и паузу за ней, и только потом появится наш аккорд. Такой получится цирк. А информационное поле покажет числа – 64000 32000 96000 то есть, если судить по заполнению буфера, последняя нота аккорда началась позже, чем она закончилась. Это и свидетельствует об ошибке.
   И что же в таком случае делать?
   Можно увеличить размер буфера, или сбросить его раньше, чем произойдёт критическая ситуация. В нашем случае нужно поставить символ сброса S после паузы, перед началом аккорда. То есть, записать строку так C>D ^SE~:G~! И тогда аккорд прозвучит вовремя и правильно.
   Заметьте также, что счётчик аккорд не замечает и считает длительность его нот дважды. Ещё и поэтому информация о заполнении буфера, получаемая в ходе проигрывания, так важна.

   Вернёмся к нашей простой строке C>D ^!
   Какую ещё информацию мы можем получить, если проиграем её?
   Кликнем по числам 32000 64000 96000 и получим новое сообщение:
H  1/8  o4 2_н  это значит, что громкость у нас средняя, обычная, та, что принята по умолчанию, что ноты в момент ! имеют длительность 1/8, что октава в момент ! имеет номер 4, а в буфере находится две ноты (считая их совместно с паузами) имеющие общую длительность, выставленную изначально.
   Кликнем по сообщению ещё раз, и получим надпись «Музыкант не выбран». Но давайте, выберем музыканта – кликнем по изображению рояля в правом верхнем углу окна программы и, кликнув по верхней кнопке, выберем «ф-но». Тогда информация, связанная с музыкантом будет выглядеть так:
Q1 u=_ q=_ рег.о=00000  мы понимаем, что в момент появления значка ! активен музыкант Q с инструментом 1 (это пианино), тембр и штрих для исполнения не заданы, а все пять позиций регистра находятся в нулевом состоянии. Эта информация тоже важна, если мы хотим убедиться в том, что всё у нас настраивается и выполняется правильно, а также для того чтобы составить план по дальнейшему заполнению знаками нашей нотной строки.

ИНФОРМАЦИЯ В ДЛИННОЙ СТРОКЕ

   Большая информационная строка, как уже говорилось, находится в средней части окна под бегающей красной стрелкой. Туда можно копировать информацию с нижней строки. При таком копировании информация нижней строки дополняется тремя сообщениями – о режиме работы триолей, об автоматическом включении педали в начале строки, и об особом Темпе, который задаётся постановкой цифры 5-9 между круглыми скобками. Эта дополнительная информация соответствует моменту её появления, а не моменту появления значка ! при проигрывании строки.
   Если при проигрывании строк в них находятся вставляемые фрагменты (повтор ранее обозначенного фрагмента реализуется его вставкой, а обозначается буквой R), то вставляемый нотный текст тоже демонстрируется на большой информационной строке, а содержимое всех вставок можно просмотреть, если кликать по этой строке.
   Клик справа, по розовому знаку ?, выдаст рекомендации по сочетаниям длительности нот. Замечания об ошибках и сбоях в работе программы тоже даются на этой строке. В режиме Help эта же строка используется для пояснений и подсказок.

   Система пояснений и подсказок развита в программе Пианола. Например, при наборе символа S в нижней строке появляется текст «S сброс заполненного», подсказывающий, что этим символом будет сброшен буфер, и сброшен не весь, а только заполненная семплами его часть.
   Всё сделано для того, чтобы с программой «Пианола_2» было просто и легко работать.
   Это же самое относится и к программе «Пианола_VB6». Эта программа не имеет слоёв, но в ней удобнее создавать новые сценарии и проводить со звуком всякие эксперименты. В ней есть специальный режим, позволяющий просматривать осциллограммы звука отдельных инструментов и осциллограммы отдельных обертонов, что особенно важно при конструировании новых сценариев. Блок сценариев в обеих программах в принципе один и тот же, поэтому сделанные в нём изменения легко переносятся в другую программу.

__________
20.01.2025


Рецензии