Что такое midi через usb

Что такое midi через usb

Я уверен, что многие из тех, кто пользуется компьютером в качестве музыкального инструмента, обладают миди-клавиатурами, либо миди-контроллерами. Это действительно удобно! Причем, даже если вы не выступаете вживую, то крутить ручки или, к примеру, сыграть партию «вживую» гораздо интересней и эффективней, чем писать ее в секвенсоре. Впрочем, эти устройства – дополнительная статья расходов, что не всегда по карману непрофессиональным музыкантам. Но, к счастью, разработчики софта улучшают и улучшают его. И на данный момент любой обладатель Android-устройства может превратить его в миди-контроллер. Как сделать это в конкретных программах и будет данная статья.

Что мы имеем на данный момент

Итак, я предполагаю, что Вы – счастливый обладатель андроид-устройства и, естественно, компьютера на базе windows. Рассматривать iMac и совместимые устройства я, к сожалению, не имею возможности, но уверен, там все происходит подобным образом. Примеры будут на основе Ableton, хотя можно использовать и другие секвенсоры с поддержкой миди. Теперь насчет андроид-устройства. В моем случае – это телефон Lenovo A750 с Android ICS 4. Опять же, на более ранних ОС я не имею возможности проверить, так что будем отталкиваться от такой конфигурации.

