Вопросы и ответы по стандарту MIDI

RPN, NRPN и Data Entry

Для расширения функций управления синтезом дополнительно введены зарегистрированные (Registered Parameter Number — RPN) и незарегистрированные (Non-Registered Parameter Number — NRPN) номера параметров, передаваемые с помощью контроллеров:

98 — NRPN LSB (младший байт NRPN);

99 — NRPN MSB (старший байт NRPN);

100 — RPN LSB (младший байт RPN);

101 — RPN MSB (старший байт RPN).

Устройство запоминает однажды переданные ему RPN или NRPN, после которых могут передаваться значения выбранного параметра. Для этой цели служат контроллеры:

6 — Data Entry MSB (ввод данных, старший байт);

38 — Data Entry LSB (ввод данных, младший байт);

96 — RPN Increment (увеличение RPN на 1, значение игнорируется);

97 — RPN Decrement (уменьшение RPN на 1, значение игнорируется).

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

RPN 0 — Pitch Bend Sensitivity (чувствительность Pitch Bend);

RPN 1 — Fine Tuning (точная подстройка);

RPN 2 — Coarse Tuning (грубая подстройка).

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

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

Интерпретация остальных параметров стандартом не предусмотрена.

Специальные канальные сообщения

Задаются контроллерами 120 - 127 и управляют отработкой всех сообщений в каналах:

120 — All Sounds Off;

121 — Reset All Controllers;

122 vv — Local Control;

123 — All Notes Off;

124 — Omni Off;

125 — Omni On;

126 nn - Mono;

127 - Poly.

Обязательными к реализации в General MIDI определены только контроллеры 121 и 123, а все прочие — по усмотрению производителей. Многие устройства требуют, чтобы неиспользуемые значения контроллеров были нулевыми.

Различные сочетания режимов Omni, Poly и Mono дают возможность выделить четыре основных режима работы (mode) MIDI-устройств:

1 — Omni On, Poly;

2 — Omni On, Mono;

3 — Omni Off, Poly;

4 — Omni Off, Mono.

Большинство современных устройств работает в mode 3 — полифоническом режиме с независимой работой каналов.

All Notes Off

Имитирует выключение всех включенных нот. Полностью эквивалентно сообщению Note Off для каждой звучащей ноты. Будет ли при его посылке прекращено звучание ноты — зависит от состояния режимов Sustain и Sostenuto.

All Sounds Off

Действует так же, но не зависит от режимов Sustain/Sostenuto; кроме того, оно немедленно прекращает звучание всех нот, находящихся в стадии концевого затухания (Release). Состояние самих режимов эти сообщения не затрагивают.

Reset All Controllers

Устанавливает все контроллеры в значения по умолчанию. Используется для начальной установки устройства перед проигрыванием партитуры.

Local Control

Служит для запрета/разрешения управления устройством с локальной панели. Нулевое значение параметра запрещает управление с панели (осуществляется только по MIDI), а 127 — разрешает.

Omni On/Off

Обеспечивает включение/выключение режима Omni — реакцию устройства на канальные сообщения. При включенном режиме Omni устройство отрабатывает сообщения для всех каналов, при отключенном — только для выбранного канала (Basic Channel). Это позволяет распределить устройства между каналами. Канал назначается устройству либо непосредственно с его панели управления, либо посылкой сообщений SysEx. Режим Omni имеет смысл применять в основном для старых инструментов, имеющих один MIDI-канал и не поддерживающих разделение тембров. Контроллеры Omni вызывают отработку All Sounds Off.

Mono/Poly

Переключают одноголосный и многоголосный (полифонический) режимы. В одноголосном режиме в каждый момент времени может звучать только одна нота; включение новой ноты приводит к принудительному отключению предыдущей. В полифоническом режиме включение любой следующей ноты запускает очередной свободный генератор, а когда все генераторы "закончатся", будут либо игнорировать новые ноты, либо принудительно выключаются "старые".

Значение nn в сообщении Mono воспринимается некоторыми устройствами как число MIDI-каналов, по которым (начиная с Basic Channel) распределяются ноты в одноголосном режиме при выключенном режиме Omni. Смысл этой группы каналов различен для передающих и принимающих устройств. Передающее устройство направляет первую ноту в Basic Channel, следующую за ней — в Basic Channel + 1 и т. д., затем очередная нота снова направляется в Basic Channel, и цикл повторяется. Приемное устройство воспринимает канальные сообщения только внутри заданной группы каналов, каждый из которых работает в одноголосном режиме. Такой прием позволяет реализовать многоголосное исполнение на синтезаторах, имеющих жесткую привязку голосов (генераторов) к MIDI-каналам.

Контроллеры Mono и Poly также вызывают отработку контроллера All Sounds Off.

Program Change (pp — номер тембра или инструмента)

Служит для смены инструмента в канале. Параметр задает номер инструмента (0 - 127) в текущем выбранном банке. Стандартом General MIDI определены 128 основных мелодических и 47 ударных инструментов, собранных в нулевом банке; устройства с расширенным набором инструментов имеют дополнительные банки, а также могут иметь частично измененный основной набор.

Стандартные мелодические инструменты General MIDI разделены на 16 групп (по восемь в каждой группе) (табл. )

ОБ АВТОРЕ

Евгений Музыченко — специалист лаборатории "Системы мультимедиа" (MSG), Новосибирск, НТК "Велгас". Тел.: (3832) 21-61-64, 2:5000/14@FidoNet, e-mail: music@spider.nstu.nsk.su