Для звуковых карт семейства AWE значение NRPN MSB всегда должно быть равно 127, а в NRPN LSB нужно передавать номер интересующего вас параметра звука. Значение этого параметра передается через манипуляторы Data Entry. Таким образом, процесс управления параметрами звука сводится к выполнению последовательности MIDI-сообщений, приведенной в табл. 3.2.
Таблица 3.2. 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 — номер контролируемого параметра, а X и Y — числа, рассчитываемые по следующим формулам:
X = (ЗПЗ+ 8192) / 128
Y = (ЗПЗ + 8192) % 128,
где символ “ / ” означает целую часть от деления на 128, а “ % ” — остаток от деления; ЗПЗ — значение параметра звука.
Чтобы определить значение параметра звука, исходя из данных, хранящихся в MIDI-файле, нужно совершить обратное преобразование, воспользовавшись следующей формулой:
ЗПЗ = [(Data entry MSB)x128 + Data entry LSB)] – 8192.
Однако в реальной жизни компьютерного музыканта управление параметрами звука осуществляется более простым способом. Во-первых, если вы собираетесь управлять только каким-либо одним параметром, достаточно однократного выполнения MIDI-команд 1 и 2 (см. табл. 3.2), а далее можно многократно изменять только значения параметра через манипуляторы Data entry. Во-вторых, скорее всего, вам не придется каждый раз рассчитывать числа X и Y с помощью калькулятора. вы можете написать простенькую программку на языке C++... Не пугайтесь, это шутка. Дело вот в чем.