MIDI: аппаратная составляющая
Соединительные 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-устройство имеет три соединительных разъема: 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 и TTL на разъеме игрового порта) делался простой адаптер, схема которого приведена в посвящённой MIDI статье Википедии:
В настоящее время игровые порты со звуковых и материнских плат пропали как класс. Драйверы игрового порта для современных ОС найти невозможно.
«Физика» работы интерфейса в принципе была понятна из статьи Википедии: обмен данными производится по старт-стопному протоколу на скорости 31250 бит/с посылками по 8 бит данных без контроля чётности с одним стоповым битом. Логическому нулю в сигнальных цепях соответствует протекание тока 5 мА, логической единице отсутствие тока в цепи.
В принципе, игровой порт можно заменить на USB UART и присоединить к нему описанный в статье Википедии адаптер.
Первая проблема данного решения заключается в том, чтобы заставить ОС определять COM-порт UART как порт MIDI. Неожиданно для меня, решение проблемы нашлось на форумах, посвященных Arduino. Там я обнаружил ссылку на бесплатный эмулятор порта MIDI «поверх» виртуального COM-порта. Для связи эмулированного порта с MIDI-редактором разработчик рекомендовал использовать виртуальный шнур loopMIDI.
Вторая проблема: заставить UART работать на скорости 31250 бит/с.
Всех этих данных уже было достаточно для формулировки технического предложения:
«Для связи компьютера с синтезатором по интерфейсу MIDI предлагается использовать USB UART совместно с адаптером для согласования сигналов TTL с сигналами «токовая петля 0…5 мА», программным обеспечением loopMIDI, Hairless MIDI Serial Bridge и драйверами UART, позволяющими ему работать на скорости 31250 бит/с».
Аппаратная часть
Выбор аппаратного решения был крайне прост – в закромах автора статьи нашлись:
- USB UART на базе CP2102;
- оптрон АОТ101А;
- микросхема К1533ЛН2;
- пара разъёмов СШ-5 (другие обозначения: ОНЦ-ВГ-4-5/16-В, DIN 41524);
- несколько метров экранированного акустического кабеля ШГЭС.
В результате на обрезке универсальной макетной платы размером 40х15 была собрана такая вот схема адаптера:
Работоспособность собранной схемы была проверена следующим образом:
-
Адаптер был подключен к разъёмам M > Надеюсь, что работа схемы понятна без пояснений. Замечу только, что:
- элементы микросхемы К1533ЛН2 имеют выход типа «открытый коллектор», который не работает без внешней нагрузки;
- конденсатор C1 подключается как можно ближе к выводам питания DD1;
- оплётка кабеля, идущего к разъёму «MIDI IN» синтезатора, подключена только к общему проводу адаптера;
- оплётка кабеля, идущего к разъёму «MIDI OUT» синтезатора, подключена только к выводу 2 разъёма.
Программное обеспечение
Далее на компьютер было установлено следующее ПО:
Для связи MIDI-редактора с разъёмом синтезатора «MIDI IN» шнур «Synthesizer» был подключен между выходом Anvil Studio и входом эмулятора порта MIDI.
Для связи MIDI-редактора с разъёмом синтезатора «MIDI OUT» шнур «Keyboard» был подключен между выходом эмулятора порта MIDI и входом Anvil Studio.
Последним и очень важным шагом настройки ПО была установка для CP2102 скорости обмена 31250 бит/с взамен 38400 бит/с:
После установки скорости необходимо нажать кнопку «Set Configuration». Затем, и в Диспетчере устройств, и в Hairless MIDI Serial Bridge в настройках скорости обмена данными COM-порта UART CP2102 нужно выбрать значение 38400.
Краткие итоги
В результате MIDI-редактор Anvil Studio получил канал связи с синтезатором Yamaha PSR-550. Дети с энтузиазмом стали осваивать работу с MIDI-редактором. Я вновь обрёл душевный покой.