В прошлом веке самым простым путем соединения компьютера и синтезатора по 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 была собрана такая вот схема адаптера:
Работоспособность собранной схемы была проверена следующим образом:
Адаптер был подключен к разъёмам MIDI синтезатора.
У синтезатора было отключено локальное управление (MIDI Local = Off).
После установки перемычки между сигналами RX и TX адаптера синтезатор стал реагировать на нажатия клавиш.
Надеюсь, что работа схемы понятна без пояснений. Замечу только, что:
элементы микросхемы К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-редактором. Я вновь обрёл душевный покой.
Источник
Midi usb адаптер своими руками
Товарищи, извините меня за мою программу — она у вас не запустится, поэтому я выкладываю новую версию (доработанную).
В ней можно мышью управлять контроллером. Курсор мыши находится в специальном окне и не вылазит из него, пока не нажата клавиша NumLock. То есть можете скачать прогу даже для того, чтобы просто пользоваться этой функцией. Будут вопросы или предложения — vopros-otvet1990@mail.ru. ))
В перспективе есть идея сделать функцию инверсии контроллера педали (для тех, у кого педаль в обратную сторону работает — при нажатии отпускает, а при отпускании нажимает). Также можно доработать прогу и добавить туда функцию переотправки сигнала с миди порта (если есть звуковуха с этим портом). Вообщем пишите))
причём тут usb ? я же не собираюсь usb вешать на обычную логику/МК. а комповые потроха я не лезу. то что в современной электронике уровни 3.3В, 3В, 2.5В, 1.8В я отлично знаю. однако начальные МК до сих пор работают с шиной 5В. как и большинство логики. собственно не хотелось бы мне испытывать как будет вести себя МК, посаженный на шину 5В (в первую очередь для стабильной работы и нежелания разбираться с внутренним ИОН) и цпшка, работающая с уровнями 3.3В. думается мне что минимум потребуется поставить делитель с выхода TXD МК, дабы не пожечь вход микрухи. кстати FT232R(-L/-Q) уже ничем не уступают цп2102. однако в отличие от них могут работать с 1,8-5В логикой.
ЗЫ: извиняюсь за разговор немного «не в тему». другие темы не имеет смысла поднимать, а здесь практически о том же разговор шёл.
Реклама
Вебинар поможет в выборе недорогих источников питания оптимальных для систем охраны, промышленных и телекоммуникационных приложений, а также для широкого применения. Будут представлены основные группы источников питания по конструктивным признакам и по областям применения в контексте их стоимости или их особенностей, позволяющих снизить затраты на электропитание конечного устройства.
Приглашаем всех желающих 13 октября 2021 г. посетить вебинар, посвященный искусственному интеллекту, машинному обучению и решениям для их реализации от Microchip. Современные среды для глубинного обучения нейронных сетей позволяют без детального изучения предмета развернуть искусственную нейронную сеть (ANN) не только на производительных микропроцессорах и ПЛИС, но и на 32-битных микроконтроллерах. А благодаря широкому портфолио Microchip, включающему в себя диапазон компонентов от микроконтроллеров и датчиков до ПЛИС, средств скоростной передачи и хранения информации, возможно решить весь спектр задач, возникающий при обучении, верификации и развёртывании модели ANN.
В архиве лежит *.dll — midilink.dll, которая должна бы как MIDI-Serial фильтр работать и в W7 32. Она обслуживает вот такое устройство, как на прилагаемом в архиве рис. 2. Подробнее:
http://www.dankadata.com/ddd001.html И драйвер для W7, и программа-софтинка там есть. Устанавливается (по крайней мере, в ХР), но не работает.
Это тоже serial-midi фильтр, но работает он только в присутствии «своего устройства — именно кабеля midilink (в программе midi-редакторе вот такое сообщение появляется — рис. 1. в архиве и далее сообщение «Неизвестная внешняя ошибка» ). Вот сравнить бы эти dll-ки — от каваев и от мидилинков. Ведь в MIDI-редакторе midilink.dll активен! Вход и выход MIDI индицируются и программно и «железно» — светодиодами! Надо подправить файлик midilink.dll, чтоб он не сетовал на одиночество.
Хочу поделиться опытом создания MIDI USB кабеля на PL-2303.
В свое время, так как в Windows 7 не было драйвера Game порта для моей звуковой карты Sound Blaster Live!, из-за того, что Microsoft отказалась от его поддержки в ОС старше XP, я решил подключить синтезатор к USB порту. Возникла идея сделать MIDI USB кабель на основе PL-2303. Эта микросхема была в старом кабеле от телефона Samsung X100. Я долго пытался переключить PL 2303 на скорость 31250 для работы с MIDI, уже было хотел все бросить, упорно не работала на такой скорости, но потом мне удалось рассчитать и подобрать делитель по статье. В итоге все заработало как надо)) и до сих пор работает стабильно без тормозов и косяков, получился хороший MIDI USB кабель)
Кабель MIDI USB на PL-2303
Чтобы все работало, необходимо поставить драйвер, скачав с сайта производителя Prolific. Если сайт не работает, то вот ссылка PL2303 Prolific Driver Installer v1.5.0. После установки, в реестре нужно сделать запись в ветке: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ser2pl]
Теперь в программах, при выборе скорости порта 31250 или 38400, микросхема PL 2303 будет работать как надо для MIDI, на 31250.
Для передачи MIDI данных с виртуального COM порта в виртуальный MIDI порт (я использовал MIDIYoke (Windows 7 x32), LoopBe1 (Windows 8 x64)), который, как обычный, можно открывать в музыкальных программах. Я использовал драйвер Roland Serial MIDI driver (работает на Windows 7 x32, для ОС Windows 8 x64 использовал прогу автора темы на форуме).
Схема моего преобразователя MIDI в UART для кабель MIDI USB на PL-2303
Использовал оптрон 6N137, быстрый с низким током, как раз для MIDI, сделал 3 порта MIDI IN, MIDI OUT, MIDI THRU и два светодиода для индикации. Собрал в корпусе из под видео кассеты VHS, туда вошла и плата от кабеля PL-2303 и плата преобразователя MIDI UART.
C помощью программы Serial port monitor можно подключиться к виртуальному COM-порту и посмотреть правильно ли все работает.
Пользовался MIDI-USB кабелем с семплером Kontakt 5, работает без ощутимых задержек и зависаний.
Последний раз редактировалось TheRealMaN_ Вт июн 05, 2012 03:53:05, всего редактировалось 2 раз(а).
У меня «PL2303_Prolific_DriverInstaller_v1.5.0», а какой оптрон используется, схема MIDI развязки проверялась? Когда я в первый раз собрал схему с нашим АОТ 123А, тоже были глюки, шел какой-то левый поток данных с синтезатора, не мог он, наверное работать на нужной скорости. Поставил оптрон 6N137, стало все передаваться корректно.
Я пробывал на двух ОС 7(x32) и 8 (x64), по идее все должно работать, везде строка extbaudrate подхватывалась драйвером сразу после добавления, даже без перезагрузки компа.
Arsenix, спасибо, конечно, за рекламу, но по в/у ссылке вовсе не переходник (тем более, не USB-MIDI), а доработка интерфейса звуковой карты до стандартного «MPU-401».
Есть у меня и переходник, но опять же, COM-MIDI (и вообще его надо рассматривать «шире», чем просто переходник, о чём сказано в названии статьи).
_________________ ICQ нет, и, в ближайшее время, не будет.
Чтобы добавить в реестр запись для включение драйвером нужной скорости для PL-2303, необходимо нажать клавишу с символом Виндовс и R (Win+R), откроется окно «Выполнить», в нем набрать regedit, нажать Enter. В появившемся окне редактора реестра находите HKEY_LOCAL_MACHINE далее SYSTEM и т.д. согласно пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ser2pl Добравшись до папки Ser2pl в правом окошке находите значение ExtBaudrate и присваиваете ему значение
Должно работать сразу без перезагрузки. Нужно сменить номер виртуального ком порта, если не ошибаюсь он должен быть в диапазоне COM1-COM2, что бы драйвер COM-MIDI от roland его увидел.
Чтобы все работало, нужно установить следующие проги 1. Драйвер кабеля Prolific 2. Внести запись в реестр 3. Убедится что виртуальный com порт имеет номер 1 или 2 4. Установить если у Вас Windows x32 драйвер Roland по ссылке выше 5. Выбрать в его настройках виртуальный com порт
Теперь про софт синтезаторы. Мне нравится семплер от Native instruments Kontakt 5 с библиотеками Native instruments — Alicia’s Keys Best Service — Galaxy II K4: Vienna Grand Imperial Best Service — Galaxy Vintage D Native Instruments — New York Concert Grand
Все это можно скачать с rutracker.org, ссылки кину в личку
Библиотеки с отличным звуком, сам семплер подходит для работы в реальном времени без задержек.
Посмотрел скриншоты, в драйвере уже выбран нужный COM порт, поэтому с драйвером все OK, если виртуальный порт COM1 В реестр строка прописана, не важно что немного отличается набор записей в реестре от моего, возможно это потому что у меня x64 версия. Версия моего драйвера вот PL2303 Prolific Driver Installer v1.5.0 Теперь если в программах открывать MIDI порт Roland, должно работать, если схема собрана правильно.
Также с помощью программы Serial port monitor можно подключиться к виртуальному COM-порту и посмотреть правильно ли все работает, отправляются и принимаются данные или нет.
Попроще нет, но плюс этой программы что она может подключиться к порту, когда он уже открыт в какой-нибудь программе и можно вписать любую произвольную скорость порта. Попробуйте с ней разобраться, хотя, наверное, все работает.
Может в реестре поискать еще где-то упоминание ключа extbaudrate, в редакторе реестра нажмите CTRL+F, в окне поиска введите extbaudrate, возможно не только в одной ветке информация содержится, если найдется, то исправить и там.
Страница 5 из 7
[ Сообщений: 135 ]
На страницу Пред. 1 , 2 , 3 , 4 , 5 , 6 , 7 След.
Часовой пояс: UTC + 3 часа
Кто сейчас на форуме
Сейчас этот форум просматривают: zon63 и гости: 18