Цифровой интерфейс музыкальных инструментов. Все о MIDI: чем различаются, как подключаются, какую выбрать


Подключение MIDI-клавиатуры к звуковой карте, установленной в компьютер, осуществляется посредством MIDI-интерфейса. Для того чтобы выполнить необходимые соединения, совсем не обязательно вызывать специалиста. Вы в состоянии сделать это сами. А все, что необходимо знать о MIDI-интерфейсе, вы сейчас прочтете.

Musical Instrument Digital Interface (MIDI)

Начнем со слова "интерфейс". Интерфейс (Interface) - система унифицированных связей и сигналов, посредством которых устройства или программы взаимодействуют между собой.

Musical Instrument Digital Interface (MIDI) - цифровой интерфейс музыкальных инструментов. Стандарт на интерфейс создан ведущими производителями музыкальных инструментов: Yamaha, Roland, Korg, E-mu и др.

Различают аппаратный MIDI-интерфейс и формат MIDI-данных. Аппаратный интерфейс используется для физического соединения источника и приемника сообщений, формат данных - для создания, хранения и передачи MIDI-сообщений. Вопросы, связанные с форматом данных, мы рассмотрим в разд. 1.2, а сейчас познакомимся с аппаратной составляющей MIDI-интерфейса.

MIDI-интерфейс - это старт-стопный последовательный асинхронный интерфейс "токовая петля".

Словосочетание "старт-стопный" означает, что в каждом передаваемом сообщении обязательно должны содержаться признаки того, что процесс передачи начат (сигнал "Старт") и завершен (сигнал "Стоп").

В последовательном интерфейсе двоичные данные передаются не одновременно, а поочередно (последовательно).

Асинхронность интерфейса состоит в том, что начало передачи данных в нем не привязано к какому-либо определенному моменту времени. Передача осуществляется тогда, когда в этом возникает необходимость. Нажали на клавишу - в интерфейсе появилось сообщение об этом. Передающая сторона интерфейса активна, на ней имеется источник тока и коммутирующий элемент (в конечном счете, выключатель), а приемная - пассивна, на ней расположен только прибор-приемник тока. Принцип токовой петли заключается в том, что как только цепь выключателя будет замкнута, ток через нее потечет от положительного полюса источника (на передающей стороне) через "прямой" соединительный проводник кабеля, далее через приемник тока (на приемной стороне) и по "обратному" проводнику кабеля возвратится на приемную сторону ("втечет" в отрицательный полюс источника). Вот вам и токовая петля. Проходя сквозь приемник, ток выполнит предписанную ему роль: приведет в действие чувствительный элемент, в результате чего в приемнике и будет зафиксирован пришедший сигнал.

Структура элементарного MIDI-сигнала

Активный передатчик формирует токовую посылку с силой тока 5 мА. Токовая посылка соответствует логическому нулю, бестоковая - логической единице. Структура элементарного MIDI-сигнала (рис. 1.1) характеризуется следующими признаками: 7 битов данных, один бит (старший) статусный, один бит старта, один бит стопа. Проверка на четность отсутствует.

Вы видите, что столовый бит - единичный, а не нулевой. То есть в состоянии "Стоп" ток в цепи не течет. Это очень разумно. Экономится энергия и ресурсы элементов интерфейса. Ведь основную часть времени в M1DI-системе никаких событий не происходит: в среднем протяженность пауз значительно больше, чем протяженность тех интервалов времени, когда вы играете на MIDI-клавиатуре. Правда, ток может отсутствовать в цепи не только потому, что нет сообщений, но и из-за ее обрыва. Для своевременного выявления неисправного состояния MIDI-сети предусмотрена периодическая передача специального тестового сигнала. Если по прошествии определенного времени приемник его не обнаружит, то это будет считаться аварией, после чего MIDI-система отработает заранее обусловленную последовательность действий.

Рис. 1.1.Структура элементарного MIDI-сигнала:

Пропускная способность MIDI-канала 3,125 кбайт/с. Команды могут быть одно-, двух- и трехбайтными. Первый байт - статусный. Он определяет действие команды. За ним могут следовать 1 - 2 байта данных. Старший бит статусного байта 1, а байта данных - 0.

Соединительные MIDI-разъемы и MIDI-кабель

Полноценное MIDI-устройство имеет три соединительных разъема: MIDI In (вход), MIDI Out (выход) и MIDI Thru (на разъем MIDI Thru через буфер ретранслируется копия сигнала, поступающего с внешнего MIDI-устройства на вход MIDI In). Все разъемы - пятиконтактные. Контакты 4 и 5 - сигнальные, контакт 2 - экран. Полярность сигналов определяется относительно источника тока: контакт 4 - плюс (ток вытекает из вывода), контакт 5 - минус (ток втекает в вывод). Таким образом, для разъемов MIDI Out и MIDI Thru назначение контактов одно и то же, для разъема MIDI In - обратное.

Рис. 1.2. Схема распайки разъемов MIDI-кабеля:

Для соединения используется двужильный экранированный кабель. Соединение разъемов на двух концах кабеля - прямое (2-2, 4-4, 5-5). Схема распайки разъёмов MIDI-кабеля представлена на рис. 1.2.

Принцип соединения MIDI-устройств

Принцип соединения двух MIDI-устройств показан на рис. 1.3. Контакт передатчика, с которого во внешнюю цепь снимается сигнал, называется MIDI TXD (Transmitter Data). Контакт приемника, на который из внешней цепи должен поступать сигнал, - MIDI RXD (Receiver Data).

Рис. 1.3. Принцип соединения двух MIDI-устройств:

Аппаратная часть интерфейса MIDI замечательна тем, что разработчики предусмотрели в ней несколько мер, направленных на снижение уровня шума и помех. К простейшим, но достаточно эффективным мерам относится обязательное экранирование кабелей, соединяющих MIDI-устройства. Экран представляет собой проволочную оплетку, которая защищает проводники от проникновения в них электромагнитных волн, несущих помехи. И, что не менее важно, экран предотвращает излучение электромагнитных волн в окружающее пространство самим MIDI-кабелем. Посредством экрана помехи не проникают с одного инструмента на другой, так как в соответствии со стандартом MIDI исключено электрическое соединение экрана с корпусами одновременно двух MIDI-устройств. Самое главное, помехи не могут попасть с одного инструмента на другой еще и потому, что даже сигнальные провода не имеют непосредственной (говорят: гальванической) связи одновременно и с прибором-передатчиком, и с прибором-приемником MIDI-сообщений. Разумеется, здесь нет парадокса: если по проводам передается информация, значит, связь есть, но эта связь в действительности не гальваническая, а оптическая. Во входной цепи интерфейса MIDI включена пара оптоэлектронных приборов. Светодиод начинает светиться, когда по кабелю передается логический ноль, и гаснет, если передается логическая единица. Свет направлен на фотодиод, ток через который тем сильнее, чем сильнее этот прибор освещен. Цепочка преобразования сигналов такова: электрический ток - свет - электрический ток. Таким способом создается непреодолимое препятствие на пути протекания токов, несущих в себе помехи (величины этих токов недостаточно, чтобы светодиод стал излучать свет), в то же время цифровые сигналы проходят совершенно свободно.

Стандартом предусмотрено, что в сети MIDl-устройств в одно и то же время только одно из них может быть передатчиком MIDI-сообщений, а все остальные - только приемниками. Один MIDI-передатчик допускает подключение до четырех приемников. На рис. 1.4 представлен вариант подключения MIDI-устройств к MIDI-интерфейсу звуковой карты, установленной в компьютер.

Рис. 1.4. Подключение MIDI-устройств к звуковой карте:

MIDI-сигналы в разъеме игрового порта звуковой карты

Следует заметить, что у звуковых карт, как правило, отсутствуют стандартные MIDI-разъемы. Это связано с тем, что габариты не позволяют разместить их в прорезях на задней стенке компьютера, предназначенных для закрепления плат расширения. "Полуфабрикаты" MIDI-сигналов (MIDI RXD и MIDI TXD) выводятся на контакты разъема игрового порта (рис. 1.5).

Для правильной ориентации в номерах контактов нужно учесть, что разъем показан таким, каким он представлялся бы наблюдателю, сидящему внутри компьютера. Не очень удобная точка наблюдения, но именно ей соответствует рисунок, обычно приводимый в описании звуковой карты. Чтобы не запутать вас, на рис. 1.5 мы не стали менять направления взгляда.

