В этом разделе вы познакомитесь с теми возможностями звуковых карт на базе EMU8000, о которых практически ничего не говорится в документации, поставляемой вместе с ними.
Данный раздел будет полезен не только владельцам звуковых карт семейства AWE, но и обладателям любых современных MIDI-инструментов, поддерживающих стандарты, о которых речь пойдет ниже.
Возможно, что в руководстве пользователя звуковой карты в таблице MIDI Implementation Chart, кроме имен привычных MIDI-манипулятров (Volume, Reverb, Chorus и т.п.), вы встретите такие названия, как Data entry, NRPN LSB, NRPN MSB, RPN LSB и RPN MSB. Может быть вы даже попытаетесь отыскать описание этих манипуляторов в руководстве пользователя. Не исключено, что некоторые наши читатели уже экспериментировали с загадочными манипуляторами, но результат исследований оказался отрицательным. Этот раздел поможет вам научиться использовать (и довольно эффективно) закодированные прописными английскими буквами возможности звуковой карты.
Поскольку речь пойдет о MIDI-сообщениях, применяемых для управления параметрами звука, для повторения примеров, приведенных в книге, потребуется музыкальный редактор (секвенсор). Мы будем использовать Cake-walk Pro Audio 5.0. Об основах работы с этим редактором мы рассказали в нашей предыдущей книге [63]. Следующая версия программы — Cakewalk Pro Audio 6.0, содержит встроенные возможности по управлению параметрами звука (MIDI-манипуляторами RPN и NRPN, наряду с другими, можно управлять из окон Piano Roll или Event List). Но мы специально выбрали редактор Cakewalk Pro Audio 5.0, не обладающий такими возможностями. Прочитав этот раздел, вы научитесь управлять параметрами звука из любого музыкального редактора.
3.5.1. Программирование чувствительности колеса изменения тона
Что же такое RPN? Это аббревиатура от английского словосочетания Registered Parameter Number (номер фиксированного параметра). Спецификация MIDI определяет три таких параметра: RPN 0 — чувствительность манипулятора (колеса) изменения тона (Pitch Wheel), RPN 1 — грубая подстройка высоты тона,
RPN 2 — точная настройка высоты тона. Однако звуковые карты семейства AWE поддерживают только один из этих параметров (нулевой). По умолчанию диапазон изменения тона составляет ±2 полутона (или плюс-минус один тон). Положение колеса задается числом от —8 192 до 8 191.
Часто бывает так, что диапазона шириной в 2 тона оказывается недостаточно для реализации эффекта плавного изменения высоты звука. Эта проблема решается довольно просто. Через два манипулятора ввода данных (Data entry LSB и Data entry MSB) устанавливается новое значение RPN 0.
MIDI-протокол предусматривает передачу данных байтами. Некоторые их биты зарезервированы для служебных целей. Если от каждого байта «отщипнуть» по биту, то останутся этакие семибитные «недобайты», с помощью которых можно передавать числа от 0 до 127 (вспомните о диапазоне возможных значений манипуляторов). Но, например, для программирования чувствительности манипулятора изменения тона диапазона в 128 значений оказывается недостаточно. Поэтому для передачи данных используется два семибитных фрагмента одного большого четырнадцатибитного числа. С помощью него можно передавать числа от 0 до 16 383 (или от —8 192 до 8 191). Младшие 7 бит (Least Significant Bit. LSB — младший байт) передаются через манипулятор 38, старшие 7 бит (Most Significant Bit, MSB — старший байт) передаются через манипулятор 6.
Итак, для изменения чувствительности колеса высоты тона вызовите список MIDI-сообщений из вашего музыкального редактора. В самом начале списка поместите последовательность MIDI-команд, указанную в табл. 3.1.
Таблица 3.1. MIDI-команды изменения чувствительности колеса высоты тона
Номер MIDI-сообщения | Номер манипулятора (controller) | Название манипулятора | Положение манипулятора (va/ue) |
1 | 101 | RPN MSB | 0 |
2 | 100 | RPN LSB | 0 |
3 | 6 | Data Entry MSB | X |
4 | 38 | Data Entry LSB | Y |
В табл. 3.1 Х — число, задающее диапазон высоты звука в полутонах, a Y — число, уточняющее ширину диапазона (точная настройка, заданная в сотых долях полутона, — центах). Если нет необходимости задавать диапазон с такой точностью, просто не вводите последнее MIDI-сообщение. Диапазон возможных значений параметров Х и Y: от 0 до 127. Чувствительность колеса высоты тона можно задавать индивидуально для каждого MIDI-канала.
На рис. 3.50 показан пример последовательности MIDI-сообщений в окне Event List музыкального редактора Cakewalk.