Портаменто
Режим портаменто включается с помощью сообщения переключателя Portamento On/Off (СС#65), обычно назначаемого на педаль. При включенном режиме очередная нота начинает звучать на высоте, определяемой последним сообщением Note On на данном канале, затем высота плавно скользит к нормальной. Основной параметр, влияющий на выразительность эффекта — время портаменто, то есть время, за которое происходит скольжение. Временем портаменто управляет сообщение Portamento Time (СС#5/СС#37 — контроллер высокого разрешения). Стандартное значение для него не определено, как, впрочем, и соответствие значения конкретным единицам времени (секундам, миллисекундам). Значение 0 означает наименьшее время. Эффект портаменто чем-то напоминает питч-бенд, но главное его отличие от последнего в том, что мы управляем не величиной смещения, а временем, за которое происходит смещение. В быстрых пассажах это время не должно быть слишком большим, иначе отдельных нот будет не разобрать. С другой стороны, чем больше время портаменто, тем отчетливее эффект. Во время медленных пассажей можно изменять время портаменто между каждой парой нот — зачастую только такой способ позволяет добиться нужной выразительности. Теперь несколько тонких моментов. Эффект портаменто не требует связной игры двух нот (приемом легато), поэтому можно нажать одну клавишу, отпустить и пойти покурить. По возвращении можно нажать другую клавишу и обнаружить, что синтезатор запомнил высоту последней ноты, а новую взял с "подъездом" от старой. Так что пауза между звуками роли не играет. А если отпустить клавишу до прекращения скольжения, то есть снять ноту раньше, чем она подтянется к своей нормальной высоте? Для тон-генератора это не важно — новая нота всегда стартует с нормальной высоты предыдущей. При игре с наложением голосов, когда во время удержания одной клавиши нажимается другая, затем третья и т. д., все происходит аналогично. Исходная высота для каждой следующей ноты принимается равной нормальной высоте предыдущей. Если синтезатор находится в полифоническом режиме, то все скольжения в этом случае выполняются одновременно и независимо. Возникает вопрос: а что будет, если играть аккордами? Здесь самое время вспомнить природу MIDI — никакие два сообщения не могут поступить по одному каналу одновременно. Так что аккорд будет состоять из нескольких последовательных сообщений Note On, и в данном случае все аналогично игре с наложением голосов. Только интервалы между сообщениями Note On будут минимальны, да и сказать точно, какая из нот аккорда будет передана первой, заранее нельзя — это уж от исполнителя зависит, ведь строго одновременно все ноты аккорда он не возьмет. Но тогда скольжение каждый раз (и для каждой ноты аккорда) будет случайным — в зависимости от очередности прихода сообщений Note On. Такой беспорядок, конечно, тоже может считаться выразительным эффектом, но хорошо бы как-то сообщить тон-генератору, от какой ноты начинать "подъезд", причем сообщить это для каждой из нот аккорда. Подобная необходимость может возникнуть и при игре одноголосной мелодии. Например, когда мелодия состоит из узких интервалов, а подъезд к каждой ноте хочется получить большой, жирный, как будто на целую октаву. Одним словом, желательно, чтобы тон-генератор начинал скольжение не от последней взятой ноты, а от установленной исполнителем. Раньше эта задача могла быть выполнена только с записанным материалом, в секвенсоре, с помощью так называемых "мнимых нот". Это ноты, в которых важна только их высота, а динамика минимальна. Основная задача — сделать так, чтобы тон-генератор считал мнимую ноту последней взятой на канале. Для этого мнимая нота вставлялась в список событий вручную, непосредственно перед реальной нотой, для которой таким образом задавалась высота начала скольжения. Так как громкость скольжения определяется громкостью той ноты, к которой скользит тон, то динамика мнимой ноты может быть вообще нулевая — тогда ее гарантированно не будет слышно.
Мнимые ноты позволяют также обойтись без применения контроллера Portamento Time. Если нужно, чтобы высота ноты изменялась быстрее, то можно использовать мнимую ноту, более близкую по высоте к следующей. Скольжение, правда, начнется с меньшего интервала, но иногда это не так и важно. В 1992 году в спецификацию было добавлено сообщение Portamento Control (второй уровень кодирования, СС#84), которое призвано заменить мнимые ноты. Это сообщение задает номер ноты, от которой выполняется скольжение. Оно может быть сгенерировано в реальном времени с помощью какого-либо органа управления инструмента, а это значит, что прямо в процессе исполнения можно задавать высоту начала скольжения. Реакция тон-генераторов на Portamento Control имеет особенности. Так, если номер ноты, поступивший в этом сообщении, равен номеру ноты, которая уже звучит, то для подъезда будет использована текущая огибающая, без перезапуска генератора огибающей для новой ноты. Если инструмент находится в режиме Mono или он принял сообщение о включении педали легато, то звучащая нота должна немедленно сменить высоту на ту, что задана в сообщении Portamento Control, а затем уже скользить к высоте следующей ноты. Настало время примера. Мы работаем на девятом MIDI-канале и выставляем время портаменто ровно в середину диапазона, затем выбираем стартовую ноту для подъезда, скажем, До первой октавы, и для включения эффекта нажимаем педаль портаменто. Последовательность байт показана на рис. 40.
|