Рис. 1.5. Назначение некоторых контактов разъема игрового порта:

Большинство контактов предназначено для подключения джойстика, однако, они нас сейчас не интересуют. Обратите внимание на следующие контакты:

  • 4, 5 - соединенные с общим проводом блока питания компьютера или, как иногда говорят, с корпусом, с землей (на схемах это соединение обозначают GND);
  • 1, 8, 9 - соединенные с выводом +5 В источника питания компьютера;
  • 15 - на который из внешних цепей должен поступать сигнал MIDI RXD (Receiver Data);
  • 12 - с которого во внешнюю цепь снимается сигнал MIDI TXD (Transmitter Data).
Наличие контактов 12 и 15, а также соответствующих им сигналов позволяет производителям и продавцам утверждать, что данная звуковая карта снабжена интерфейсом MIDI. Однако на деле сигналы MIDI TXD и MIDI RXD следует рассматривать как полуфабрикаты настоящих MIDI-сигналов. С их помощью можно принимать и передавать информацию, представленную стандартными для компьютеров значениями напряжения (говорят, уровнями транзисторно-транзисторной логики - TTL). И даже если заменить один из пятиконтактных разъемов MIDI-кабеля на разъем, соответствующий тому, что изображен на рис. 1.8, то подключить через этот кабель синтезатор к звуковой карте не удастся. Дело в том, что сигнал MIDI TXD не будет правильно восприниматься светодиодом, с помощью которого в интерфейсе MIDI передают полезные сигналы и прерывают гальваническую связь MIDI-устройств друг с другом.

Для подключения звуковой карты к MlDI-устройствам необходим переходной кабель-адаптер, содержащий оптронную развязку. При соединении MIDI-устройств нужно придерживаться несложного правила: кабель не должен соединять одноименные разъемы двух устройств, т. е. нельзя соединять MIDI Out одного устройства с MIDI Out другого, также MIDI In с MIDI In. Однако если вы случайно ошиблись, ничего страшного не случится: в схеме MIDI-интерфейса есть необходимая защита.

А вот один кабель или два следует протягивать между MlDI-устройствами, зависит от того, что это за устройства и в каких целях они используются.

Сначала рассмотрим наиболее вероятную ситуацию. Допустим, вы приобрели MIDI-клавиатуру и хотите подключить ее к звуковой карте, воспользовавшись MIDI-интерфейсом. Нет ничего проще, однако прежде необходимо разобраться, чем же отличается MIDI-клавиатура от клавишного электронного музыкального инструмента (синтезатора). Последний содержит и клавиатуру, и блок синтеза, поэтому в состоянии самостоятельно формировать звуки. Все современные синтезаторы оснащены MIDI-интерфейсом. MIDI-клавиатура не обладает способностью синтезировать звук. Она предназначена лишь для того, чтобы посредством MIDI-интерфейса управлять работой внешнего (по отношению к ней) синтезатора. Это, прежде всего, наиболее дешевый вариант совместного использования нескольких синтезаторов. В этом случае они могут не иметь собственных клавиатур, чем и определяется их относительно низкая стоимость. Синтезатор, который не имеет собственной клавиатуры, принято называть тон-генератором.

Подключение к звуковой карте MIDI-клавиатуры и MIDI-синтезатора

Вернемся к вопросу о подключении MIDI-клавиатуры к звуковой карте (рис. 1.6). Действительно, сделать это очень просто: в гнездо MIDI Out клавиатуры вставьте вилку MIDI In адаптера, а 15-контактный разъем MIDI-адаптера соедините с разъемом игрового порта, расположенным на звуковой карте. MIDI-клавиатура здесь будет играть роль ведущего MIDI-устройства, а звуковая карта - ведомого.

Рис. 1.6. Подключение MIDI-клавиатуры к звуковой карте:

Если у вас уже имеется современная, с широкими функциональными возможностями звуковая карта и вы хотите исполнять музыку не с помощью мыши, а проверенным дедовским способом, перебирая белые и черные клавиши, то MIDI-клавиатура - это выход из положения. Заметим, что в продаже имеются музыкальные синтезаторы с клавиатурой и MIDI-интер-фейсом. Некоторые из них (относительно простые) немногим дороже MIDI-клавиатур. В режимах исполнения и записи композиции синтезатор можно использовать в качестве MIDI-клавиатуры. Для этого следует выполнить такое же соединение, как и в случае подключения MIDI-клавиатуры: MIDI Out синтезатора соединить с входом MIDI In адаптера.

При проигрывании композиции внешний синтезатор с клавиатурой можно использовать как дополнение к звуковой карте и извлекать из него звуки тех инструментов, которые отсутствуют в палитре звуковой карты. Для реализации этой возможности выход MIDI Out адаптера следует соединить со входом MIDI In синтезатора (рис. 1.7).

Рис. 1.7. Схема подключения внешнего синтезатора к звуковой карте:

Решение проблемы самовозбуждения MIDI-системы

При некорректном выборе режима работы музыкального редактора соединение по схеме, приведенной на рис. 1.7, может вызвать неприятный эффект: поданное с клавиатуры сообщение, например нажатие клавиши, поступит на звуковую карту, а оттуда вновь в синтезатор, а с синтезатора вновь на звуковую карту... И так до бесконечности. Система зациклится, возбудится и перегрузится. Звуки будут слышны неинтересные. Что следует сделать, чтобы избежать этого?

Из рис. 1.7 следует, что оба устройства - и звуковая карта и синтезатор - одновременно оказываются и MIDI-приемниками и MIDI-передатчиками. Это недопустимо. Тривиальный выход - отключить второй кабель на время использования синтезатора в качестве MIDI-клавиатуры и подключить его при воспроизведении записанной ранее мелодии, - крайне неудобен. Все эти отключения, подключения, поверьте, кончатся плохо. Проще и безопасней для аппаратуры и вашего кошелька выполнить необходимую коммутацию на логическом уровне. Делается это или непосредственно в синтезаторе (выключателем Local Off), или в музыкальном редакторе.

Однако было бы правильнее решить проблему зацикливания, манипулируя опциями ретрансляции MIDI-сообщений. Суть дела состоит в том, что MIDI-информация, поступающая на вход устройства (или программы, в нашем случае Cubase SX), транслируется на его выход. Рассмотрим классический пример, когда синтезатор звуковой карты используется совместно с внешним синтезатором, который, в свою очередь, еще и выполняет функции MIDI-клавиатуры. Зацикливание неминуемо возникнет в том случае, если вы выберете трек, у которого в качестве портов ввода/вывода заданы порты, физически подключенные к внешнему синтезатору. Последовательность возникновения нежелательного эффекта зацикливания такова:

1. Вы нажимаете на синтезаторе клавишу, синтезатор воспроизводит соответствующую ноту.
2. MIDI-сообщение типа Note On (см. разд. 1.2.1) поступает в звуковой редактор.
3. В звуковом редакторе, благодаря ретрансляции MIDI-сообщений, это же сообщение передается на входной порт синтезатора.
4. Синтезатор, получив сообщение Note On, отрабатывает его, воспроизводя соответствующую ноту (заметьте, уже не в первый раз).
5. В синтезаторе тоже работает ретрансляция MIDI-сообщений (можно ли ее отключить и как это сделать - ищите в руководстве пользователя), поэтому дальше см. п. 2.

Чтобы разорвать эту цепочку, следует отключить ретрансляцию MIDI-сообщений или в синтезаторе, или в программе (как правило, в музыкальных редакторах эта опция по умолчанию включена). В Cubase SX следует поступить так: откройте меню File , выберите команду Preferences . Откроется диалоговое окно Preferences . В дереве, находящемся в левой части окна, выберите ветвь MIDI. На открывшейся вкладке MIDI сбросьте флажок MIDI Thru Active . Теперь зацикливания не будет. Убедиться в этом можно, нажав ОК , после чего диалоговое окно Preferences закроется. Можно также нажать кнопку Apply , окно Preferences останется открытым, а изменения, внесенные вами, будут применены.

При сброшенном флажке MIDI Thru Active теряется возможность использовать внешний синтезатор в качестве MIDI-клавиатуры для управления встроенным синтезатором звуковой карты.

