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


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 I — 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, обладают различными возможностями по управлению параметрами синтеза. Исчерпывающие сведения о контроллерах, регистрируемых и нерегистрируемых параметрах можно найти только в документации на конкретные модели звуковых карт, синтезаторов и модулей синтеза.


              Содержание раздела