Эффекты
Первые два сообщения, Effect Control 1 (CC#12/CC#44) и Effect Control 2 (CC#13/CC#45), — непрерывного типа и высокого разрешения. Стандартная реакция на них протоколом не определена, тон-генератор может использовать их для любого параметра, имеющего отношение к встроенному эффекту. Следующие пять сообщений относятся к контроллерам низкого разрешения. Если байт данных в них равен нулю, то инструмент должен отключить эффект. Сообщение Effect 1 Depth (CC#91, оно же Reverb Send Level) изначально называлось просто External Effect Depth (глубина внешнего эффекта). Часто применяется для управления количеством реверберации (или уровнем посыла на ревербератор). Сообщение Effect 2 Depth (CC#92, оно же Tremolo Depth) задает глубину амплитудной модуляции (глубину тремоло). Сообщение Effect 3 Depth (CC#93, оно же Chorus Send Level, изначально называлось Chorus Depth) задает глубину (уровень) хоруса. Сообщение Effect 4 Depth (CC#94, оно же Celeste (Detune) Depth) задает глубину расстройки, что актуально для такого инструмента, как челеста. Сообщение Effect 5 Depth (CC#95, оно же Phaser Depth) задает глубину (уровень) обработки эффектом фейзер. Контроллеры общего назначения
Аналогичные им четыре сообщения General Purpose Controller (5, 6, 7, 8) находятся в блоке непрерывных контроллеров низкого разрешения. RPN
Типичный пример. Мы работаем на седьмом MIDI-канале и хотим понизить строй партии на 15 центов. Рассчитаем, какое значение должно быть у RPN номер 1. Стандартной настройке соответствует значение 8192, понижению на 100 центов — 0. Стало быть, для понижения партии на 15 центов нужно 8192 умножить на 15/100. Получится 1228,8. Дробную часть мы передать не можем, поэтому округляем до 1229. Преобразуем это число в MSB и LSB: MSB = 1229 / 128 = 9, LSB = 1229 - (9 x 128) = 77. Последовательность байт показана на рис. 49. Теперь, если понадобится изменить настройку на 1, можно воспользоваться контроллером Data Increment, а не посылать MSB и LSB заново (рис. 50). Контроллер Data Increment/Decrement работает по отношению к тому RPN, который последний подвергался настройке (если последним был NRPN, то по отношению к нему). Параметр Channel Coarse Tuning (номер 2) раньше назывался Coarse Tuning. С помощью него строй партии можно менять шагами по 100 центов (т. е. в полутонах). Используется только MSB: значение 64 (0x40) означает стандартную настройку, значение 0 — строй понижается на 6400 центов (64 полутона), 127 (0x7F) — повышается на 6300 центов (63 полутона). Параметры с номерами 3 и 4 (Tuning Program Change и Tuning Bank Select соответственно) используются в устройствах, которые отвечают спецификации MIDI Tuning (рассмотрим ее в отдельной статье). Так же, как и тембры, строи организуются в программы и банки. RPN 3 и 4 работают по аналогии с сообщениями Program Change и Bank Select, то есть позволяют выбрать для канала конкретный строй. Наконец, предусмотрен служебный параметр RPN Reset (номер 16383). Представьте такую ситуацию: вы выбрали RPN номер 1 для тонкой подстройки партии. После чего установили какое-либо значение в центах (путем использования контроллеров Data Entry или Data Increment/Decrement) и спокойно продолжаете работать. Тон-генератор все это время считает текущим RPN номер 1, и будет так считать до тех пор, пока явно не задать новый RPN контроллерами RPN MSB и RPN LSB. Если в то время, пока активен RPN номер 1, случайно будет изменен контроллер Data Entry или Data Increment/Decrement, то у вас собьется настройка партии! Для страховки от подобных случайностей и придуман параметр RPN Reset. После его применения контролеры Data Entry и Data Increment/Decrement как бы отключаются от последнего активного RPN. Обычно рекомендуется всегда посылать RPN Reset после завершения настройки какого-либо RPN. На всякий случай. Пример использования RPN Reset на первом MIDI-канале при понижении стандартной настройки на полутон показан на рис. 51.
Ну что ж, все сообщения канала мы рассмотрели. В следующей статье поговорим о системных сообщениях, работе приемных и передающих устройств и методах оптимизации при передаче сообщений.
|