MIDI (Musical Instrument Digital Interface) - проще говоря, цифровой интерфейс музыкальных инструментов . Если все равно не понятно, то слушайте мой рассказ.
Когда в музыку стали проникать компьютеры, то разработчики электронных инструментов подумали: "А не возложить ли нам часть сложного управления электромузыкальными инструментами (ЭМИ) на ЭВМ?" Что это сулило? Как Вам известно, составы музыкальных команд с течением времени все уменьшались в своем количестве и уменьшались. Это, конечно, дает свободу творчеству, но композитор хочет использовать при аранжировке своей песни не один, а пару десятков разных инструментов. Кроме того он не хочет ждать репитиции большого оркестра, чтобы услышать свою новую идею. Зачастую у него и нет никакого оркестра. Значит неплохо было бы поиметь возможность запрограммировать партитуры, а потом автоматически их воспроизвести.
Всяких разных ЭМИ к тому времени было просто валом. Даже к некоторым из них можно было проводом подключить "электрического музыканта" (этакий ящичек с лампочками и кнопочками, называемый секвенсером ) специальным проводом, который посылал команды типа "нажать определенную ноту". Но главная проблема была в том, что "музыкант" от одной модели инструмента не подходил к другой.
Тогда было решено, создать единый интерфейс (заранее оговоренный набор команд управления и способ соединения между устроиствами) подключения электронных музыкальных инструментов к секвенсерам и между собой. Таким интерфейсом и стал MIDI. Теперь мы можем присоединить синтезатор Yamaha к секвенсеру Roland, и это будет работать. Кстати сейчас в основном в качестве секвенсера применяют компьютер.

Теперь рассмотрим, что еще позволяет нам делать MIDI, кроме передачи команд на нажатие нот.

    В синтезаторе имеется куча различных ручек и кнопочек (фильтры, модуляция, вибрато, уровень реверберации), чтобы повысить выразительность исполнения, их приходится постоянно крутить во время игры. В набор MIDI-команд входят команды управления контроллерами (этими самыми ручечками и кнопочками, а также ножными педалями типа фортепианных). Это значит, что компьютер при проигрывании музыки может посылать синтезатору команду "под каким углом (на какую позицию) повернуть ручку" или "нажать/отжать кнопку", включить звук рояля или скрипки.

    Например, мы создавали-создавали звуки на нашем синтезаторе и заполнили всю его память. Что нам теперь делать? По MIDI мы сможем передать содержимое памяти инструмента (или любого другого MIDI-устройства) в компьютер в виде блока данных (MIDI bulk dump ) и сохранить на жестком диске. По MIDI-же мы сможем загрузить данные с машины обратно в синтезатор.

    Есть еще проблема. MIDI - общие для всех инструментов команды. Но все возможные команды предусмотреть при разработке этого стандарта было невозможно, да и отведенного количества количества контроллеров может не хватить, поэтому была оставлена лазейка - SYSX (System Exclusive Messages - эксклюзивные -особые - для каждой модели MIDI-устройств сообщения неопределенной длины). Они имеют только стандартное начало (заголовок, header) и окончание, а в середине каждый разработчик пишет, что хочет.

Наверное Вы не раз уже встречали термин GENERAL MIDI ? Это стандарт, в котором оговорены номера контроллеров (ручка громкости у всех инструментов, отвечающих этому стандарту, всегда имеет номер 7, ручка "ревербератор" - 91 и т.д.), набор и порядок следования патчей (patch , звуков - например пианино имеет всегда номер 1, а церковный орган -20). Это не значит, что все синтезаторы, сделанные по стандарту General MIDI, будут играть одинаковыми звуками. Нет. На разных инструментах патч под номером 1 будет содержать пианино, но с разным качеством звучания. Иногда настолько плохим, что даже экспертам в этом вопросе трудно догадаться, что это за звук. В основном этот стандарт применяется для создания музыкального сопровождения к играм.
Кроме того, еще есть более расширенные по набору звуков стандарты GENERAL SOUND и XG .

Если мы имеем компьютер и несколько синтезаторов, на которых хотим играть в одной песне разные партии (ударные, соло, бас, фон), то все они должны быть подключены к одному MIDI-кабелю. Секвенсер (программа работающая на компьютере) передает в этот кабель команды для всех инструментов. Каким-же образом, спросите Вы, каждый из синтезаторов будет отличать команды, предназначенные лично ему? Для этого и существуют MIDI-каналы (MIDI channel).
Принцип действия, примерно, как в радиоприемнике. Ваш приемник принимает только ту радиостанцию, на которую Вы его настроите. Вот и представьте, MIDI-канал - это частота радиостанции (типа 104 и 4 FM), на которую настраивается приемник. В компьютере стоит 16 радиостанций с разными частотами, каждая из которых передает партию только своего инструмента, а в каждом синтезаторе - приемник, настроенный на радиостанцию, которая передает его партию. Радиоволны же идут не по воздуху, а через провод.
В общем-то, можно передавать любую партию по любому каналу. Правда в General MIDI принято для партии ударных использовать 10-й MIDI-канал.
В действительности же MIDI-каналы создаются безо всякого участия радиоволн. Мы присваиваем синтезатору адрес (номер MIDI-канала). А в начале каждой MIDI-команды передается номер канала синтезатора, которому она предназначена. Синтезатор принимает все команды, но выполняет только те, которые содержат номер его канала.

MIDI (от англ. Musical Instrument Digital Interface) - стандарт цифровой звукозаписи. В основе стандарта - обмен информацией между электронными музыкальными инструментами и компьютерами. MIDI появился в 1983 году, навсегда изменив музыкальную индустрию: технология позволила отделить игру музыканта от воспроизводимых инструментом звуков. Музыканты получили возможность использовать любые звуки, вне зависимости от используемого оборудования.

Для использования стандарта не требуется наличие технических знаний. Достаточно соединить между собой устройства с поддержкой MIDI, чтобы извлекать любые звуки. MIDI всегда остается дружелюбным к пользователю, позволяя в любой момент изменять воспроизводимый звук.

Создание виртуальных инструментов и смелые эксперименты со звуком требуют знаний о MIDI-событиях (англ. MIDI messages) . События разделены на семь видов, в зависимости от предназначения.

Что такое MIDI-события?

Структурная схема MIDI-событий.

MIDI-событие - это инструкция, управляющая аспектом работы принимающего устройства. События состоят из комбинаций байтов, в которых на устройство поступают определенные параметры. В качестве приемников служат любые студийные и музыкальные инструменты с поддержкой MIDI: синтезаторы, MIDI-клавиатуры, электропианино, электророяли, электронные ударные, диджейские консоли.

MIDI-события делятся на два вида:

  • Канальные (Channel). Такие события отправляют информацию на определенный канал устройства-приемника. Услышать канальное событие можно только при прослушивании канала, на который они отправлены. В случае, если эти каналы деактивированы, событие не услышать. Канальные события бывают двух видов: голосовые (Voice) и режимные (Mode);
  • Системные (System). Эти события влияют на работу всех компонентов приемника и передаются на все MIDI-каналы одновременно. Системные события бывают трех видов: общие (Common), реального времени (Real-Time) и эксклюзивные (Exclusive).

Каждое MIDI-событие состоит из трех байт информации. Первый байт (Status Byte) содержит специальный идентификатор события, передающий основные данные о воспроизведении звука. Второй байт (Data Byte 1) сообщает информацию о воспроизводимой ноте, ее высоте и положении в октаве. Третий байт (Data Byte 2) передает параметр Note Velocity - силу извлечения звука.

Что такое Note Velocity и зачем это нужно?

Note Velocity - аналог атаки при игре на реальном инструменте, то есть информация о том, с какой силой или скоростью извлекается звук при работе с MIDI-инструментами.Чем сильнее нажатие на клавишу MIDI-клавиатуры или удар по электронному пэду барабанов, тем выше параметр Note Velocity.

Параметр принимает значения от 0 до 127, где 0 - извлечения ноты не было, а 127 - звук извлечен с максимальной силой. Представление этой информации виртуальным инструментом или синтезатором зависит только от задумок разработчиков. Тем не менее, в 99% случаев виртуальный инструмент реагирует на параметр Note Velocity так же, как и реальный инструмент. Благодаря этому, MIDI может передавать особенности игры и звукоизвлечения.

Удобство в том, что у музыканта сохраняется возможность исправить огрехи слишком слабой или сильной игры во время записи и устранить недочеты хорошо записанной партии.

MIDI-события System Common

Общие системные MIDI-события активно применяются в синтезаторах для передачи общей информации о воспроизводимых MIDI-файлах.

