Входной порт MIDI-In представляет собой вход интерфейса «токовая петля», гальванически развязанного от приемника оптроном с быстродействием не хуже 2 мкс. Устройство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.
Выходной порт MIDI-Out представляет собой выход источника тока, гальванически связанного со схемой устройства. Ограничительные резисторы предохраняют выходные цепи от повреждения при замыкании на «землю» или источник 5 В. На выход подается информационный поток от данного устройства. При специальной настройке устройства в этом потоке может содержаться и транслированный входной поток, но это нетипично.
Транзитный порт MIDI-Thru служит только для ретрансляции входного потока, по электрическим свойствам он аналогичен выходному. Его наличие обязательным для всех устройств не является.
В качестве разъемов применяются 5-контактные разъемы DIN, распространенные в бытовой звуковой аппаратуре.
На большинстве плат звуковых адаптеров сигналы порта MIDI выведены на неиспользуемые контакты (12 и 15) разъема игрового адаптера (DB-15S). При этом для подключения стандартных устройств MIDI требуется переходной адаптеру реализующий интерфейс «токовая петля» (на разъеме карты интерфейс ТТЛ). Переходной адаптер обычно встраивается в специальный кабель, вариант схемы которого приведен на рис. 12.16. Некоторые модели PC имеют встроенные адаптеры и стандартные 5-штырьковые разъемы MIDI. На некоторых системных платах применяются БИС контроллеров интерфейсов, в которых UART-порт, используемый в качестве СОМ-порта, конфигурированием через CMOS Setup может быть переведен в режим MIDI-порта. Программно MIDI-порт обычно совместим с UART MPU-401 (см. 12.2).
MIDI-Tx (12)
MIDI-IN
MIDI-THRU
Рис. 12.16. Вариант схемы кабеля-адаптера MIDI
Поток данных MIDI исходит от MIDI-контроллера или от MIDI-секвенсора. MIDI-контроллер представляет собой устройство, на котором играют, как на
музыкальном инструменте (чаще всего это клавиатура). MIDI-контроллер формирует поток сообщений, отражающий события исполнения (нажатие и отпускание клавиш) в реальном времени. MIDI-секвенсор (sequencer) — устройство, позволяющее перехватывать, хранить и редактировать (включая комбинирование, наложение и генерацию) поток MIDI-сообщений и воспроизводить его в заданном темпе. Исходящий поток MIDI-контроллера или MIDI-секвенсора поступает на его разъем MIDI-Out Для использования в качестве секвенсора компьютер должен иметь порт MIDI и соответствующее прикладное ПО, а также иметь производительность, достаточную для работы в реальном времени.
Конечным приемником потока MIDI-сообщений является звуковой модуль (sound module) — синтезатор, формирующий аудиосигнал на основе приходящих к нему команд. Применительно к PC синтезатор может входить в состав звуковой карты, а может быть и внешним.
Каждому звуковому модулю назначается свой номер логического канала (MIDI Channel) в диапазоне 1-16.
Порт MIDI-Thru позволяет соединять устройства в цепочки и более сложные структуры. Возможные варианты топологии должны подчиняться главному правилу: вход MIDI-In одного устройства должен подключаться к выходу MIDI-Out или MIDI-Thru другого устройства. При планировании MIDI-сети необходимо руководствоваться знаниями информационных потоков и связей устройств. Управляющие устройства — клавиатуры, секвенсоры (в режиме воспроизведения), источники синхронизации — должны находиться, естественно, перед управляемыми. Возможно применение и специальных устройств-мультиплексоров, позволяющих логически коммутировать множество входных потоков в один выходной.
Сообщения MIDI разделяются на канальные (channel messages) и системные (system messages).
Канальные сообщения в свою очередь подразделяются на голосовые и управляющие (channel mode messages). Голосовые сообщения несут основную исполнительную информацию. Исполнение ноты начинается по приему сообщения Note On, которое содержит номер ноты и скорость нажатия клавиши. Это сообщение инициирует фазы атаки, спада и удержания (см. рис. 12.5). Скорость нажатия определяет уровень (громкость) исполнения, качественные синтезаторы в зависимости от скорости могут корректировать и характер исполнения (спектр, форму огибающей, выбирать нужный образец). Нота снимается (отрабатывается фаза затухания) по приеме с ее же номером сообщения Note Off или Note On с нулевой скоростью. Голосовые сообщения управляют и характером исполнения (громкость, вибрато, смещение строя и т. п.). Каждому параметру синтезатора соответствует номер контроллера (в данном контексте — номер управляемого параметра), с помощью которого можно им управлять. Эти контроллеры не следует путать с MIDI-контроллерами — устройствами, с помощью которых исполнитель генерирует MIDI-сообщения. Управляющие сообщения определяют, как именно звуковой модуль должен отрабатывать голосовые сообщения.