Иллюстрированный самоучитель по Cubase SX

Формат MIDI-данных. Типы MIDI-сообщений в Cubase SX.

Program Change – сообщение о смене MIDI-инструмента

Program Change – сообщение о смене MIDI-инструмента (тембра, патча, программы). Параметры сообщения – способ выбора банка, номер банка, номер инструмента в банке.

Поскольку MIDI-инструменты распределены по банкам, в спецификации MIDI сообщению Program Change соответствует совокупность сообщений: Program Change, Bank Select MSB и Bank Select LSB.

Для выбора MIDI-инструмента предназначено сообщение Program Change формата Ck pp, где k – номер MIDI-канала, pp – номер MIDI-инструмента.

Для переключения банков служат контроллеры:

  • №0 – Bank Select MSB – контроллер выбора банка (старший байт);
  • №32 – Bank Select LSB – контроллер выбора банка (младший байт).

Одним MIDI-устройствам для переключения банков требуется только один из этих контроллеров, другим – оба. Обработка MIDI-устройством команды смены банка и MIDI-инструмента может занять значительное время (десятки миллисекунд и более).

В спецификации General MIDI регистрируемые (Registered Parameter Number – RPN) и нерегистрируемые (Non-Registered Parameter Number – NRPN) параметры введены дополнительно для расширенного управления синтезом.

Номера RPN и NRPN передаются при помощи контроллеров:

  • №98 – NRPN LSB – контроллер младшего байта параметра NRPN;
  • №99 – NRPN MSB – контроллер старшего байта параметра NRPN;
  • №100 – RPN LSB – контроллер младшего байта параметра RPN;
  • №101 – RPN MSB – контроллер старшего байта параметра RPN.

MIDI-устройство запоминает однажды переданные ему сообщения RPN или NRPN, после которых передаются значения соответствующего параметра при помощи контроллеров:

  • №6 – Data Entry MSB – контроллер вводимых данных (старший байт);
  • №38 – Data Entry LSB – контроллер вводимых данных (младший байт).

Такой механизм передачи сообщений можно охарактеризовать как "контроллер в контроллере". Стандартом определена интерпретация только трех RPN (их значения задаются старшими байтами параметров Data Entry):

  • RPN 0 – Pitch Bend Sensitivity – контроллер для изменения чувствительности колеса сдвига тона (Pitch Bend);
  • RPN 1 – Fine Tuning – контроллер для точной подстройки строя синтезатора;
  • RPN 2 – Coarse Tuning – контроллер для грубой подстройки строя синтезатора.

RPN 0 определяет количество полутонов, на которое смещается высота тона при получении сообщения Pitch Bend Change с максимально допустимым абсолютным значением параметра. По умолчанию принимается диапазон перестройки частоты на плюс-минус два полутона.

В сообщении RPN 0 содержится параметр X, определяющий ширину диапазона перестройки тона. Он рассчитывается по формуле X = 1284N+C, где N – ширина диапазона в полутонах, С – уточнение ширины диапазона в центах (сотых долях полутона). Некоторые синтезаторы (например, поддерживающие спецификации GS или XG) воспринимают только целое число полутонов (значение параметра С игнорируется). Чтобы, например, установить ширину диапазона перестройки частоты колеса сдвига тона равной плюс-минус одной октаве, нужно передать сообщение NRPN 0 1536. Число 1536 рассчитано следующим образом: 128412 = 1536 (12 – количество полутонов в октаве).

RPN 1 и RPN 2 позволяют сместить строй инструмента в MIDI-канале на заданное количество центов при точной или полутонов при грубой подстройке. За относительный ноль принимается значение 64.

Интерпретация остальных контроллеров RPN и NRPN стандартом не определена. Каждый производитель MIDI-аппаратуры может использовать их по своему усмотрению.

Спецификацией Roland GS (General Synth) определены дополнительные контроллеры:

  • №91 – Reverb Level – контроллер глубины реверберации;
  • №93 – Chorus Level – контроллер глубины хоруса.

Спецификацией Yamaha XG (extended General) определены контроллеры, которые не предусмотрены спецификацией Roland GS:

  • №71 – Harmonic Content – контроллер глубины резонанса фильтра;
  • №72 – Release Time – контроллер времени затухания звука после выключения ноты;
  • №73 – Attack Time – контроллер времени нарастания звука после включения ноты;
  • №74 – Brightness – контроллер частоты среза фильтра;
  • №84 – Portamento Control – контроллер номера ноты, начиная с которой будет выполнено плавное скольжение по частоте до очередной включенной ноты (портаменто);
  • №94 – Variation Level – контроллер глубины эффекта Variation;
  • №96 – RPN Increment – контроллер увеличения значения RPN на 1, значение контроллера RPN Increment игнорируется;
  • №97 – RPN Decrement – контроллер уменьшения значения RPN на 1, значение контроллера RPN Decrement игнорируется.

Таким образом, устройства, соответствующие спецификациям GM, GS и XG, обладают различными возможностями по управлению параметрами синтеза. Исчерпывающие сведения о контроллерах, регистрируемых и нерегистрируемых параметрах можно найти только в документации на конкретные модели звуковых карт, синтезаторов и модулей синтеза.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.