Среди информации, передаваемой общими системными событиями, выделяют:

  • Информацию о тональности (Tune Request). Когда музыкант изменяет тональность демо или MIDI-файла, на устройство передаются данные Tune Request;
  • Информацию о выбранной песне (Song Request). Выбрав файл для воспроизведения, на MIDI-устройство отправляется специальный набор байтов, указывающий на этот файл;
  • Информацию о позиции для воспроизведения (Song Pointer Position). Если пользователь хочет начать воспроизведение с определенной отметки, переход по файлу осуществляется при помощи этого подсобытия.
  • Информацию о длительности файла (MIDI Time Code). MIDI Time Code кодирует и передает данные о длительности проигрываемого файла.

MIDI-события System Real-Time

Системные MIDI-события реального времени помогают управлять воспроизведением MIDI-файлов. Такие события отвечают за запуск и остановку проигрывания файлов. Дополнительно к этой категории относятся события, отвечающие за полный сброс настроек устройства.

MIDI-события System Exclusive

Системные эксклюзивные события отведены под передачу информации об используемом MIDI-устройстве. При помощи этих событий MIDI-инструменты выводят данные о производителе и модели устройства, его серийном номере и другой системной информации.

MIDI-события Channel Mode

Канальные режимные изменяют параметры работы MIDI-устройства во время игры. Так, здесь передаются данные о включении моно- и полифонии, отключении звуков и нот, а также активации приема MIDI-данных на всех каналах устройства (Omni Mode).

MIDI-события Channel Voice

Большая часть информации, генерируемой музыкантом при игре, относятся к канальным голосовым событиям (Channel Voice). События Channel Voice делятся на два типа: связанные со звуками и непрерывные. Группа Channel Voice состоит из 7 подсобытий:

  1. Note On - активация ноты, начало звука;
  2. Note Off - деактивация ноты, окончание звука;
  3. Monophonic (Channel) Pressure/Aftertouch - параметры силы нажатия клавиши или силы извлечения монофонического звука (эффект послекасания);
  4. Polyphonic (Key) Pressure/Aftertouch - параметры силы извлечения полифонического звука (эффект послекасания);
  5. Pitch Bend - изменение высоты звука;
  6. Program Change - изменение программы;
  7. Control Change/Continuous Controller - события потокового управления (127 штук), участвующие в управлении извлеченным звуком и обозначаемые при помощи сокращения CC.

Обычно разработчики стараются расположить активацию этих параметров на неиспользуемых клавишах. Если речь идет о виртуальной гитаре, чей диапазон меньше, чем у фортепиано, активацию MIDI-событий обычно присваивают на те клавиши, которые находятся за пределами используемого диапазона.

Состав передаваемой на MIDI-устройство информации на примере канальных голосовых событий

MIDI-событие Первый байт (Status Byte) Второй байт (Data Byte 1) Третий байт (Data Byte 2)
Note On Начало воспроизведения ноты Какая нота будет извлечена Сила нажатия
Note Off Окончание воспроизведения ноты Какая нота будет извлечена Сила нажатия
Monophonic (Channel) Pressure Сила давления на клавишу -
Polyphonic (Key) Pressure Активация функции послекасания Какая нота будет извлечена Сила давления на клавишу
Pitch Bend Активация функции изменения высоты звука Значение, на которое повышается или понижается звук Исходное значение звука
Program Change Активация изменения программы Номер программы -
Control Change Активация потокового управления Вызов подсобытия CC Значение CC#

MIDI-события, связанные с нотами и звуками

С точки зрения MIDI, любая нота имеет начальную и конечную позицию, в рамках которой воспроизводится звук. Когда на приемник MIDI-информации поступает событие Note On, устройство или редактор воспроизводит звук. Чтобы воспроизведение ноты прекратилось, на приемник поступает событие Note Off - сами по себе MIDI-устройства не знают, как долго должен издаваться звук.

Обычно событие Note On привязано к зажатию клавиши MIDI-клавиатуры, а Note Off - к отпусканию клавиши. Тем не менее, иногда для большей правдоподобности звучания инструментов разработчики сдвигают событие Note Off, чтобы оно появлялось через некоторое время после отпускания клавиши.


Первое описание стандарта MIDI (скан документа).

Непрерывные MIDI-события

К непрерывным относятся подсобытия Pitch Bend, Control Change и два вида Aftertouch. Непрерывные сообщения объединяют информацию о том, как было сгенерировано MIDI-событие.

Эта информация поступает на MIDI-приемник постоянно, а значения параметров Pitch Bend, Control Change и Aftertouch изменяются постепенно во время генерации звука. В потоке информации непрерывных событий передаются сведения о громкости, высоте, тембре, резкости, ясности и других особенностях извлеченного звука.

Имитация эффекта вибрато на гитаре, звучание звука с определенным количеством сустейна, нарастание громкости звука и другие подобные сложные эффекты создаются при помощи Pitch Bend, Control Change и Aftertouch.

Aftertouch или эффект послекасания

Два параметра Aftertouch генерируются в зависимости от силы нажатия клавиши и длительности зажатия. Благодаря событиям Aftertouch современные MIDI-клавиатуры и электронные пианино имитируют эффект послекасания, который передает ощущения от игры на реальном инструменте.

События Aftertouch работают в связке со специальными датчиками, реагирующими на силу нажатия. Датчики устанавливаются под клавишами и непрерывно генерируют события послекасания, передавая сведения о давлении, с которым производится извлечение ноты. Эффект послекасания добавляет извлекаемым звукам экспрессии.

Если Aftertouch-событие относится к типу Channel (Monophonic) Aftertouch, то на всю клавиатуру приходится один датчик давления, а параметры послекасания применяются сразу ко всем нотам. События Channel (Polyphonic) Aftertouch применяются к каждой клавише по отдельности.

Несмотря на то, что стандарту MIDI уже более 20 лет, клавиатуры с полифоническими независимыми датчиками давления не стали популярными из-за дороговизны производства. Вместо этого производители используют сложные алгоритмы работы одного датчика, которые имитируют работу в полифоническом режиме.

Pitch Bend

Генерацию сведений об изменении высоты звука выполняют специальные колеса модуляции и питча. Это событие полностью игнорирует длительность звука, а влияние параметра Pitch Bend на высоту звука зависит только от разработчиков софта или настроек, заданных музыкантом. Самым распространенным вариантом изменения является повышение или понижение звука на целый тон, хотя никто не запрещает запрограммировать изменение на октаву или две.

У параметров Pitch Bend отсутствует нулевое значение: 0 не заглушает звук, а указывает на отсутствие изменения его высоты.

MIDI-события изменения программы

События Program Change отвечают за смену наборов инструментов, звуков и патчей. Несмотря на то, что подобные события официально не признаны устаревшими, разработчики используют их очень редко.


MIDI-события в окне Piano Roll в Logic Pro X.

MIDI-события потокового управления

Сообщения потокового управления (CC) - обширная категория из 127 разных типов событий. Все CC-события непрерывны и постепенно изменяют собственные значения для управления динамикой извлеченного звука.

Несмотря на большое количество CC-событий, активно используются далеко не все. Одни подсобытия заранее определяются разработчиками, другие доступны пользователям для свободного использования, третьи - не используются никогда. Среди самых популярных обычно выделяют пять подсобытий - CC#1, CC#7, CC#10, CC#11 и CC#64 (см. полный список событий потокового управления на сайте midi.org).

СС#1 привязано к колесу модуляции, хотя в теории привязать к нему можно любую функцию изменения звука. Чаще всего на это подсобытие назначают добавление автоматического эффекта вибрато. В более редких случаях за ним закрепляют функции управления тембром инструмента.

CC#7 и CC#10 отвечают за параметры громкости и панорамы. MIDI-устройства с поворотными регуляторами могут изменять громкость и значение панорамы в окне DAW через эти события. Во всех остальных случаях CC#7 и CC#10 не нужны.

Подсобытие CC#11 обозначается «Expression» и контролирует громкость исполнения. Самыми распространенными устройствами, поддерживающими это подсобытие, являются педали экспрессии (громкости) синтезаторов, MIDI-контроллеров, электропианино и электроорганов.

MIDI-событие CC#64 отведено под педаль демпинга MIDI-клавиатуры или синтезатора. Подсобытие реагирует на положение педали, присваивая ноте значение в пределах 0-63, если педаль поднята, и 64-127, если педаль опущена (зажата). Некоторые продвинутые MIDI-контроллеры, педали и виртуальные инструменты расширяют возможности подсобытия CC#64, позволяя применять техники игры с полуоткрытой педалью.