Программы я выбрал бесплатные, доступные на сервисе Google-Play. Ссылки будут указаны далее. Первая – это Touch OSC (https://play.google.com/store/apps/details?id=net.hexler.touchosc_a). Вторая – FingerPlay MIDI (https://play.google.com/store/apps/details?id=com.flat20.fingerplay&hl=ru). И если первая позволяет работать, в общем, без дополнительных программ (со своим драйвером), то вторая требует установки на компьютере своего сервера в виде отдельной программы. Но обо всем по-порядку.

Подготовка

Для начала нам нужно установить виртуальные миди-порты. Как это сделать, я описывал в статье про миди-маппинг. Кто не знает – читаем. Во-вторых, у нас должно быть настроено соединение wi-fi, со статическим ip-адресом. В windows 7 это можно проверить (сделать), зайдя в «Центр управления сетями и общим доступом-Беспроводное сетевое соединение-Свойства-Протокол интернета версии tcp/ipv4» (рис. 1).


Рисунок 1. Установка статического IP-адреса на компьютере.

Как видим на рисунке, установлен статический адрес 192.168.1.57. Нам нужно будет запомнить этот адрес, он нам пригодится далее, в настройке программ на андроиде.

Во-вторых, должно быть установлено wi-fi соединение между компьютером и телефоном. Вариантов тут много. Лично у меня установлен обычный роутер wi-fi, со стандартными настройками, через него и соединяется компьютер и телефон. Возможны и другие варианты подключения напрямую телефона и компьютера через wi-fi, но это тема отдельной статьи. Предполагаем, что соединение между компьютером и телефоном существует. Теперь устанавливаем на телефон вышеуказанные программы и будем начинать.

FingerPlay MIDI

Первая пограмма – FingerPlay MIDI. Кроме основной программы в памяти телефона, она требует установки сервера на компьютере, для создания собственного канала, через который будут передаваться миди-сообщения в виртуальный порт (Midi-Yoke) на компьютере. Для начала настроим ее в телефоне. Запускаем ее, нажимаем на значке настроек (кнопка с шестеренкой) и попадаем во вкладку Settings (рис. 2).


Рисунок 2. Настройки FingerPlay.

Во-первых, устанавливаем Server type – FingerServer. Во-вторых, в Server Address устанавливаем ip-адрес нашего компьютера. Теперь на компьютере разархивируем FingerPlayServer.zip и запускаем run.bat. Хочу обратить внимание, что для его работы необходимо наличие java. Итак, появляется окно, в котором мы видим статус подключения телефона и компьютера. Теперь на телефоне ставим галочку напротив Connect to server и если все правильно, то статус превратится в Connected to 192.168.1.57 (или адрес вашего компьютера). Окно сервера на компьютере тоже изменится, показывая, что устройство подключено (рис. 3).


Рисунок 3. Окно сервера FingerPlay.

Как видим, в статусе – Phone connected, что означает, что телефон подключен, а также отображается на какой выход приходят миди-сообщения (Midi-Yoke 1). Кроме того, в настройках на телефоне, мы можем выбрать другое виртуальное миди-устройство (рис. 4).


Рисунок 4. Выбор миди-устройства для вывода сообщений.

Вот, собственно и вся подготовка. Теперь можно покрутить любой регулятор и в окне сервера появятся сообщения о том, какой параметр изменяется. Теперь самое время перейти в Ableton.

В Ableton нам достаточно выбрать то, миди-устройство, которое указано в FingerPlay (в нашем примере, Midi-Yoke 1) (рис. 5).


Рисунок 5. Включаем Midi-Yoke 1 в Ableton.

Если все правильно, то теперь можно замапить разные контроллеры и кнопки. И касаясь экрана на телефоне, управлять параметрами в Ableton. Например, перейдем в раскладку (Layout) для микшера в FingerPlay (она занимает среднее положение на панели справа, см. рис.6).


Рисунок 6. Раскладка микшера в FingerPlay.

Теперь в Ableton нажимаем Ctrl+M, включается режим миди-маппинга. Нажимаем, к примеру, на регуляторе громкости первого канала в Ableton и касаемся первого регулятора на экране телефона. Если все правильно, в карте маппинга появится новая запись (рис. 7).


Рисунок 7. Новый параметр в карте миди-маппинга.

Нажимаем Ctrl+M для возвращения в обычный режим. И теперь если мы касаемся первого регулятора на экране, у нас изменяется громкость на первом канале в Ableton! (рис. 8).


Рисунок 8. Регулятор на экране телефона управляет регулятором в Ableton.

Вот и все, миссия выполнена. Аналогично можно замапить кнопки, которые находятся в другой раскладке FingerPlay и пользоваться.

Читайте также:  Как из серии фотографий сделать видео

Touch OSC

Это приложение отличается от предыдущего мультиплатформенностью. Его клиент доступен не только для андроида, но и для iOs. А сервер, соответственно, может работать и на mac-совместимых компьютерах. Но я буду рассматривать связку android+windows 7, как и упоминал выше. Сервер для windows можно скачать на официальном сайте по этой ссылке: http://hexler.net/pub/touchosc/touchosc-bridge-1.0.1-win32.zip.

Устанавливаем его в телефон и на ПК, если все верно, то в системном трее на ПК появится иконка TouchOSC bridge (рис. 9).


Рисунок 9. Сервер TouchOSC Bridge установлен и запущен.

Обращаю внимание на то, что данная программа умеет работать не только по миди-протоколу, но и по протоколу OSC. Нас интересует в данном случае миди. Что касается соединения с компьютером — требования те же (см. выше). Теперь перейдем к настройкам TouchOSC на телефоне. При запуске программы сразу запускается окно настроек. Здесь мы кликаем на Midi Bridge (рис. 10) и вписываем ip-адрес нашего компьютера.


Рисунок 10. Настройки Touch OSC в телефоне.

Здесь есть одна сложность, с которой я очень долго промучился. Дело в том, что у меня телефон ни в какую не хотел показывать мой компьютер в списке Found Hosts. Там постоянно отображался 0. Несмотря на это, все заработало замечательно, так что не обращаем на это внимание и продолжаем. Переходим в Ableton.

В Ableton, как несложно догадаться, нам нужно выбрать миди-порт Touch OSC. На этот раз это собственный порт, который появляется в системе после установки сервера (рис. 11).


Рисунок 11. Настройки Touch OSC в Ableton.

Теперь можно пробовать мапить кнопки и регуляторы в Ableton, как указано выше. Аналогично можно использовать наш андроид-контроллер и в других секвенсорах.

Немного об интерфейсе и возможностях

Особых сложностей, как видим, не возникает. Лично для меня самой большой сложностью было законнектить компьютер с телефоном, и то, только в случае с TouchOSC. А что же они по сути нам предлагают в качестве контроллеров? Сразу скажу, что TouchOSC будет посильнее и в плане интерфейса, и в плане уже готовых раскладок.


Рисунок 12. Раскладка Keys в TouchOSC.

Здесь доступно 5 раскладок, в каждой из которых по 3 закладки. На рисунке 12, к примеру мы видим, что есть даже раскладка одной октавы пианино. Поддержка мультитача присутствует. Кроме того, в Touch OSC есть гораздо большее количество контроллеров – тут и клавиатура и всевозможные регуляторы, фейдеры, кроссфейдеры, X-Y-контроллеры. Finger Play, к сожалению, обладает всего несколькими типами контроллеров, клавиатуры нет. И раскладка у него всего лишь одна. Зато, в отличии от Touch OSC, здесь можно собственноручно, без проблем редактировать эти раскладки, создавать свои. Конечно, придется разобраться в синтаксисе, либо использовать онлайн-конструктор (https://dl.dropbox.com/u/1856630/fingerplay/index.html). Хотя он работает, мягко говоря, не очень хорошо. В Touch OSC загрузка раскладок доступна только для iPod, iPhone. Редактирование возможно и на windows. Хотя в сети есть способ как загрузить свою раскладку на андроид-устройство. Но метод довольно сложный.

Что ж, на данный момент обе программы со своими обязанностями вполне справляются. У каждой есть плюсы и минусы, но тем не менее, имея ноутбук, wi-fi и телефон на базе андроид можно успешно использовать телефон в качестве контроллера. Если же выбирать из этих программ, я все же отдаю предпочтение Touch OSC.

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Зачем нужен MIDI порт в 2019 году?

Описываемый MIDI адаптер предназначен для подключения к компьютеру MIDI оборудования, не имеющего собственного USB порта. В основном это MIDI клавиатуры, "железные" синтезаторы и звуковые модули, выпущенные несколько лет назад. Поскольку музыкальная индустрия это отрасль довольно консервативная, огромное количество таких (нужно сказать прекрасных) инструментов до сих пор успешно используется в профессиональных и домашних студиях, и я уверен, будут использоваться не одну пятилетку в будущем. Например я в своей студии использую отличную полноразмерную MIDI — клавиатуру Roland A33 более чем десятилетнего возраста, и она прекрасно работает, но конечно же на ней нет никаких USB портов, а только MIDI вход и 2 MIDI выхода.

Кроме того, такой MIDI адаптер может стать основой для подключения к компьютеру самодельных музыкальных и экспериментальных устройств, работающих по протоколу MIDI — синтезаторов, устройств управления сценическим светом, я даже встречал конструкции "умный дом", которые управлялись по MIDI. Дело в том, что MIDI соединение — это старый, надежный, отработанный до мелочей стандарт. С программной точки зрения это обычный UART (последовательный интерфейс) который на аппаратном уровне поддерживают даже самые "древние" микроконтроллеры. Поэтому он очень прост в программировании. Единственное отличие MIDI от обычного UART — это нестандартная скорость передачи данных. Если в стандартном UART мы имеем сетку вроде 2400, 4800, 9600, 19200, 38400, 57600 и 115 200 бит/с, то для превращения его в совместимый с MIDI оборудованием достаточно настроить порт на частоту 31250 бит/с. Именно с такой фиксированной скоростью работает МИДИ интерфейс. нужно сказать, что в 80-х годах прошлого века, когда вместе с цифровыми синтезаторами появился MIDI, это была довольно высокая скорость. С аппаратной точки зрения MIDI порт это соединение по двум проводам типа "токовая петля".

Читайте также:  Как убрать номер последней страницы в ворде

Зачем делать MIDI порт, если можно купить китайский на Алиэкспресс за 300 рублей?

Действительно, можно заказать в китае миди адаптер по минимальной цене примерно за 5 долларов. Например вот такой:

и он может даже будет работать. Однако последний вариант адаптера, который описывается в этой статье, я сделал для моего знакомого музыканта как раз на замену вот такого китайского, который он купил за 300 рублей. Китайский более-менее работал под Windows 7 но наотрез отказался корректно работать под Win 10. То есть он определялся системой но работал некорректно, программы — секвенсоры работали с ним некорректно, некоторые просто зависали при нажатии на клавишу миди клавиатуры, а некоторые выдавали двойные ноты, не передавалось событие окончания ноты и возникали другие ошибки. Работать было невозможно. В конце концов я сделал человеку описываемый адаптер, взяв из его китайского варианта только кабели с разъемами MIDI. Теперь у человека все работает отлично под десятой виндой. Не факт, что любой купленный на Али подобный адаптер будет глючить, но я с этим сталкивался уже раза три. То есть это — лотерея. Я разобрал китайский адаптер и как оказалось на его плате не была установлена стандартная для MIDI — портов оптронная развязка, MIDI вход был реализован на паре транзисторов. Это не есть хорошо.

Качественные (не китайский ноу-нэйм) адаптеры стоят уже не 5 долларов а намного дороже. Например M-Audio MidisPort будет работать без проблем, но стоит он уже около 45 долларов:

Самой дорогой деталью описываемого в статье миди адаптера является микроконтроллер 18F2550. Стоит он около 5 долларов с Алиэкспресс. Заказать микроконтроллер можно по этой ссылке


Принципиальная схема MIDI адаптера

Основой устройства является микроконтроллер Microchip PIC18F2550. Данный микроконтроллер имеет аппаратную поддержку USB.

MIDI IN и MIDI OUT — пятиконтактные разъемы стандарта DIN (нем. Deutsches Institut für Normung, DIN). такие использовались раньше в советских магнитофонах и назывались "ОНЦ-ВГ"

Конструктивно миди адаптер может быть выполнен в двух вариантах — коробочка с двумя гнездами DIN (MIDI IN и MIDI OUT), либо с гнездами "мама" на коробочке (как на фото выше) так и в варианте китайского или M-audio, о которых я рассказывал ранее, то есть в виде маленькой коробочки с выходящими из нее кабелями и штеккерами DIN — "папа" на этих кабелях. USB гнездо можно также установить в коробке — корпусе, либо использовать кусок USB провода с разъемом от старой мышки или от чего-то другого. Я сделал именно второй вариант, так как были в наличии все кабеля от того самого негодного китайского миди-адаптера.

В качестве коробочки для корпуса адаптера вы можете приспособить любую небольшую унифицированную пластиковую коробочку из радиомагазина, мыльницу или в крайнем случае, оставить его в виде "просто платы" (крайне не рекомендуется). Если у вас есть 3D принтер, то ы можете поступить так, как сделал я — напечатать корпус на 3D принтере. Ссылку на скачивание моделек я поместил в конце этой статьи.

При сборке адаптера важно правильно распаять миди — гнезда и/или кабеля. MIDI порт — это интерфейс типа "токовая петля" и он чувствителен к полярности соединения проводов. То есть если вы перепутаете провода в кабеле то порт работать не будет. На принципиальной схеме показано правильное соединение выходных пинов платы контроллера с гнездами DIN типа "мама" (с дырочками)). На схеме показана правильная распайка для гнезда при условии если вы смотрите на это гнездо сзади, то есть со стороны лепестков для пайки:

Вообще контакты разъема DIN пронумерованы и можно просто следовать правильной нумерации (На рисунке изображена нумерация контактов если смотреть на разъемы спереди:

Оптрон U2 использован типа 4N36 d 6-пиновом корпусе. Можно применить любой совместимый по распиновке оптрон этой серии. Для стабильной работы MIDI входа, возможно, придется подобрать сопротивление резистора R6. В случае с 4N36 у меня получилось оптимальное сопротивление в районе 1. 1,2кОм. Дополнительные пины, обозначенные на схеме как THHG_5 и THHG_4 я применял для установки дополнительного гнезда MIDI THROUG. Это гнездо служит для непосредственной передачи MIDI сигнала с MIDI IN на этот самый MIDI THROUGH, и по моему мнению в случае с компьютерным интерфейсом особого смысла не имеет, поэтому можно его не устанавливать. На плате он не предусмотрен, и для его реализации я устанавливал дополнительную микросхему 561ЛА7 навесным монтажом на проводах, так как не хотелось разводить под этот вариант печатную плату. наличие такого выхода являлось желанием заказчика, не понятно зачем оно ему может пригодиться, обычно гнезда THROUG устанавливают на MIDI инструментах чтобы соединять их в цепочки. Дополнительная микросхема просто играла роль буфера, так свойства соединения "токовая петля" таковы, что просто подключить дополнительное гнездо MIDI TROUG к контактам THHG_5 и THHG_4 нельзя, дополнительное соединение "посадит сигнал" и вход перестанет работать. Повторю еще раз, я считаю MIDI TROUG в таком адаптере бессмысленным, поэтому не привожу схему его соединения, а дополнительные контакты удалять из проекта просто лень. Каких — либо других особенностей схема адаптера не имеет, это обычное простое микроконтроллерное устройство. Микроконтроллер очень желательно устанавливать на панельке. перед установкой микроконтроллера в схему его необходимо запрограммировать (прошить) с помощью любого программатора PIC контроллеров, например вот этого или этого. Ссылку на файлы прошивки вы найдете в конце этой статьи. Если все сделано правильно и без ошибок из исправных компонентов, то схема не нуждается в настройке и начинает работать сразу.

Читайте также:  Насадка для штатива для смартфона

Печатная плата

Печатная плата разведена в программе DipTrace. несколько таких миди адаптеров в свое время я сделал просто навесным монтажом на унифицированных макетных печатных платах. особого значения это не имеет.

Интерактивный 3D просмотр .
Кликните в центре изображения, дождитесь загрузки 3D модели. Крутить: левая кнопка мыши; Размер: колесо мыши.

В моей версии корпус адаптера напечатан на 3D принтере. Он состоит из 2 частей — коробки и крышки. Модели разработаны в SolidWorks. В качестве корпуса можно использовать любую пластмассовую коробочку, например мыльницу.

СКАЧАТЬ архив со всеми файлами проекта (прошивка, схема, печатная плата и модели для печати корпуса)

Постановка задачи

В прошлом веке самым простым путем соединения компьютера и синтезатора по 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 была собрана такая вот схема адаптера:

Работоспособность собранной схемы была проверена следующим образом:

  1. Адаптер был подключен к разъёмам MIDI синтезатора.
  2. У синтезатора было отключено локальное управление (MIDI Local = Off).
  3. После установки перемычки между сигналами 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-редактором. Я вновь обрёл душевный покой.

Ссылка на основную публикацию
Что значит загрузочная флешка
Что такое загрузочная флешка / 8 способов создать загрузочную флешку Что такое загрузочная флешка / 8 способов создать загрузочную флешку...
Чему равна сумма бесконечно убывающей геометрической прогрессии
ЧИСЛОВЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ VI § l48. Сумма бесконечно убывающей геометрической прогрессии До сих пор, говоря о суммах, мы всегда предполагали, что...
Чем стереть автомобильную краску
Автомобили настолько плотно вошли в нашу жизнь, что большинство людей не представляет свою жизнь без персонального транспортного средства. Машина —...
Что значит заблокировать сообщение в телефоне
Текстовые сообщения очень удобны – ведь с их помощью вы можете получить информацию от другого абонента даже в тот момент,...
Adblock detector