Системные сообщения служат для синхронизации с видеооборудованием и ленточными записывающими устройствами, выбора произведения и позиции воспроизведения, настройки аналоговых синтезаторов. Сообщения реального времени образуют систему синхронизации MIDI Sync, используемую секвенсорами, ритм-машинами и другими тактируемыми устройствами MIDI. Есть и специальные сообщения для обмена различными данными, например для загрузки патчей.
Для обеспечения совместимости различных звуковых модулей был принят стандарт General MIDI (GM). Он определяет минимальные требования к модулям и оставляет место для расширений, среди которых широко распространены стандарты GS и XG. Стандарт GM поддерживают все звуковые карты, «понимающие» MIDI. Расширение GS поддерживает довольно большое число производителей, a XG — лишь синтезаторы (и звуковые карты) фирм Yamaha и Korg. Для унификации методов хранения и передачи информации MIDI были приняты и стандарты на форматы файлов.
Хранение и передача данных MIDI имеют свою специфику. Когда источником сообщений MIDI является MIDI-контроллер и генерируемый им поток исполняется сразу в реальном времени, никакой маркировки сообщений обычно не требуется. Для хранения данных MIDI в виде файлов нужны специальные отметки времени.
Секвенсоры оперируют треками — строками нот, исполняемыми параллельно. Трек примерно соответствует партии (или ее части) одного инструмента. Такое представление естественно для композиторов и дает богатые возможности редактирования. Программный секвенсор может сохранять партитуры как в собственном (ни с кем не совместимым), так и в стандартизованном формате.
При сопряжении устройств MIDI с «инородными» устройствами (видеосистемы, аудиорекордеры) возникает задача их синхронизации. В MIDI используется система MIDI Sync с однобайтными сообщениями SRT. Помимо этой системы в музыкальных инструментах применяется и аппаратная синхронизация Sync24, известная и под названием «DIN Sync», однако несмотря на однотипность разъемов, никакой совместимости интерфейсов MIDI и Sync24 нет. Выделить из потока MIDI сообщения SRT может несложный микроконтроллер (или же аппаратная логика).
В мультимедийных приложениях возникает необходимость синхронизации MIDI-звука с движущимся видеоизображением. Существует несколько систем синхронизации, принятых организацией SMPTE (Society of Motion Picture and Television Engineers — общество инженеров движущихся изображений и телевидения).
Для передачи данных счетчиков SMPTE по интерфейсу MIDI разработана система синхронизации МТС {MIDI Time Code), которая представляет собой мост, соединяющий систему синхронизации MIDI, построенную на отметках долей тактов (beat), с данными в форматах SMPTE. Отметим, что синхронизация MIDI Sync является темпозависимой — частота посылки синхросообщений пропорциональна темпу исполнения, который может меняться. Система SMPTE,
а следовательно, и МТС, привязана к абсолютному времени — ее частота сообщений определяется только частотой кадров.
Для синтезаторов с аналоговым управлением интерфейс MIDI непосредственно не подходит. Для их подключения существуют специальные микроконтроллеры с ЦАП, формирующие управляющее напряжение (линейное или экспоненциальное) и разрешающий сигнал на основе потока сообщений MIDI, адресованных к выбранному каналу. Встроенное программное обеспечение такого контроллера может реализовать все команды, связанные с изменением частоты тона: вибрато, глиссандо, портаменто и т. п.
Наиболее распространенные MIDI-контроллеры представляют собой 4-6-ок-тавные клавиатуры с полноразмерными (как у рояля) или уменьшенными клавишами. Каждая клавиша имеет датчик нажатия: простейший дискретный (кнопочный), фиксирующий лишь факт нажатия-отпускания, или же динамический, измеряющий скорость (силу удара) и передающий это значение в качестве параметра сообщения. Клавиши простейших клавиатур подпружинены, более качественные «взвешенные» клавиатуры для исполнителя по ощущениям близки к настоящим рояльным. Клавиатура может иметь датчик давления на клавишу после удара, «колеса» (wheels) для управления строем канала, а также подачи сообщений управления контроллерами (например, глубины модуляции). К клавиатуре могут подключаться педаль удержания нот (sustain), органы включения различных эффектов, переключения номера канала. На клавиатуре могут быть установлены небольшой дисплей или отдельные индикаторы режима работы.
Интерфейс MIDI в значительной степени ориентирован на клавишные музыкальные инструменты. Однако даже самая хорошая «взвешенная» клавиатура с датчиками скорости и давления не позволяет передать все нюансы исполнения, например, духовых или струнных (щипковых или смычковых) инструментов. В настоящее время существуют MIDI-контроллеры с интерфейсами, отличными от клавишных, например в виде гитар, где датчики определяют место прижима струн и силу удара (щипка). Есть и MIDI-контроллеры с «духовым интерфейсом» — датчики устанавливаются на клапанах, а специальный мундштук измеряет расход проходящего воздуха. Существуют и преобразователи аналогового сигнала в поток MIDI-инструкций. Они имеют АЦП, оцифровывающий входной сигнал, снятый микрофоном с реального инструмента, и внутренний сигнальный процессор. Для гитар выпускаются специальные звукосниматели, сопряженные с сигнальными процессорами. Задача разложения звука на голосовые (не спектральные!) составляющие довольно сложна и легче решается для одноголосных инструментов. Если преобразователь использовать как устройство ввода для секвенсора, то ошибки преобразования можно исправлять средствами редактирования музыкального текста в секвенсоре.
Самым примитивным MIDI-контроллером может являться обыкновенная компьютерная клавиатура — она способна генерировать сообщения по фактам нажатия и отпускания клавиш. Ценным свойством клавиатуры является способность реагирования на одновременные нажатия-отпускания клавиш, в том числе и во время удержания нескольких клавиш нажатыми. Конечно, она не воспри-