Такие же гнезда есть и на MIDI-переходниках звуковых плат, и на различных приборах обработки звука, и даже на цифровых микшерах и многоканальных магнитофонах. И если вы соедините все свое оборудование при помощи этого интерфейса, то сможете заставить его работать в единой системе: с одного синтезатора можно будет обращаться к звукам другого, цифровые магнитофоны будут запускаться при нажатии кнопки в компьютерной программе и т.д. То есть MIDI интерфейс – это единый стандарт передачи управляющей информации между цифровыми музыкальными инструментами и другим студийным оборудованием.

Два MIDI устройства обмениваются между собой именно управляющей информацией, например, командами вызова нужного звука из памяти, командами его воспроизведения с нужной высотой и длительностью и т.д. То есть никакой физической передачи звуков по этому интерфейсу не происходит

До 1982 года, когда была принята спецификация MIDI, синтезаторы разных производителей имели разные архитектуры и системы управления. Это было очень неудобно для музыкантов - ведь при покупке каждого нового инструмента приходилось "с нуля" изучать принципы его работы. Кроме того, секвенсеры одних производителей не могли работать с синтезаторами других – в результате для каждого синтезатора приходилось покупать отдельный секвенсер. Поэтому-то и возникла идея стандартизировать синтезаторы и другое сопутствующее оборудование и принять единую систему обмена данными между ними. В результате и появился Music Instruments Digital Interface - цифровой интерфейс музыкальных инструментов. А через некоторое время им стали оборудовать подавляющее большинство студийных устройств.

Благодаря MIDI интерфейсу, во-первых, все цифровые синтезаторы теперь имеют очень похожие системы управления, и если музыкант или звукорежиссер знает основные принципы работы MIDI, то без труда может разобраться с любым из них. Во-вторых, музыкальные инструменты разных фирм могут работать вместе и, например, с Roland"а можно получить доступ ко всем ресурсам Korg"а и даже играть "зашитыми" в него звуками. В третьих, секвенсер может управлять не только подключенными синтезаторами, но и любыми другими устройствами, имеющими MIDI-входы и выходы. Например, под управлением секвенсера процессор эффектов в нужный момент аранжировки может менять свои настройки, а цифровой микшер включать и отключать каналы, а также выставлять заранее запрограммированный уровень дорожек или автоматически плавно убирать громкость в конце композиции.

Как работает MIDI интерфейс?

"Артериями" любой MIDI-системы являются 16 информационных MIDI каналов, по которым передаются MIDI-сообщения - сигналы, несущие информацию о состоянии органов управления звуковым устройством (например, синтезатором). MIDI-сообщениями могут быть ноты, команды о смене звука, информация о положении колеса изменения высоты тона и т.д. На рисунке слева изображена

Схема Sample Playback синтезатора, который тоже является такой системой, так как в его корпусе размещены минимум два совершенно независимо работающих устройства - клавиатура и звуковой модуль. Доступ к памяти синтезатора, где хранятся оцифрованные семплы (образцы звучания), осуществляется по уже упомянутым 16 MIDI-каналам. В начале работы музыкант указывает при помощи кнопок управления какой канал с каким звуком будет работать. На рисунке первому каналу присвоено фортепиано, пятому - орган, десятому - ударные и пятнадцатому - бас. Причем эти связи устанавливаются совершенно произвольно по желанию музыканта: на любой канал может быть присвоен любой звук, находящийся в памяти.

Клавиатура синтезатора одновременно может работать только с одним MIDI-каналом (если только не включена специальная функция разделения, разбивающая клавиатуру на две или более частей, каждая из которых может обращаться к отдельному каналу). Поэтому, музыкант указывает номер канала с присвоенным звуком, которым он хочет играть (на рисунке - первый канал с установленным звуком фортепиано). Обычно это делается прямо на верхней панели синтезатора при помощи кнопок переключения канала. По умолчанию клавиатура работает с тем каналом, который указан на дисплее синтезатора. После настроек он может начинать исполнение композиции. Во время игры MIDI-клавиатура производит сообщения об условных номерах нот и о скорости нажатия клавиш, которые передаются по выбранному каналу в звуковой модуль. А он, в свою очередь, изменяет высоту и громкость выбранного звука согласно полученным MIDI-сообщениям. Результат этой работы мы с вами слышим из акустических систем.

Теперь давайте разберемся со связкой синтезатор-секвенсер. Второй рисунок изображает схему работы синтезатора, соединенного с компьютерным секвенсером. И у синтезатора, и у компьютера, в

Котором установлена звуковая плата или плата MIDI-интерфейса есть MIDI-входы и выходы. Они соединяются между собой специальными шнурами с пятиштырьковыми разъемами. По этим шнурам передаются MIDI-сообщения, рассортированные по независимым 16 каналам. Это не означает, что в шнурах используются целых 16 жил. Они обычные - трехжильные (по двум идет сигнал, а один используется для заземления), просто перед передачей сообщений по физическим проводам, вся информация кодируется особым образом, а при приеме происходит обратный процесс - раскодирование.

Итак, музыкант исполняет на клавиатуре какое-то произведение. MIDI-сообщения поступают в звуковой модуль, например, по первому каналу, и мы слышим в колонках звук. Но эти сообщения поступают по тому же первому каналу и на MIDI-выход синтезатора, а дальше - в секвенсер (см. рис.). А в секвенсере есть точно такие же параллельные дорожки, как и в многоканальных магнитофонах, только они располагаются не на магнитной ленте, а в оперативной памяти секвенсера (или компьютера, если секвенсер - это программа). Каждая дорожка должна соответствовать одному из MIDI-каналов. При записи на нее фиксируются все MIDI-сообщения, которые приходят через вход секвенсера по выбранному каналу. А при воспроизведении с нее начинают считываться все записанные данные и передаваться по тому же самому каналу, только уже через выход.

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

В целом, процедура работы с секвенсером будет выглядеть следующим образом. Музыкант на синтезаторе присваивает первому каналу звук фортепиано, а в секвенсере включает запись первой дорожки, которая предварительно тоже настраивается на первый канал. После этой операции он играет на клавиатуре партию фортепиано будущей композиции, которая записывается на первую дорожку. По окончании записи, в секвенсере включается воспроизведение, и записанные MIDI-сообщения передаются по первому каналу на его MIDI-выход, а оттуда - на MIDI-вход синтезатора. Со входа они попадают в звуковой модуль, который и проигрывает запись звуком фортепиано.

После записи первой дорожки, музыкант включает в секвенсере запись второй дорожки, присвоив ей второй MIDI-канал. На синтезаторе он выбирает звук баса и тоже присваивает его второму каналу. Теперь он снимает секвенсер с паузы и слышит партию фортепиано - ведь каналы совершенно независимы друг от друга. Под фортепиано он играет партию баса, которая записывается в секвенсер на вторую дорожку. Теперь, если он запустит воспроизведение, то услышит и фортепиано, и бас вместе. Точно таким же образом записываются партии всех остальных инструментов.

Если же вы подключите к MIDI-выходу секвенсера любое студийное устройство (например, процессор эффектов), и запишите на одну из дорожек специальные сообщения, которые это устройство "понимает", то в выбранный момент композиции оно выполнит нужные вам действия. Кстати, очень многие синтезаторы, в том числе и установленные на звуковые карты, имеют собственные процессоры эффектов, управление которыми можно осуществлять при помощи секвенсера. В нужный момент композиции процессор получит от секвенсера MIDI-сообщение и включит соответствующий эффект.
MIDI сообщения и события

MIDI сообщения – это управляющие сигналы, которые передаются по MIDI интерфейсу. Например, при нажатии клавиши на динамической MIDI-клавиатуре производятся три сообщения, которые описывают исполнение ноты: Pitch (высота ноты), Velocity (скорость нажатия клавиши) и Duration (длительность). Эти сообщения могут передаваться по одному из каналов в звуковой модуль, а могут направляться и в секвенсер, который запишет их в определенное место композиции. Такая группа сообщений, привязанная к одному из моментов времени композиции и каналу называется Event (Событие). То есть, каждая нота композиции, записанная секвенсером - это событие.

Надо четко понимать разницу между сообщением и событием. Устройства в MIDI-системе обмениваются сообщениями, но как только эти сообщения записываются в секвенсер, они получают два дополнительных параметра - время воспроизведения и номер канала - и становятся событиями.

