USB-MIDI (DIN5) на Arduino

dim3740
Member
Сообщения: 32
Зарегистрирован: 24 янв 2016, 09:55
Reputation: 3
Старый ник: dim3740
Откуда: Уфа

USB-MIDI (DIN5) на Arduino

Сообщение dim3740 » 09 апр 2017, 11:21

Токовая МИДИ петля по спецификации подразумевает оптронную развязку на входе. Но вот есть проект в сети (ИМХО есть и аналогичные)
http://cyfrowogitarowo.pl/wp-content/up ... torial.pdf
где вроде бы кабели подсоединены к UNO напрямую на RX (речь идет именно по чтению данных! По передаче все работает - проверил). Это как понимать? :shock:

Аватара пользователя
mrf
Member
Сообщения: 165
Зарегистрирован: 15 окт 2014, 17:54
Reputation: 94
Старый ник: mrf
Откуда: Екатеринбург

Re: USB-MIDI (DIN5) на Arduino

Сообщение mrf » 09 апр 2017, 15:39

можно без оптронов, но будет приятнее, если синты не будут гореть, фонить и бить током того, кто в них играет). для этого нужно рассматривать не схему миди, а схему студии целиком. не обязательно использовать 6N138, я делал на LTV356 (что было в местных радиотоварах), проще, меньше и дешевле.
ф2.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

dim3740
Member
Сообщения: 32
Зарегистрирован: 24 янв 2016, 09:55
Reputation: 3
Старый ник: dim3740
Откуда: Уфа

Re: USB-MIDI (DIN5) на Arduino

Сообщение dim3740 » 09 апр 2017, 16:06

Понятно. Да, подтверждаю, что МИДИ протокол с т.з аппаратной составляющей весьма надежен, если ненасиловать типа километром кабеля и т.п. Поэтому, для формирования эпюр сигналов\фронтов\распознавания пакетов развязка не играет роли. Хотя, якобы, именно "возвратный ток" в петли может повысить помехоустойчивость и поэтому "петлей" не стоит пренебрегать. ОК! Может есть опыт в создании конвертера по сабжу? Я много сделал девайсов на DIN5, сплиттеров, мергеров и т.п. Потом на ардуине соорудил хост USB в DIN5. Тестю... Но скоро встанет и обратная задача - дин5 в ЮСБ. Вот как бы ее решить.... ?

Аватара пользователя
mrf
Member
Сообщения: 165
Зарегистрирован: 15 окт 2014, 17:54
Reputation: 94
Старый ник: mrf
Откуда: Екатеринбург

Re: USB-MIDI (DIN5) на Arduino

Сообщение mrf » 09 апр 2017, 21:19

я понимаю ардуину как мега328 с юсб-ком конвертером. однако есть ардуинки с навороченными атмелами с прямым подключением юсб в чип. соотв колхозить что-то с юсб можно только на последних, но я работал с стм32, делал юсб-девайс. у них нужно переписать стоковую usb-cdc либу. по сути там дескрипторы самая проблемная штука. дальше просто фифо и парсер пакетов. хост не делал, но там отличие, что нужно не писать правильно дескрипторы, а писать алгоритм, который их правильно парсит и работает с эндпоинтами так, как написано в дескрипторе. в либе тоже это все есть, просто заточено под cdc (стшный ком-порт).
как вариант еще просто поискать готовые проекты, и выдрать оттуда.

Аватара пользователя
Skinny
Member
Сообщения: 167
Зарегистрирован: 01 авг 2016, 14:09
Reputation: 131

Re: USB-MIDI (DIN5) на Arduino

Сообщение Skinny » 09 апр 2017, 22:57

по поводу оптронов подтверждаю - у меня вообще ЛЮБЫЕ оптроны работали в миди, (даже диод-фотодиод) один фиг в них во всех стоит ик-светодиод и почему бы ему не светиться от 5 вольт через 220 ом? так что это какая-то надуманная проблема, полторы детальки - и нормальная развязка оптическая. она нужна не только чтоб не спалить эквип, а еще и из соображений чтоб земляная петля не вышла, иначе получается 2 соединения, сначала через аудио-провода, потом через миди, и вот второе ну нафик не нужно, по этому заиметь тут гальваническую развязку - это прям оч хорошо)) не важно даже какой там длины провода и тд - ну не помешает полюбому.

начет ардуины и усби - посмотрите digispark, хз возможно там это сделать или нет, ну если можно - было бы круто)

Отправлено спустя 2 минуты 41 секунду:
на у-трубе валяютс видяшки где с помощью этой хрени USB клавиатура эмулируется, по крайней мере.

dim3740
Member
Сообщения: 32
Зарегистрирован: 24 янв 2016, 09:55
Reputation: 3
Старый ник: dim3740
Откуда: Уфа

