Неочевидные возможности AWE - часть 4
Звуковые карты семейства AWE стандарт XG не поддерживают. Однако возможность управления параметрами звука при помощи хитрых, но не сложных MIDI-сообщений имеется. Об этой возможности мы и расскажем.
Кроме RPN, бывают еще и NRPN (Non Registered Parameter Number] — номер нефиксированного (изменяемого) параметра. Главное его отличие от RPN состоит в том, что одни и те же NRPN у разных производителей MIDI-оборудова-ния могут соответствовать различным параметрам генерации звука. Задав
NRPN, можно выбрать интересующий параметр генерации звука и определить его значение с помощью манипуляторов Data Entry.
Для звуковых карт семейства AWE значение NRPN MSB
всегда должно быть равно 127, а в NRPN LSB нужно передавать номер интересующего вас параметра звука. Значение этого параметра передается через манипуляторы Data Entry. Таким образом, процесс управления параметрами звука сводится к выполнению последовательности MIDI-сообщений, приведенных в табл. 3.2.
Таблица 3.3.
MIDI-сообщения управления параметрами звука
Номер MIDI-сообщения | Номер манипулятора (controller) | Название манипулятора | Положение манипулятора (value) |
1 | 99 | NRPN MSB | 127 |
2 | 98 | NRPN LSB | N |
3 | 6 | Data Entry MSB | X |
4 | 38 | Data Entry LSB | Y |
Здесь N — номер контролируемого параметра, а Х и Y — числа, рассчитываемые по следующим формулам:
Х = (ЗПЗ+ 8192)/128 Y = (ЗПЗ + 8192) % 128,
где символ « / » означает целую часть отделения на 128, а « % » — остаток от деления; ЗПЗ — значение параметра звука.
Чтобы определить значение параметра звука, исходя из данных, хранящихся в MIDI-файле, нужно совершить обратное преобразование, воспользовавшись следующей формулой:
ЗПЗ = [ (Data Entry MSB) S 128 + Data Entry LSB)] - 8 192.
Однако в реальной жизни компьютерного музыканта управление параметрами звука осуществляется более простым способом. Во-первых, если вы собираетесь управлять только каким-либо одним параметром, достаточно однократного выполнения MIDI-команд 1 и 2 (см. табл. 3.2), а далее можно многократно изменять только значения параметра через манипуляторы Data Entry.