Второй по важности после MIDI нот вид сообщений - это Controllers (контроллеры). Они управляют различными параметрами синтезаторов типа громкости или панорамы выбранного канала. Кстати, не путайте эти MIDI-сообщения и ручки управления автономным синтезатором, которые тоже иногда называются контроллерами.

Стандарт MIDI предусматривает наличие 127 контроллеров, каждый из которых может принимать значения от 0 до 127. Но реально из них используется не более 20. Самые главные из них - это Volume (громкость), Pan (панорама) и Modulation(модуляция). Они управляют параметрами воспроизведения нот по каждому из каналов. То есть, записав в секвенсер на первый канал контроллер Volume, имеющий значение 127, а на второй - значение 64, вы получите разницу в громкости этих каналов в два раза.

И, наконец, третий важный тип MIDI сообщений – это SysEx, или «системные эксклюзивные сообщения». Как и контроллеры, они предназначены для управления различными параметрами синтезаторов, или другого студийного оборудования. Однако SysEx «персонифицированы», то есть они работают только в пределах одного конкретного устройства. Их существование необходимо из-за того, что 127 контроллеров просто не хватает для управления всеми параметрами современных синтезаторов. Поэтому чаще всего контроллеры используются в стандартных ситуациях («порулить» громкость и панораму на канале, выставить уровень посыла на эффекты, изменить частоту среза и резонанс фильтра и т.д.). А вот для управления процессорами эффектов, «глубинными» параметрами синтеза или операциями по обслуживанию инструмента («сбрасывание» отредактированных звуков в компьютер, например) применяются SysEx.

MIDI-синхронизация

В студиях очень часто бывает необходимо обеспечить синхронную работу двух или нескольких устройств: секвенсера и многоканального магнитофона, двух магнитофонов одновременно и т.д. Раньше, в эпоху аналоговых магнитофонов, чаще всего использовалась SMPTE синхронизация, однако сейчас большинство студийных устройств синхронизируются по MIDI.

