Цифровой интерфейс музыкальных инструментов MIDI, коммутация и реализация в Windows и OS/2. Описание MIDI-интерфейса. Подключение синтезатора к ноутбуку. Организация передачи данных по интерфейсу, недостатки протокола SDS и преимущества протокола SMDI.
Аннотация к работе
MIDI - цифровой интерфейс музыкальных инструментов - был разработан в 1982 году по инициативе нескольких ведущих производителей музыкальных инструментов - Yamaha, Roland, E-mu, Korg и др. Необходимость такого интерфейса была вызвана, прежде всего, тем, что выпускалось все больше автоматических устройств - ритм-машин и секвенсоров; первые по заданной программе выдавали ритмическое сопровождение с нужным рисунком, вторые использовались для запоминания сыгранных партий с целью последующего автоматического воспроизведения.Основная идея MIDI состоит в том, что это - событийно ориентированный интерфейс, по которому передаются сообщения, информирующие о наступлении различных событий в реальном времени. Когда исполнитель ударяет по клавише или, наоборот, отпускает ее, усиливает или ослабляет давление на нажатую клавишу, переключает тумблеры или поворачивает регулятор на панели управления, давит на педаль - инструмент преобразует каждое из этих действий в соответствующее сообщение, которое в закодированном виде отправляется по интерфейсу. Кроме сообщений, непосредственно отражающих действия исполнителя, по MIDI передается и множество других сообщений. Сообщения типа MMC (MIDI Machine Control - управление MIDI-машинами) служат для запуска и остановки ритм-блоков: например, музыкант, отыграв вступление, нажатием педали посылает сообщение Start, которое получает ритм-блок и начинает играть сопровождение, которое может быть приостановлено и запущено вновь повторными нажатиями педали. MIDI-контроллеры существуют в виде клавиатур, педалей, дыхательных (breath) датчиков, и даже гитар, скрипок или флейт, причем последние три вида - не какие-нибудь электронно-кнопочные, а самые обычные инструменты, игра на которых при помощи датчиков и анализаторов преобразуется в поток MIDI-сообщений, по которому специальные синтезаторы могут весьма натурально воспроизвести исполнительские нюансы.Существует несколько способов подключения синтезатора к компьютеру для передачи MIDI-команд: 1. стандартный MIDI-интерфейс;Стандартным MIDI-интерфейсом оснащены практически все MIDI-клавиатуры и большинство синтезаторов (из тех, что вообще рассчитаны на передачу MIDI-сигнала). Для подключения синтезатора к компьютеру при помощи MIDI-шнура (кабеля) соединяют MIDI-выход синтезатора с MIDI-входом (MIDI-портом) компьютера.Серьезным преимуществом такого подключения является возможность некоторых (но не всех) синтезаторов/MIDI-клавиатур получать по USB, помимо MIDI-сигнала, еще и электропитание. При подключении посредством USB для обмена MIDI-информацией между синтезатором/MIDI-клавиатурой и компьютером используется виртуальный MIDI-порт, для функционирования которого необходимы драйвера, поставляемые обычно в комплекте с синтезатором или MIDI-клавиатурой.В частности, это касается подключения синтезатора или MIDI-клавиатуры к ноутбуку, для которого наличие стандартного MIDI-порта нехарактерно, но где практически всегда (на сколь-нибудь современных моделях) есть USB-порт.Именно здесь выходят на арену MIDI-сообщения, которые содержат в себе команды, в том числе данные о способе выведения, об изменениях, общесистемные сообщения и сообщения об исключениях системы. Например, звуковой модуль в общем случае не может послать сообщения воспроизведения, поскольку этот аппарат не имеет механизмов, которые эти команды создают. Данные исполнения состоят из сообщений о включении и выключении ноты (note-on и note-off), о силе нажатия на клавишу (velocity), об изменении этой силы (after-touch), о вибрато (vibrato) и об изменении высоты тона (pitch bend). Сообщения note-on и note-off представляют собой числа от 0 до 128.Передача данных по MIDI-интрфейсу - это своеобразная "матрешка", протокол в протоколе, когда посредством MIDI-сообщений передаются данные, к MIDI отношения не имеющие. Сначала, в январе 1986 года, был предложен Sample Dump Standard (SDS) - стандартный способ передачи цифрового звука между семплерами и другими MIDI-устройствами, а несколько позже появился протокол MIDI File Dump, позволяющий передавать по MIDI-кабелю файлы любого формата. Раз звук находится в цифровом виде, то почему бы его не передавать по цифровому протоколу, тем более такому общепризнанному, как MIDI? Все семплеры имели MIDI-интерфейс, так что для обмена данными достаточно было всего лишь соединить устройства MIDI-кабелем. Для этого достаточно было оснастить компьютер MIDI-интерфейсом (к слову, компьютеры Atari изначально имели встроенные MIDI-порты).Подсчитаем, сколько времени требуется для передачи одной секунды монофонического звука с разрядностью 16 бит и частотой дискретизации 44100 Гц. Напомню, что один байт передается по MIDI-интерфейсу за 320 микросекунд. Заголовок Dump Header имеет длину 21 байт (21 x 320 = 6720 мкс), после чего передающее устройство делает паузу (примем равной максимальному значению, две секунды). При 16 битах на отсчет два звуковых байта кодируются тремя MIDI-байтами данных. При передаче методом закрытой петли после каждого сообщения Data Packet от