Натуральная педаль в компьютерной музыке
Прежде чем знакомиться с алгоритмом работы педали, вспомним, как устроена педаль фортепьяно. У пианино две педали - правая и левая. Речь идёт о правой. Когда мы её нажимаем, планка, удерживающая молоточки, слегка отодвигается от струн, поэтому звук после отпускания клавиши затухает долго. Если же планочка отодвинута только чуть-чуть, то звук затухает скорее.
Примерно такой же процесс моделируется и на компьютере.
Рассмотрим звучание ноты Ля большой октавы длительностью четверть секунды (1/8 от целой ноты). Если педаль не нажата, то звук разделяется на три фазы - первая (самая длинная) это собственно звук ноты, он развивается по своему сценарию - колебания быстро нарастают (это стадия атаки, на этой стадии, и впоследствии, в звуке активны колебания более высоких частот - обертоны, в стадии затухания звука они затухают несколько быстрее.
И так продолжается почти всё время, отведённое под звук. Однако, когда до окончания звука остаётся совсем немного, - 300 семплов (0.01 сек), наступает вторая фаза - в ней звук линейно сводится на ноль. При резком изменении амплитуды звука, который может случиться на его окончании, возникает щелчок, а постепенное сведение амплитуды на нуль щелчок устраняет.
И, наконец, третья фаза формирования звука это посленотная пауза, в режиме легато она может быть очень небольшой, но она всегда есть. Если педаль не включена, то в паузе звук отсутствует.
ПЕДАЛЬ, ВВОДИМАЯ АМПЕРСАНДОМ
Когда педаль включена, то фаза сведения звука к нулю (вторая фаза) блокируется, и поэтому запись ноты должна бы обрываться резко, однако она не обрывается, а только меняет мишень - семплы продолжения звука записываются не в большой буфер, который суммирует общий полученный звук, в специальный буфер педали, а потом, когда наступает время паузы и следующей ноты после неё, то записанные семплы берутся из буфера педали и присоединяются к общему звуку.
Запись звука в буфер педали идёт с ослаблением (планочка пианино немного касается струн), и звук педали постепенно сводится к нулю. Время сведения звука педали к нулю как раз и определяется той цифрой, которая стоит за амперсандом. Для @1 это время составит 1/8 секунды, а для @9 - 1.125 секунды. Можно указывать и более короткое время - @.1-@.2 педаль с такой глубиной нажатия создаёт впечатление глубокой слигованости нот.
Описанный алгоритм не вполне совершенен - при появлении новой ноты под неё подкладывается звук педали, накопленный от предыдущей ноты, но затем этот звук пропадает, и начинает накапливаться другой звук, поэтому связать педалью много нот одновременно не удаётся - звук нот связывается последовательно: появился сегодняшний звук - исчез позавчерашний. На исчезновениях в принципе могут появляться звуковые помехи в форме треска, треск этот, однако, чаще всего очень слабый и совсем незаметен.
Вторая особенность алгоритма проявляется на аккордах - под вторую ноту аккорда подкладывается педальное продолжение первой ноты, под третью - продолжение второй. Такого в живом исполнении в принципе быть не может. Тем не менее, этот эффект присутствует, и аккорд звучит чуть по другому.
Ещё один из способов воздействовать на аккорд на педали это поставить знак педального исполнения аккорда - заглавное латинское P, и тогда вслед за аккордом будут долго звучать все его ноты, а не только одна последняя.
В общем, педаль, вводимая амперсандом, работает эффективно и интересно. Недостатком её является треск на коротких по длительности аккордах, и щелчки от которых бывает трудно избавиться.
НАТУРАЛЬНАЯ L_ПЕДАЛЬ
Следующий алгоритм, названный «натуральная L_педаль» работает без треска. Натуральным этот алгоритм называется потому, что он в точности повторяет действие естественной педали - продолжение звука каждой ноты записывается не в специальный массив, а непосредственно в большой буфер, и эта запись опережает запись следующих за нею нот.
Времени на такую операцию требуется немного больше, поэтому алгоритм работает медленнее. Кроме того, запись последующих нот ведётся с наложением звука. Это означает, что семплы нот складываются с тем, что находится в большом буфере, и этот режим наложения автоматически вводится знаком педали, и в этот момент так же автоматически отменяется режим амперсанд-педали, если такой был введён ранее.
Вводится L_педаль строчной латинской буквой l с цифрой (отсюда и название), или с точкой и цифрой следом за точкой: l1-l9 или l.1-l.9, то есть, аналогично тому, как вводится амперсанд-педаль. И глубина нажатия на педаль трактуется точно так же.
Указание l. эквивалентно l.5 и это позволяет чуть сократить знак для педали с длительностью 1/16 секунды. Педаль с такой короткой длительностью звучания это и не педаль вовсе, а средство подчеркнуть слигованность нот, именно так исполнение с неглубокой педалью воспринимается на слух - звук на педали заполняет собой всю посленотную паузу.
Отменяется L_педаль указанием l0 - режим наложения при этом не отменяется, поэтому звук на педали продолжает звучать и оканчивается без треска. Отменить режим наложения, введённого L_педалью можно указанием = (знак равенства отменяет наложение, а знак равенства со звёздочкой =* устанавливает его для всех последующих нот строки).
Исполнение нот фортепьяно (сценарий Q1) в режимах стаккато и пиццикато на L_педали имеет особенности. Эти ноты отличаются не только коротким временем звука, существенно более долгой посленотной паузой и более коротким временем релаксации звука, но и тем, что время релаксации связано с глубиной нажатия педали. Чем губже нажата педаль, тем дольше тянутся звуки стаккато. В этом смысле звук стаккато и пиццикато на L_педали звучит более натурально.
Тогда как эти же звуки на амперсанд-педали очень коротки.
Наличие двух видов педали в программе «Пианола_М» делает исполнение более интересным, однако, приходиться выбирать - одновременно эти педали работать не могут.
СШИВАНИЕ ЗВУКА НА L_ПЕДАЛИ
Нередко случается, что исполнение музыки на педали переходит с одной строки на другую, и тогда звук на педали разрывается. Как следствие этого может слышаться щелчок.
На иллюстрации показано, как нота Ля большой октавы оканчивается щелчком на одной строке, и как звук на педали продолжается на другой строке, при этом первый звук точно сшивается со вторым так, что никакого щелчка не происходит.
На первой строке записано Q1H* l9A5.07 - задана глубокая педаль и нота Ля. Если бы эта строка была бы продолжена паузой, то в паузе мы бы услышали долгий звук на педали. Однако паузы нет, а длительность ноты Ля 5.07 подобрана таким образом, что звук обрывается на самом максимуме, и поэтому щелчок хорошо слышен.
Осциллограмма окончания этого звука показана на иллюстрации, ступенька, создающая щелчок, в конце осциллограммы хорошо видна.
Следующая строка начинается так Q1H* l1A5.07=#~
Звук ноты Ля с её продолжением на педали записывается в буфер.
Знак =# сдвигает содержимое большого буфера в его начало, и семплы начинаются со звука на педали за посленотной паузой, как раз с того места, на котором звук был прерван, и мы видим, что продолжение звука начинается со ступеньки, поэтому, когда звук второй строки следует за первым, то ступенька исчезает (см. осциллограмму снизу).
Правда, поскольку педаль во второй строке была назначена неглубокая - l1, то звук во время паузы длится совсем недолго, меньше 1/8 секунды. Начало этого звука отмечено на осциллограмме оранжевой вертикальной чертой. Видно, что никакого разрыва в этом месте нет.
Заметим, что такая тактика будет столь же успешной и для манипуляций с амперсанд-педалью.
Как итог, сделаем вывод о том, что педаль со своими алгоритмами может успешно применяться в программах, использующих численное создание музыки. Некоторые проблемы при этом возникают, однако они могут быть успешно решены. В программе «Пианола_М» средства для этого есть.
__________
29.09.2025
Пример использования описанного в статье алгоритма слушаем здесь - http://proza.ru/2025/09/29/1224 С.В.Рахманинов Прелюдия Соль минор.
Свидетельство о публикации №225092901224