Звуковая студия в PC

       

Программирование чувствительности колеса изменения тона


Что же такое RPN? Это аббревиатура от английского словосочетания Registered Parameter Number (номер фиксированного параметра). Спецификация MIDI определяет три таких параметра: RPN 0 — чувствительность манипулятора (колеса) изменения тона (Pitch Wheel), RPN 1 — грубая подстройка высоты тона, RPN 2 — точная настройка высоты тона. Однако звуковые карты семейства AWE поддерживают только один из этих параметров (нулевой). По умолчанию диапазон изменения тона составляет ±2 полутона (или плюс-минус один тон). Положение колеса задается числом от –8192 до 8191.

Часто бывает так, что диапазона шириной в 2 тона оказывается не достаточно для реализации эффекта плавного изменения высоты звука. Эта проблема решается довольно просто. Через два манипулятора ввода данных (Data entry LSB и Data entry MSB) устанавливается новое значение RPN 0.

MIDI-протокол предусматривает передачу данных байтами. Некоторые их биты зарезервированы для служебных целей. Если от каждого байта “отщипнуть” по биту, то останутся этакие семибитные “недобайты”, с помощью которых можно передавать числа от 0 до 127 (вспомните о диапазоне возможных значений манипуляторов). Но, например, для программирования чувствительности манипулятора изменения тона диапазона в 128 значений оказывается недостаточно. Поэтому для передачи данных используется два семибитных фрагмента одного большого четырнадцатибитного числа. С помощью него можно передавать числа от 0 до 16383 (или от –8192 до 8191). Младшие 7 бит (Least Significant Bit, LSB — младший байт) передаются через манипулятор 38, старшие 7 бит (Most Significant Bit, MSB — старший байт) передаются через манипулятор 6.

Итак, для изменения чувствительности колеса высоты тона вызовите список MIDI-сообщений из Вашего музыкального редактора. В самом начале списка поместите последовательность MIDI-команд, указанную в табл. 3.1.

Таблица 3.1. MIDI-команды изменения чувствительности колеса высоты тона

Номер MIDI-сообщения

Номер манипулятора (controller)

Название манипулятора

Положение манипулятора (value)

1

101

RPN MSB

0

2

100

RPN LSB

0

3

6

Data Entry MSB

X

4

38

Data Entry LSB

Y

В табл. 3.1 X — число, задающее диапазон высоты звука в полутонах, а Y — число, уточняющее ширину диапазона (точная настройка, заданная в сотых долях полутона — центах). Если нет необходимости задавать диапазон с такой точностью, просто не вводите последнее MIDI-сообщение. Диапазон возможных значений параметров X и Y: от 0 до 127. Чувствительность колеса высоты тона можно задавать индивидуально для каждого MIDI-канала.

На рис. 3.50 показан пример последовательности MIDI-сообщений в окне Event List музыкального редактора Cakewalk.

Рис. 3.50. Пример установки чувствительности колеса высоты тона

В результате выполнения этой последовательности (после нажатия кнопки Play) чувствительность манипулятора высоты тона для первого MIDI-канала будет ±1 октаву (или ±12 полутонов).



Содержание раздела