Делается это так. Например, у вас есть секвенсер и многоканальный магнитофон. Любой секвенсер должен равномерно "проматывать" виртуальную ленту (по аналогии с магнитофоном), на которую записываются MIDI-сообщения. Для этого во всех секвенсерах есть генератор временного кода, который производит MIDI-сообщение под названием MIDI Clock. При помощи этого временного кода и осуществляется точное управление "лентопротяжным механизмом" секвенсера, а также синхронизация со внешними устройствами. Группа MIDI-сообщений, которые используются для синхронизации называются MIDI Time Code ((MTC).

Во многих современных цифровых магнитофонах есть точно такой же генератор временного кода, который используется для точного управления механикой. Если синхронизировать генератор секвенсера и генератор магнитофона, то скорость воспроизведения MIDI-сообщений будет точно соответствовать скорости движения ленты (см. рис.).

А для того, чтобы магнитофон включался одновременно с секвенсером и вместе с ним выполнял все остальные действия (перемотка, остановка, запись) используют целую группу MIDI-сообщений, которые называются MIDI Machine Control(MMC). В секвенсерах, которые поддерживают MMC, нажатие любой кнопки управления производит соответствующее MIDI-сообщение, которое немедленно передается в магнитофон. А ему остается только выполнить команду.

Системные эксклюзивные сообщения

Как уже говорилось в разделе «MIDI сообщения и события», системные эксклюзивные сообщения (SysEx) – это управляющие команды, которые, в отличие от контроллеров действуют только в пределах одного синтезатора или другого Студийного MIDI устройства. Например, контроллер Volume меняет громкость выбранного канала любого синтезатора, а вот SysEx сообщение, управляющее уровнем искажений эффекта Distortion, и предназначенное для использования с синтезатором Roland XP 30 не произведет ни малейшего «впечатления» на синтезатор Quasimidi Sirius, у которого также есть дисторшн. Но несмотря на узкую специализацию каждого такого сообщения, «язык» на котором они написаны абсолютно универсален, и зная его основы можно очень быстро подобрать «ключи» к любому инструменту и студийному устройству и заставить его делать именно то, что нужно.

Любое системное эксклюзивное сообщение представляет собой

последовательность шестнадцатеричных цифр (см. рис.), которую вы можете составить в любом редакторе SysEx (эти редакторы есть в большинстве развитых секвенсеров). Каждая цифра этого сообщения несет определенную информацию, и все искусство программирования SysEx заключается в том, чтобы поставить нужную цифру в нужное место. А помогает в этом раздел руководства пользователя устройства под названием MIDI Implementation – в нем фирма-производитель разъясняет пользователям принципы построения SysEx сообщений для каждой конкретной модели.

Итак, SysEx сообщения имеют обязательную и произвольную части. Вы должны обязательно начать сообщение с символа F0 и закончить символом F7 – это команды, заставляющие любой синтезатор или другое студийное устройство начать и закончить прием системной информации. Следом за символом F0 следуют еще три символа, которые несут информацию об идентификационном номере производителя, идентификационном номере устройства в MIDI системе и идентификационном номере модели устройства – они будут одинаковыми у любых сообщений для конкретного устройства. Например, для синтезатора Roland XP 30 обязательная часть SysEx будет выглядеть так: F0 41 11 6A ……………..F7, где 41 – это код фирмы Roland, 11 – идентификационный номер синтезатора (он выставляется в системном меню инструмента) и 6A – это код модели XP-30. Конкретные идентификационные номера для других синтезаторов нужно смотреть в MIDI Implementation их руководств.

Следом первыми четырьмя цифрами обязательной части SysEx идет часть произвольная. Ее конкретное наполнение зависит от того, чего вы хотите. Но она всегда начинается с номера команды и заканчивается значением контрольной суммы. Номер команды и ее формат нужно опять-таки смотреть в MIDI Implementation, а контрольная сумма вычисляется путем сложения всех цифр, составляющих команду (за исключением ее номера) и вычитанием получившегося значения из 128. И после контрольной суммы идет символ окончания SysEx – F7.
Давайте разберем конкретный пример. Предположим, нам до зарезу понадобилось вставить в аранжировку команду, которая меняет тип реверберации у синтезатора Roland XP30 с холла на дилэй. Прежде чем приступать к написанию, открываем редактор SysEx секвенсера, пишем заветный символ F0 (начало Sys Ex) и вооружаемся руководством пользователя синтезатора. Первым делом нам нужно выяснить, что писать в постоянной части. Добираемся в MIDI Implementation руководства пользователя до раздела Data Transmission (Передача данных) и смотрим раздел System Exclusive Messages. В этом разделе находится шаблон SysEx для передачи данных в синтезатор. Выясняется, что код Roland – 41, а код XP 30 – 6A. В системном же меню самого синтезатора смотрим deviceID – у меня он оказался равным цифре 17. Но это в десятичной системе, а в шестнадцатеричной он будет выражаться цифрой 10 (см таблицу перевода десятичных значений в шестнадцатеричные). Таким образом, можно продолжать SysEx (цифры вводятся через один пробел): F0 41 10 6A...

Итак, смотрим шаблон SysEx дальше. Идентификационный номер команды для нашего случая – 12. Кстати говоря, во многих руководствах шестнадцатиричные числа пишутся с обязательным прибавлением буквы H в конце (от Hexadecimal). В шаблоне SysEx руководства XP30 они даются именно в таком виде, например, номер команды приводится как 12H. Но в редакторе SysEx секвенсера букву H писать не надо – он и так знает, что речь идет о шестнадцатиричных числах. Таким образом, продолжаем сообщение: F0 41 10 6A 12…

Далее в шаблоне идут четыре цифры, сообщающие синтезатору адрес, по которому следует передавать команду. Они обозначаются как aa, bb, cc и dd. Их значение нужно смотреть в таблицах под названием Parameter Address Map. Поковырявшись некоторое время с таблицами выясняем, что адрес для смены типа ревербератора пишется так: 01 00 00 28. Наконец, мы добрались и до самой команды, которая пишется как 06 – это становится очевидным из колонки Data (Value) таблицы Parameter Address Map. Продолжаем наш SysEx: F0 41 10 6A 12 01 00 00 28 06…

Теперь осталось посчитать контрольную сумму. Для этого нам сначала нужно сложить цифры адреса и значения команды: 01 + 00 + 00 + 28 + 06… Но цифры-то записаны в шестнадцатеричной системе счисления. Чтобы успешно завершить арифметическую операцию нужно перевести их в десятичный вид: 1 + 0 + 0 + 40 + 6 = 47. Теперь вычитаем 47 из 128 и получаем число 81, которое в шестнадцатеричной системе будет писаться как 51. Все, теперь наше SysEx сообщение приобретает законченный вид: F0 41 10 6A 12 01 00 00 28 06 51 F7. Остается его сохранить в отдельный файл и вставить последний в нужное место аранжировки.

Организация памяти и форматы банков синтезаторов

В постоянной памяти Sample Playback синтезаторов записаны семплы - образцы звучания различных музыкальных инструментов. MIDI-сообщения вызывают из памяти тот или иной семпл, и синтезатор воспроизводит нужный звук. Но в памяти семплы не просто "свалены кучей", а организованы в определенные иерархические структуры. И чтобы нормально работать с любыми синтезаторами и семплерами, в том числе и мультимедийными, надо разобраться со способами хранения семплов и соответствующими стандартами.

Если не очень вдаваться в подробности, то можно подумать, что семплы для записи в память синтезатора или семплера создаются очень просто: берется "живой" инструмент, оцифровывается какая-то сыгранная на нем нота и получившийся файл записывается в память. Такое представление почти правильно. Но размер памяти не безграничен. Поэтому, как правило, берется маленький участок файла с записью "живого" инструмента, закольцовывается и присваивается определенной MIDI-ноте.

Но при формировании того или иного звука синтезатора есть еще одна тонкость. Для того, чтобы семпл звучал выше или ниже (для воспроизведения других MIDI-нот) используется алгоритм изменения высоты тона, в основе которого лежит изменение частоты дискретизации семпла. Вы наверняка знаете эффект "голоса Буратино", который получается, если увеличить скорость воспроизведения магнитофонной ленты. В синтезаторах и семплерах все происходит примерно также, только лентопротяжный механизм заменяется специальным алгоритмом. Но при сильном изменении частоты дискретизации теряется натуральность звучания. Поэтому для создания одного звука синтезатора применяется несколько закольцованных семплов, каждый из которых охватывает свой диапазон. То есть оцифровывается, например, исполнение на музыкальном инструменте ноты "До" каждой октавы, и фрагменты этих семплов присваиваются соответствующим MIDI-нотам. В результате сохраняется натуральность звучания, и экономится память.

Для обозначения совокупности семплов и управляющей информации синтезатора обычно используется термин "пэтч" (некоторые производители используют другую терминологию) - с английского это слово переводится как "соединение". Пэтчи составляются в более высокие структуры, которые называются программами или инструментами (см. рис. ниже). При этом каждый пэтч может занимать только часть звукового диапазона, а может и пересекаться с другими - при этом звуки разных пэтчей накладываются друг на друга. Если вы, например, хотите поиграть на синтезаторе звуком фортепиано, то вы вызываете из памяти именно программу, состоящую из нескольких пэтчей. При нажатии любой клавиши MIDI-клавиатуры, в синтезаторе происходит не просто воспроизведение соответствующего семпла с нужной высотой, а более сложный процесс, который включает исполнение еще ряда команд.

Программы или инструменты синтезатора составляются в банки. В одном синтезаторе может быть как один, так и несколько банков. Количество программ в банке никогда не превышает 128 (так просто сложилось исторически - не ищите в этом числе скрытый смысл), а количество самих банков зависит от стандарта, который поддерживает синтезатор или звуковая карта.

Если вы видели автономные sample playback синтезаторы, то наверняка обращали внимание, что на них почти всегда есть надписи типа General MIDI или аббревиатуры GS или XG. Эти обозначения часто пишутся и в спецификациях звуковых карт. Они указывают, какому стандарту соответствует синтезатор.

Аббревиатура GM или надпись General MIDI означает, что в памяти синтезатора находится как минимум один банк (может быть и больше), из 128 программ плюс один банк ударных инструментов, состоящий из 44 пэтчей барабанов различного звучания, причем
каждой MIDI-ноте присвоен свой барабан (банков ударных и пэтчей в этих банках может быть и больше). Все программы (как основные, так и пэтчи ударных) имеют раз и навсегда установленный номер, под которым их можно разыскать в памяти. Это означает, что в GM-совместимых синтезаторах программа, имитирующая рояль всегда скрывается под номером 1, а под номером 53 - имитатор хора. Такой стандарт введен для того, чтобы без проблем воспроизводить музыку, записанную в любом секвенсере при помощи разных синтезаторов с предсказуемым результатом. Есть и специальный формат файла, который называется "стандартным MIDI-файлом" и обеспечивает воспроизведение музыки на любом синтезаторе или звуковой карте.

GM-синтезатор имеет как минимум 16 MIDI-каналов. Каждый из каналов может быть использован для записи или воспроизведения одной программы или одной ударной установки. Обычно в спецификациях звуковых карт или автономных синтезаторов на этот счет пишется так: "Синтезатор имеет 16-частную мультитембральность".
любых синтезаторов есть еще одно ограничение - вы не можете одновременно воспроизвести больше определенного количества нот, причем неважно, одним инструментом играются эти ноты или несколькими. Это количество называется полифонией, и для стандарта GM оно определено минимум в 24 ноты (может быть и 28, и 32 - GM это не запрещает). Это означает, что если вы задумали сыграть на клавиатуре аккорд из 25 нот, позвав для этого своих друзей, то у вас ничего не получится. Девять нот из взятого аккорда звучать не будут. Девять - это из-за того, что 8 нот резервируются под барабаны и лишь 16 остаются на все остальные программы. В спецификациях некоторых синтезаторов для описания полифонии может применяться и следующая формулировка: "Синтезатор имеет 24 голоса".

Существует очень распространенное заблуждение: будто все GM синтезаторы звучат одинаково - ведь инструменты у них одни и те же. Это совершенно не верно. Рояль из GM-совместимой карты Cuncun FX производства Turtle Beach звучит совершенно не так как рояль с GM-совместимого синтезатора Korg N5. Конечно, оба они - рояли, но вот тембр у этих роялей совершенно разный. Стандарт General MIDI описывает только общий характер инструмента, который должен храниться в памяти под тем или иным номером. Но конкретное качество семплов, "раскладка" колец по клавиатуре и многие другие параметры программы остаются на совести производителя.

И еще одно важное замечание. Очень многие производители синтезаторов указывают в спецификациях своих изделий, что они совместимы со стандартом General MIDI. Но при этом реальное количество программ и банков гораздо больше, чем предусматривает стандарт. Такое употребление значка показывает, что в синтезаторе обязательно есть General MIDI банк и стандартные MIDI файлы будут проигрываться без проблем. Остальные банки организованы особенным образом и композиции, записанные с их использованием, будут корректно воспроизводиться только на тех же самых устройствах.

Теперь об аббревиатурах GS и XG. Стандарт GS введен японской фирмой Roland. Первоначально этот стандарт назывался GSS и расшифровывался как General Synthesizer System. Позже от трех букв остались только две и они расшифровываются чаще всего как General Synthesizer - Основной Синтезатор. GS - это расширение стандарта GM в сторону увеличения количества банков, а соответственно, и количества инструментов, хранящихся в памяти. Причем GS-устройства полностью совместимы с GM, т.е. стандартные MIDI-файлы всегда проигрываются без проблем. Наращивание количества программ происходит в виде добавления вариаций основного банка. Это означает, что в GS-синтезаторе по прежнему будет инструмент номер 90 из набора GM под названием Warm pad, но у него будет пара вариаций 90/1 и 90/2, которые могут быть и совершенно не похожи на основной звук и будут размещены в других банках. При воспроизведении стандартного MIDI-файла банки с вариациями не будут доступны, если в файл не записать специальные MIDI-сообщения. Обычно GS синтезаторы имеют в постоянной памяти 200-400 программ и 6-9 ударных установок (хотя их может быть и больше).

Есть еще одно важное отличие GS от GM - это обязательное присутствие в синтезаторах, поддерживающих Roland"овский стандарт, отдельного процессора эффектов, который может обрабатывать инструменты двумя эффектами одновременно. Обычно это реверберация и хорус. Уровень эффекта регулируется индивидуально у каждого инструмента, но эффекты - общие для всех 16 MIDI-каналов. То есть, если вы обрабатываете на первом канале фортепиано холл-реверберацией, то на всех остальных каналах нельзя установить другой тип эффекта. Можно только поменять уровень "холла".

XG - это стандарт фирмы Yamaha, который появился относительно недавно. Он представляет собой дальнейшее расширение GM и GS в сторону увеличения количества банков и инструментов в памяти и количества эффектов. Расшифровывается эта аббревиатура как eXtended General MIDI - Расширенный General MIDI, и он тоже полностью совместим с GM. Таблица звуков организована точно так же, как и в стандарте GS, т.е. увеличение количества программ происходит при помощи увеличения количества банков с вариациями. Обычно в памяти XG-синтезаторов находится более 400 инструментов. Одновременно можно использовать три эффекта из имеющихся 64, причем 2 могут работать как в GS, сразу со всеми воспроизводимыми инструментами на 16 MIDI-каналах, а еще один можно присваивать любой из программ индивидуально. Выбор последнего эффекта очень богат - как минимум 42 возможных варианта. Кроме этого, в соответствии со спецификацией XG, любым из эффектов можно обрабатывать и внешние источники звука, подключенные к линейному входу. И GS и XG имеют не менее 32 голосов полифонии (чаще - 64) и 16-частную мультитембральность.

Что же это такое - MIDI? Для начала скажем так: MIDI (Musical Instrument Digital Interface - Цифровой интерфейс музыкальных инструментов) - это то, что позволяет нажать клавишу на одном синтезаторе и воспроизвести при этом звук другого.

И хотя MIDI может еще очень многое, мы начнем с этого простого примера.

MIDI-разъемы
Когда вы нажимаете клавишу C 3 (нота До третьей октавы) на одном синтезаторе, ваши действия переводятся в MIDI-сообщение, которое поступает на MIDI-выход (MIDI Out) этого инструмента. Если его MIDI-выход соединен с MIDI-входом (MIDI In) другого инструмента, то тот принимает это сообщение и выполняет те же действия, как будто клавиша была нажата на его клавиатуре, то есть воспроизводит ноту C 3.

Представим себе, что мы имеем три синтезатора (во всяком случае, попытаемся) и хотим с одного из них управлять двумя другими. Здесь вступает в действие третий разъем с веселым названием MIDI Thru (сквозной). Его задача - дублировать все сообщения, которые поступают на MIDI-вход данного инструмента. Таким образом, мы берем еще один MIDI-кабель, подключаем его к MIDI Thru второго синтезатора (так как именно на его MIDI-вход поступают сообщения) и к MIDI In третьего. Теперь вся информация, выходящая из MIDI-выхода первого инструмента, поступает на MIDI-вход второго и дублируется через сквозной MIDI-разъем на MIDI-вход третьего. Теоретически можно подключать бесконечное число инструментов таким образом, но на практике при соединении более трех происходят задержки сигнала и прочие неприятности. Если все же необходимо подключить несколько MIDI-инструментов, следует воспользоваться специальными устройствами: MIDI Thru Box или MIDI Patch Bay.

MIDI-каналы
Теперь у нас возникает первая проблема. Если мы нажмем клавишу на первом инструменте, нота будет звучать одновременно на всех трех. Если это и была наша цель, то она достигнута. А если мы хотим, чтобы звучал только один синтезатор? Кроме того, большинство современных синтезаторов - мультитембральные, то есть могут воспроизводить несколько тембров (звуков) одновременно.

Чтобы отделить MIDI-сообщения, предназначенные для одного синтезатора (или для одного тембра на этом синтезаторе), от сообщений другого, существуют 16 MIDI-каналов. Вы устанавливаете на первом синтезаторе звук пианино на MIDI-канале 2 (о том, как это делается, следует прочитать в руководстве пользователя для каждого инструмента), на втором синтезаторе - звуки баса и струнных на MIDI-каналах 5 и 8, а на третьем - барабаны на канале 10 (каналы можно устанавливать в любом порядке). Теперь вам надо переключать MIDI-каналы, по которым передает информацию первый синтезатор: включили на канал 2 - звучит пианино с первого синтезатора, на канал 10 - барабаны с третьего и т. д.

Собственно говоря, при таком раскладе нам вообще не нужны клавиатуры на втором и третьем синтезаторах. Это соображение и привело к широкому распространению звуковых модулей - синтезаторов без клавиатуры, а также к появлению отдельных клавиатур для управления несколькими инструментами (MIDI Master Keyboard).

Запись MIDI-событий
Внимание, дамы и господа, сейчас самое интересное: MIDI-события можно не только передавать и принимать, но и записывать. Для этого существуют специальные устройства - секвенсоры.

В отличии от магнитофона, секвенсор записывает не звук, а управляющую MIDI-информацию (например: на второй доле первого такта по MIDI-каналу 10 передано сообщение о нажатии клавиши C 3). Вы можете затем изменить звук на десятом MIDI-канале и воспроизвести записанную информацию с новым звуком. Вы можете даже заменить синтезатор на другой и, если вы установите один из его звуков на MIDI-канал 10, то сможете воспроизвести вашу игру звуками нового инструмента.

Кроме того, секвенсоры позволяют редактировать записанную информацию способами, немыслимыми на магнитофоне. Можно стирать, копировать и перемещать части вашей песни; транспонировать партии или отдельные ноты, изменять ритмическую позицию событий (квантизировать) и многое, многое другое.

Синхронизация
Скажем, мы записали все синтезаторные партии для нашей песни. Теперь неплохо бы что-нибудь спеть и может быть сыграть на акустических инструментах, типа гитары или саксофона. Можно, конечно, включить наш многодорожечный магнитофон, запустить секвенсор и записать все, что он воспроизведет, на пленку. Но, во-первых, это займет минимум две дорожки, а если мы хотим впоследствии изменять громкость или панораму отдельных партий, то по дорожке на каждый звук (а если звук стерео?); а во-вторых, мы уже не сможем изменить звуки.

Намного более элегантным решением была бы синхронизация секвенсора и магнитофона. Вы записываете на одну дорожку магнитофона некий временной код, который содержит информацию о том, в каком месте секвенсор должен начать воспроизведение и с какой скоростью. Это можно сделать с помощью специального устройства под названием синхронизатор (некоторые аппаратные секвенсоры имеют встроенную систему синхронизации, впрочем, некоторые многодорожечные магнитофоны тоже). С помощью протокола MIDI Machine Control (Управление устройствами по MIDI) можно не только синхронизировать секвенсор с магнитофоном, но и управлять магнитофоном (перемоткой, включением записи и воспроизведения) с секвенсора.

После записи всех необходимых партий пора приступить к окончательному сведению. Здесь MIDI может помочь в управлении громкостью, панорамой и другими параметрами звуков различных MIDI-инструментов. Многие компьютерные секвенсоры имеют для этих целей специальные редакторы, воспроизводящие на экране монитора реальные регуляторы (например, MIDI Manager в Steinberg Cubase). Некоторые пульты (например, Soundcraft Spirit Auto или Mackie CR 1604 с системой OTTO) позволяют аналогичным образом управлять громкостью своих каналов, таким образом, контролируя обычные инструменты.

Что еще может MIDI?
На MIDI-совместимых процессорах эффектов можно не только переключать пэтчи, но и изменять их параметры в реальном времени. Например, можно назначить колесо модуляции на управление временем задержки, а уровень реверберации установить в зависимости от номера ноты. Повернули колесо модуляции во время игры на синтезаторе - время задержки увеличилось, играете в верхней части клавиатуры - уровень реверберации выше, чем при игре в нижней части.

Если у вас есть два инструмента, соответствующих стандарту MIDI Sample Dump (чаще всего это семплеры), вы можете передавать между ними семплы по MIDI. Это происходит довольно медленно, и вы не сможете передать пэтчи полностью (область клавиш, динамическое реагирование, огибающую), а только сами семплы. Тем не менее, и это может быть очень полезно.

Надо отметить, что управляющие MIDI контроллеры не обязательно должны быть клавишными инструментами. Это могут быть электронные барабаны, MIDI-гитары и бас-гитары, MIDI-фейдеры, MIDI-саксофоны, тромбоны, аккордеоны, мандолины и т. д. На выставке музыкального оборудование NAMM фирмой WaveAccess был представлен революционный продукт - WaveRider. Он подсоединяется к вашему телу, снимает данные мышечной, сердечной, кожной активности и биотоки мозга, и переводит их в MIDI-данные (например, ритм сердца - в темп песни).

Оценка статьи