Управление реверберацией по MIDI
В стандарте General MIDI (GM) прописан только один параметр для управления глубиной (уровнем) реверберации ? контрольное сообщение под номером 91 (5BH).
В GS и XG возможности управления значительно расширены. Во-первых, по NRPN можно влиять на уровень реверберации отдельно для разных ударных инструментов. Например, вот так можно уменьшить реверберацию для большого барабана (Kick) стандартного GM Drum набора:
№ СС
Значение
Комментарий
63H | 1DH | Установить старший MSB |
62H | 24H | Установить младший MSB |
06H | 10H | Ввести новое значение уровня реверберации |
Указанные значения можно ввести вручную в окне редактирования MIDI событий любого секвенсора (окно Events в Cakewalk, Sonar).
Во-вторых, для GS, XG, GM2 можно оперативно сменить тип реверберации. Реализуется это посылом специального SysEx сообщения. Например, вот такое сообщение устанавливает тип реверберации Room3 для синтезатора серии Roland Sound Canvas (SC-8820):
F0 41 10 42 12 40 01 30 02 0D F7
Здесь:
F0 41 10 42 12 ? заголовок SysEx сообщения;
40 01 30 ? три байта определяют характер MIDI-сообщения ? смена типа реверберации;
02 ? тип реверберации Room3;
0D ? контрольная сумма;
F7 ? конец SysEx сообщения.
Для синтезатора XG это будет выглядеть так:
F0 43 10 4C 02 01 00 02 02 F7
Здесь:
F0 43 10 4C ? заголовок SysEx сообщения;
02 01 00 ? три байта задают адрес смены типа реверберации;
02 02 ? два байта определяют тип реверберации Room3;
F7 ? конец SysEx сообщения.
В-третьих, имеется возможность менять множество параметров реверберации. В таблице ниже представлены управляемые параметры для GS и XG совместимых синтезаторов:
Параметр
GS (SC-8820)
XG (SW1000XG)
Level | Есть | Есть |
Time | Есть | Есть |
Diffusion | Нет | Есть |
Pre-Delay Time (Initial Delay) | Есть | Есть |
LPF | Есть | Есть |
HPF | Нет | Есть |
Reverb Delay | Нет | Есть |
Density | Нет | Есть |
Er/Rev Balance | Нет | Есть |
Feedback Level | Нет | Есть |
Wall Vary | Нет | Есть |
Реализуются они также посылом SysEx сообщений. Например, для XG устройства следующее сообщение устанавливает максимальное время реверберации:
F0 43 10 4C 02 01 02 7F F7
В данном случае три байта 02 01 02 определяют смену параметра реверберации ? Reverb Time, а предпоследний байт 7F ? задает максимальную длительность.
Разумеется, для управления указанными параметрами удобнее использовать специализированные редакторы (XG Edit, GS Advanсed Editor и т.п.), благодаря которым можно абстрагироваться от программирования в шестнадцатеричных кодах.