Компьютерная обработка звука
Шрифт:
Номер ноты задается абсолютным значением в диапазоне от 0 до 127, при этом ноте до первой октавы соответствует десятичный номер 60. В MIDI принята нумерация октав с нуля, поэтому нота до первой октавы обозначается C5.
Как известно, чем сильнее удар по клавише фортепиано, тем громче звук. Второй параметр как раз соответствует динамике обычной фортепианной клавиатуры. Электронные клавиатуры, способные передавать динамику нажатия, обычно называют активными. Однако можно выделить два типа «активности»: чувствительность к скорости нажатия velocity и к силе давления
Note Off (Выключить ноту). Сообщение о выключении звучания ноты. Параметры те же: note и velocity, но значение второго параметра равно нулю.
Polyphonic Key Pressure или Key Aftertouch. Сообщение о давлении на отдельную клавишу (послекасание). Параметры: note и pressure value (величина давления).
Клавиатура настоящего фортепиано не имеет такого свойства. Суть свойства заключается в том, что, если к уже нажатой клавише приложить дополнительное усилие (то есть слегка надавить на нее), клавиатура, отрабатывающая такое дополнительное нажатие, посылает в MIDI-интерфейс соответствующие команды и сообщает измеренные величины давления. Большинство профессиональных синтезаторов реагируют на эту команду, но все по-разному. В одних случаях они производят эффект расстроенного пианино, в других – звук электрогитары с эффектом «дисторшн», и т. д.
Program Change (Смена программы, или инструмента). Сообщение о смене программы в канале. Параметр один: program number (номер программы). Под программой здесь понимается номер инструмента или тембра в выбранном банке. Величина задается значением от 0 до 127. Стандартом General MIDI определены 128 основных мелодических и 47 ударных инструментов, собранных в нулевом банке. Устройства с расширенным набором инструментов имеют дополнительные банки, а также могут иметь частично измененный основной набор.
Channel Pressure или Channel Aftertouch. Сообщение о давлении на клавиши (послекасание) – усредненное давление на все нажатые клавиши. Параметр один: pressure value (величина давления).
Pitch Bend Change. Сообщение об изменении высоты всех нот в канале, то есть строя инструмента. Диапазон значений – от 0 до 16383, среднее значение принимается за относительный нуль, так что условный диапазон изменений – от -8192 до 8191.
Control Change. Сообщение об изменении состояния органов управления (MIDI-контроллеров). Параметры: control (номер контроллера) и control value (значение контроллера).
По характеру своего воздействия MIDI-контроллеры делятся на continuous (непрерывные) – ручки, движки, ползунки, изменяющие значения в некоем диапазоне, и switches (переключатели) – педали, кнопки, тумблеры, имеющие только два состояния: on (включено) и off (выключено). В табл. 4.1 приведена принятая нумерация контроллеров.
Таблица 4.1.
Для управления параметрами звука применяются два основных способа: абсолютный и относительный. При абсолютном способе параметр полностью зависит от установленного значения контроллера. При относительном способе имеется некое стандартное значение, соответствующее нейтральному положению (64). Для таких параметров, как громкость или панорама, используется абсолютный способ управления; для других – например, глубина реверберации, частота среза фильтра – относительный.
Состоянию контроллера-переключателя off соответствует значение 0, состоянию on – значение 127. Значения от 1 до 126 включительно игнорируются.
Рассмотрим MIDI-контроллеры и их работу.
Сообщения класса MIDI-контроллеры
В табл. 4.2 показаны применяемые на практике MIDI-контроллеры:
Таблица 4.2. MIDI-контроллеры
Bank Select (Выбор банка). Во многих MIDI-устройствах существует возможность работать со встроенными, а также дополнительно подгружаемыми наборами инструментов (тембров) и звуковых эффектов, которые для удобства объединены в банки звуков, или просто банки. Одновременно в одном канале может использоваться только один банк. Для переключения банков и служит контроллер Bank Select, который состоит из двух частей:
Bank Select MSB (Выбор банка, старший значащий байт);
Bank Select LSB (Выбор банка, младший значащий байт).
Одним устройствам для переключения банков требуется только один из этих контроллеров, другим – оба.
По умолчанию устанавливается нулевой банк. После смены банка обязательно должен быть выбран инструмент (тембр), то есть отправлено сообщение Program Change. Для отработки сообщений о смене банка и инструмента различным устройствам требуется разное время, иногда довольно продолжительное (десятки миллисекунд). В зависимости от реализации некоторые устройства при поступлении этих сообщений выключают звучащие в канале ноты.
Modulation (Модуляция). Контроллером задается глубина частотной модуляции в канале. При значении 0 (по умолчанию) модуляция отключена, при значении 127 устанавливается максимальная глубина.
Portamento (Портаменто). Портаменто называют способ певучего исполнения мелодии, когда один звук постепенно (как бы скользя) переходит в другой. Если этот контроллер-переключатель выключен, каждая нажатая нота начинает звучать на частоте, зависящей от высоты ноты и – дополнительно – от значений контроллеров управления высотой. При включенном портаменто очередная нота начинает звучать на частоте, заданной либо контроллером Portamento Control (он рассмотрен ниже), либо предыдущим сообщением Note On. Затем ее высота плавно изменяется до нужной за время, определенное контроллером Portamento Time (он рассмотрен ниже). Другими словами, последнее сообщение Note On всегда фиксируется в качестве исходной высоты для последующей ноты. При этом все скольжения от ноты к ноте выполняются независимо.