Описание работы контроллеров
Контроллеры Bank Select. Многие устройства могут работать с большим количеством встроенных и дополнительных тембров (инструментов) и звуковых эффектов, которые для удобства объединены в банки. В каждый момент времени в одном канале может использоваться только один банк; для переключения банков служат контроллеры:
0 — Bank Select MSB (выбор банка, старший байт);
32 — Bank Select LSB (выбор банка, младший байт).
Одни устройства требуют для переключения банков только один из этих контроллеров, другим необходимы оба. Поведение некоторых устройств в этом отношении может изменяться в различных режимах работы. По умолчанию устанавливается нулевой банк (в устройствах, совместимых с General MIDI, он содержит мелодические тембры GM). После смены банка обязательна посылка сообщения Program Change для выбора тембра (инструмента). Обработка устройством команды смены банка и инструмента может занять значительное время (десятки миллисекунд и более). Некоторые устройства при получении команд смены банков и инструментов гасят звучащие ноты в канале.
Контроллер Modulation. Задает глубину частотной модуляции в канале. Управление абсолютное. Значение 0 отключает модуляцию, значение 127 устанавливает максимальную глубину. Стандартное значение ― 0. Действует на последующие и уже звучащие ноты.
Контроллер Breath Control. Передает воздействия на духовой контроллер, обычно выполняемый в виде мундштука — значение отражает силу воздушного потока, вдуваемого в мундштук. Духовой контроллер может быть как автономным, так и совмещенным с другим MIDI-устройством (MIDI-саксофон, MIDI-флейта).
Контроллер Foot Pedal.Передает воздействия на ножную педаль - значение пропорционально силе давления на педаль или глубине ее погружения.
Контроллер Portamento Time. Задает время плавного скольжения от частоты предыдущей ноты до частоты очередной ноты. Управление абсолютное. Значение 0 соответствует минимальному времени, 127 — максимальному. Стандартное значение не определено.
Контроллер Main Volume. Задает громкость звучания внутри канала. Управление абсолютное. Стандартное значение — обычно 100. Действует на последующие и уже звучащие ноты.
Контроллер Pan. Задает соотношение уровня стереоканалов (точку стереопанорамы) для канала. Управление абсолютное. Значение 0 ― крайняя левая позиция, 64 — средняя, 127 — крайняя правая. Стандартное значение — 64. Действует на последующие и уже звучащие ноты.
Контроллер Expression. Задает степень выразительности звука. На простых инструментах дублирует контроллер Main Volume и действует и на последующие, и на уже звучащие ноты. На инструментах с развитым синтезом управляет более тонкими параметрами выразительности и действует только на последующие ноты. Стандартное значение — обычно 127.
Контроллер Harmonic Content. Задает добротность (глубину резонанса) фильтра канала, позволяющего подчеркнуть высокочастотные гармоники тембра. Увеличение добротности увеличивает крутизну характеристики фильтра в области среза, усиливая частоты, лежащие непосредственно ниже частоты среза. Управление относительное (0..64..127). Стандартное значение — 64.
Контроллер Release Time. Задает время концевого затухания звучания нот с момента отработки Note Off (явного или автоматического) до полного исчезновения звука. Управление относительное (0..64..127). Стандартное значение — 64.
Контроллер Attack Time. Задает время начальной атаки — нарастания громкости звучания нот с момента отработки Note On до максимального значения громкости. Управление относительное (0..64..127). Стандартное значение — 64.
Контроллер Brightness. Задает частоту среза фильтра канала, управляющую ослаблением высоких частот звука. Управление относительное (0..64..127). Стандартное значение ― 64.
Контроллер Portamento Control. Задает номер ноты, от которой выполняется плавная перестройка частоты в режиме Portamento, и позволяет установить исходную высоту, отличную от определяемой последним сообщением Note On.
Контроллер Reverb Level. Задает глубину выбранного эффекта типа реверберации (основанного на постоянной задержке сигнала) — Room, Hall, Delay, Echo и т.п. Управление абсолютное или относительное в зависимости от инструмента.
Контроллер Chorus Level.Задает глубину эффекта Chorus, Flanger, Phaser и т.п. Управление абсолютное или относительное в зависимости от инструмента.
Контроллер Variation Level. Задает глубину эффекта, выбранного в качестве Variation. Управление абсолютное или относительное в зависимости от инструмента.
Контроллер-переключатель Sustain. Во включенном состоянии удерживает звучания для всех клавиш, отпущенных во время действия контроллера по аналогии с правой педалью фортепиано. Иными словами, в режиме Sustain канал задерживает отработку последнего поступившего для каждой ноты сообщения Note Off. В момент отключения одновременно отрабатываются все задержанные таким образом Note Off; на явно удерживаемые в этот момент клавиши (для которых последним поступившим сообщением является Note On) отключение режима не влияет.
Контроллер-переключатель Sostenuto. Действует подобно Sustain, но удерживает звучание только тех нот, которые были нажаты на момент включения контроллера. Последующие нажатия и отпускания отрабатываются в обычном порядке. Иначе говоря, откладывается отработка Note Off только для тех нот, Note On для которых поступили до включения режима.
Контроллер-переключатель Soft. По аналогии с левой педалью фортепиано, вызывает смягчение звучания для нот, нажатых во время действия режима. Способ реализации — простое уменьшение громкости или более тонкое управление — определяется инструментом.
Контроллер-переключатель Portamento. В выключенном режиме каждая нажатая нота начинает звучать на частоте, определяемой высотой ноты и установленными на данный момент значениями контроллеров управления высотой (Pitch Bend Change и Coarse/Fine Tune и т.п.). При включенном режиме очередная нота начинает звучать на частоте, определяемой последним сообщением Note On или контроллером Portamento Control, затем ее высота плавно изменяется до нужной со скоростью, определяемой контроллером Portamento Time.
Стандарты MIDI-систем
Стандарт General MIDI (GM) разработан ассоциацией MIDI-производителей (MMA) в 1991 году в целях обеспечения частичной совместимости выпускаемых MIDI-устройств и облегчения переноса партитур между устройствами различных производителей. Устройство, совместимое с GM Level 1, должно удовлетворять следующим требованиям:
· полифония не менее 24 голосов;
· наличие 128 мелодических и 47 ударных тембров;
· раздельный выбор тембров по всем 16 MIDI-каналам;
· поддержка специальных канальных контроллеров 121 и 123;
· выделение канала 10 для ударных тембров, остальных каналов — для мелодических тембров.
Полифония в 24 голоса устанавливается либо общей для всех каналов, либо с разделением на 16 голосов для мелодических каналов и 8 - для ударных. Поведение системы при исчерпании свободных голосов стандартом не определено.
В GM обязательна поддержка следующих контроллеров:
1 — Modulation (глубина частотной модуляции);7 — Main Volume (громкость всех звуков в канале);10 — Pan (панорама - положение инструмента на стерепанораме);11 — Expression (экспрессивность, выразительность звука);64 — Sustain Pedal (удержание звучания всех отпущенных нот).Контроллер Main Volume служит для долговременной установки громкости в канале, а Expression — для управления громкостью звучания отдельных нот или партий.
Для устройств, поддерживающих GM и другие стандарты синтеза, введен SysEx «General MIDI On» для переключения в режим GM: F0 7E 7F 09 01 F7.
Стандарт General Synthesis (Roland) (единый синтез, GS) разработан фирмой Roland в 1991 году, практически одновременно с GM. Целью создания стандарта было обеспечение совместимости не только базового набора тембров и способов управления, но и более тонких методов воздействия на звук. Требования к устройству, поддерживающему GS:
· поддержка стандарта GM Level 1;
· поддержка 98 дополнительных тембров и 8 наборов ударных;
· приоритетное назначение голосов каналам - вначале 10, далее с 1;
· назначение дополнительных ударных каналов через SysEx;
· резервирование голосов в канале через SysEx;
· наличие управляемого резонансного фильтра в каждом канале;
· поддержка эффектов Reverb, Chorus и Delay.
Выбор банков осуществляется передачей старшего байта номера (контроллер 0). Младший байт (контроллер 32) при этом либо не используется, либо переключает режимы совместимости (например, SC55/SC88). Основной набор тембров (General MIDI) выбирается банком 0. Дополнительные мелодические тембры и звуковые эффекты распределены по 12 банкам, именуемым Variation Tones: 1..9, 16, 24 и 32. Дополнительные наборы ударных и набор звуковых эффектов имеют нумерацию начиная с нуля.
Инструменты, поддерживающие стандарты GM и GS, почти всегда имеют дополнительные средства управления синтезом и обработкой звука, расширяющие рамки стандарта. При этом используемые способы управления, как правило, сохраняются внутри одной линии инструментов и внутри инструментов одного производителя.
Устройства, совместимые с GS, должны поддерживать SysEx «General Synth On» (переключение в режим Roland GS): F0 41 10 42 12 40 00 7F 00 41 F7.
Стандарт Extended General (Yamaha) (расширенный единый, XG) разработан фирмой Yamaha в 1994 году в виде расширения стандарта GS. Цель расширения стандарта — в первую очередь внести развитое управление эффект-процессором и значительное увеличение количества тембров. Устройства, удовлетворяющие XG, способны самостоятельно создавать достаточно современное звучание без применения дополнительных тонгенераторов и модулей обработки и, к тому же, гарантируют переносимость партитур с младших моделей на старшие фактически без доработки. Требования к устройству, поддерживающему базовый уровень XG (Level 1):
· 32-голосная полифония;
· поддержка стандартов GM и GS;
· наличие 676 мелодических тембров и 21 набора ударных;
· независимая подстройка высоты каждой ступени звукоряда;
· поддержка плавного скольжения высоты тона (портаменто);
· управление чувствительностью тембра к силе удара (Velocity);
· синхронное и независимое управление высотой и амплитудой звука,
· частотой среза фильтра от нескольких MIDI-контроллеров;
· наличие трех эффект-процессоров — Reverb, Chorus и Variation.
Возможные расширения XG:
· до 64 MIDI-каналов (до четырех раздельных MIDI-портов с возможностью управления всем устройством по любому из них);
· до 64 AD-каналов — аналоговых каналов с АЦП на входе, сигналы с которых поступают на обработку эффект-процессорами;
· дополнительный трехполосный эквалайзер;
· дополнительные эффект-процессоры — Distortion, Harmonizer…
Набор тембров состоит из двух перекрывающихся наборов: 480/10 в режиме XG и 579/11 в режиме TG300B (GS).
В режиме GM доступны 128 стандартных мелодических тембров, стандартный набор ударных и стандартные контроллеры RPN. В режиме XG доступны дополнительные банки, контроллеры, NRPN и SysEx.
Выбор банков осуществляется передачей обоих байтов номера; при этом старший байт (контроллер 0) задает тип банка, а младший байт (контроллер 32) — номер банка указанного типа. В XG определено четыре типа банков:
· 0 Normal (мелодические);
· 64 SFX (звуковые эффекты с переменной высотой);
· 126 SFX (звуковые эффекты с фиксированной высотой);
· 127 Drums (ударные).
XG Level 1 определяет по 8 эффектов типа Reverb и Chorus и 36 эффектов типа Variation, в число которых также входит по 8 таких же типов Reverb и Chorus. Параметры каждого из трех выбранных эффектов управляются посредством набора SysEx. Устройства, совместимые с XG, должны поддерживать SysEx «XG System On» (переключение в режим Yamaha XG): F0 43 1N 4C 00 00 7E 00 F7, где n - номер устройства в сети (устанавливается по-разному для разных устройств, по умолчанию 0). Для полной инициализации MIDI-системы необходима подача этого сообщения из режима GM.