Re: USB-MIDI (DIN5) на Arduino

Сообщение dim3740 » 10 апр 2017, 18:57

Вопрос актуализируется))) Даже выложил свой ролик на Ютубе, может кто подтянется к сабжу….
https://www.youtube.com/watch?v=RcusRToKMkc
Исторически, всегда «боялся» ЮСБ. А на Динах переделал много. Но, современные девайсы (сделал оргАн на МИДИ клавах KORG, а там только ЮСБ) требуют разнообразного подключения и моих клав (скоро будет с десяток:)), и вообще, нахождения в тренде интересов юзеров. Если рассматривать ЮСБ как тот же последовательный интерфейс, то сложностей с пониманием не должно быть. Но, если ДИН есть однонаправленный – есть отдельные кабели и входа, то ЮСБ – двунаправленный. Кроме того, нужен именно хост, под которым я понимаю, запрос/чтение дискрипторов подключенного устройства, и только тогда – установление с ним соединения. Поэтому всегда мирился с высокими стоимостями таких девайсов –
http://www.kentonuk.com/products/items/ ... host.shtml 77 евро
http://www.serdashop.com/USBMIDIHost - кустарный вариант 45 евро
Но «на шару» соединив Ардуино UNO и USB HOST удивился, что все заработало (ну почти….). Бюджет порядка 800 руб, что совсем приемлимо. Но уйма недостатков – это и 3,3 В что требует доппитания источника (МИДИ клавы), это и не все устройства читаются, это и проблемы передачи через промежуточный ЮСБ ХАБ. Далее, ЮСБ хост закупил и другой (небольшая платка) , и ее можно подвязать к Ардуино МИНИ. Есть и Digispark в ящике… Но, ИМХО, его ЮСБ разъем никак не сделаешь интерфейсным. Точнее, он «ЮСБ» только для программирования. Но, я, повторяю, многого не понимаю пока… Рад общению! (Ардуино не панацея, - просто так обозвал пост).

Аватара пользователя
mrf
Member
Сообщения: 165
Зарегистрирован: 15 окт 2014, 17:54
Reputation: 94
Старый ник: mrf
Откуда: Екатеринбург

Re: USB-MIDI (DIN5) на Arduino

Сообщение mrf » 11 апр 2017, 14:42

в юсб есть стандартные классы, а есть самоделия. особенно примечателен здесь подкласс аудио - миди. насколько я понял, это один из немногих классов, который из коробки поддерживается всеми операционками - вин/мак/линь. если класс нестандартный, то винда просто смотрит пид/вид и просит юзера накатить драйвер. большинство старых синтов/клавиатур нестандартные, несмотря на то, что аудио класс один из самых древних.
если есть желание серьезно заняться разработкой, то лучше всего подойдет stm32f4discovery. плата содержит отладчик, немного дорогая, но самая попсовая, может юсб девайс и хост, а если понравится писать код, то можно на ней написать синт. ну или залить готовый.
очень поможет в освоении всего этого утилита просмотра дескрипторов http://www.thesycon.de/eng/usb_descriptordumper.shtml и windows event viewer. ну или специализированный юсб логгер.
самое сложное - внимательно читать стандарт. очень внимательно. ну и понимать абстрагирование, ооп и указатели.

dim3740
Member
Сообщения: 32
Зарегистрирован: 24 янв 2016, 09:55
Reputation: 3
Старый ник: dim3740
Откуда: Уфа

Re: USB-MIDI (DIN5) на Arduino

Сообщение dim3740 » 12 апр 2017, 17:41

Да я по большей части музыкант))) и не вытяну разработку (правда, на музфоруме пишу, что электронщик:)) В наличие есть 2 платки дискавери, но так не разу и не включал. Можете их охарактеризовать в применении к сабжу? Но всякие синты не нужны. ну максимум, захотелось добавить в "преобразователь" энкодер/кнопки/диспейчик и посылать пресеты вдовесок. Правда тогда возникает вопрос о программировании этих пресетов/изменении.... а это тянет интерфейс с компом, потом написание визуального редактора на С# для удобства и т.п. Все это я уже проходил, но только по ДИН5.
дискавери.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
mrf
Member
Сообщения: 165
Зарегистрирован: 15 окт 2014, 17:54
Reputation: 94
Старый ник: mrf
Откуда: Екатеринбург

Re: USB-MIDI (DIN5) на Arduino

Сообщение mrf » 12 апр 2017, 22:28

походу на обоих камни без юсб, но посмотрите в даташите на установленные микрухи. я их не помню все наизусть))

Аватара пользователя
supchikov
Member
Сообщения: 2096
Зарегистрирован: 27 авг 2013, 22:51
Reputation: 334
Откуда: Нижний Новгород

Re: USB-MIDI (DIN5) на Arduino

Сообщение supchikov » 04 июн 2017, 21:06

Кстати, заказал тут себе ардуинку, для других, немузыкальных целей, с небольшим обвесом, но пока жду, пришла идея попробовать залабать себе небольшую тулзовину для работы с миди.
Родилась идея из того, что плотно начал юзать связку из monomachine и volca kick, но наткнулся на "особенности" MIDI sequencer mnm. Точнее его логики при работе с kit, локами, отправкой midi cc сообщений. В том числе, из-за того, что при постановке лока сначала передаётся нота, а потом уже сообщения CC, плюс из-за того, что CC передаются только при смене kit и только если значения меняются в пределах одного паттерна, что при отсутствии в кике program change и переключении пресетов по midi совсем печально. Конечно это обходится с помощью CC, но требует ощутимого количества телодвижений, совсем некрасиво, что творчеству нифига не способствует, ну ни разу.
Вот и родилась идея, реализовать на ардуинке тулзовину, включаемую в разрыв между mnm и volca, которая принимала бы со стороны mnm сообщения program change с определённым номерами и с другой стороны кидала бы на volca - набор midi cc, который бы соответствовал нужному мне пресету(благо в кике все полностью мидировано), плюс осуществляла бы сквозную передачу нотных сообщений от mnm.
Почитал я туториали по ардуинке, на первый взгляд задачка совершенно несложная, можно ещё много чего наворочать кроме хранения пресетов и передачи, учитывая, что для своих задач я уже заказал и экранчик и всякое, можно реализовать накрутку и сохранение паттернов, понятно, что применимо это не только для кика, а как ни странно, для большинства драммашинок.
Но тут другой вопрос, как с задержками отлова событий ардуинкой по серийному соединению, их обработкой, выводу назад? Алгоритм элементарный, описал выше. Отлов события и либо трансляция по простенькому условию, либо добавка нескольких бит и опять таки сквозная передача ноты. Стоит вообще морочиться? Есть у кого опыт? Просто не хотелось бы терять время на заведомо провальную идею?

Аватара пользователя
mrf
Member
Сообщения: 165
Зарегистрирован: 15 окт 2014, 17:54
Reputation: 94
Старый ник: mrf
Откуда: Екатеринбург

Re: USB-MIDI (DIN5) на Arduino

Сообщение mrf » 05 июн 2017, 04:41

ты набор пэтчей хочешь хранить в самой ардуинке? рассчитывай еепром размер для установленного камня и объем даннных на пэтч для кика. у некоторых камней его мало, но можно поставить флэшку или доп. еепром микросхему. или сд-карту с фатом) также будет небольшая задержка при прохождении. не совсем понятно, как ты будешь в ардуину заливать наборы СС?

Аватара пользователя
supchikov
Member
Сообщения: 2096
Зарегистрирован: 27 авг 2013, 22:51
Reputation: 334
Откуда: Нижний Новгород

Re: USB-MIDI (DIN5) на Arduino

Сообщение supchikov » 05 июн 2017, 15:23

Да за объём памяти не беспокоюсь, там копейки. С заливкой наборов, тоже третье дело, хоть с компа на первом этапе заливать, дальше допилю. Больше волнует задержка в обработке событий.
Я просто не очень понимаю, что там внутре, хм этого думателя, неонка видимо :) Лень про архитектуру и принципы работы читать.

Аватара пользователя
mrf
Member
Сообщения: 165
Зарегистрирован: 15 окт 2014, 17:54
Reputation: 94
Старый ник: mrf
Откуда: Екатеринбург

Re: USB-MIDI (DIN5) на Arduino

Сообщение mrf » 05 июн 2017, 18:27

при работе с миди основные задержки - это прием и передача сообщения. по сравнению с ними даже самый дохлый проц реактивный. соотв 31250 Гц это 32мкс. 320мкс на байт и 960мкс на трехбайтовое сообщение. общая задержки порядка 1мс если не совсем коряво писать код.

Аватара пользователя
supchikov
Member
Сообщения: 2096
Зарегистрирован: 27 авг 2013, 22:51
Reputation: 334
Откуда: Нижний Новгород

Re: USB-MIDI (DIN5) на Arduino

Сообщение supchikov » 05 июн 2017, 20:46

Ну это приемлемо, если только там каких косяков в реализации последовательных соединений нет.

Аватара пользователя
Skinny
Member
Сообщения: 167
Зарегистрирован: 01 авг 2016, 14:09
Reputation: 131

Re: USB-MIDI (DIN5) на Arduino

Сообщение Skinny » 07 июн 2017, 14:45

миди это вообще UART, и фактически в контроллерах где он есть аппаратный - будет всё как надо, без особых там задержек... не парься))


Вернуться в «DIY»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость