MIDI мониторинг за аппартным Arduino nano, или что не так с скетчем?

Тут нет рейтинга, не страдайте.

как раз в оригинальной версии скетча = аппаратно на korg DW8000 оно работает как часы, а тут поменял device ID и не посмотрел в глубь в MIDI-inplementation - как программа встала или работает на половину, а запустить ее в стерильных “лабораторных” условиях - потребовалось еще куча обвесов
как то так…

это как раз в к вам не относится… спасибо и на этом!

@andriano а что не сразу начать с Вильяма нашего Щекспира?:

  • что такое MIDI?

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

2 лайка

@BOOM забей! не в коня корм… лучше запей!

Ну пить мне или нет - это я без тебя решу.

я тут народ к трезвости седьмой год призываю!!!

Ну, для этого совершенно не нужно 400 строк кода. Достаточно примерно следующего:

void setup() {
Serial.begin(31250);
}

void loop(){
if(Serial.available()) Serial.write(Serial.read());
}

Можно то же самое, только по-русски?

А что должны?
Вы об этом где-то писали?

Прежде, чем “исправлять проблему” ее сначала надо сформулировать.

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

Дело в том, что MIDI я себе более или менее представляю, а вот что такое MIDI мониторинг, не знаю.

@Vladistone, то, как Вы начали тему, вероятно, можно было обратиться к к автору того проекта, о котором Вы говорите. Здесь же ни у кого детально разбираться в этом проекте желания нет. Соответственно, если Вы рассчитываете на помощь, то именно Вам нужно подробно разжевать существо проекта, а не надеяться, что опубликованная Вами ссылка окажется достаточной.

Я себе представляю сложившуюся ситуацию примерно так:
У Вас возникла какая-то потребность, суть которой Вы сформулировать не хотите.
Вы нашли проект, который, как Вам представляется, при незначительно доработке способен удовлетворить Вашу потребность.
Но что-то пошло не так. Автор проекта недоступен, вот Вы и решили обратиться на форум Ардуино, но почему-то считаете, что здесь хорошо знакомы с выбранным Вами проектом и, кроме того, хорошо представляют себе Ваши потребности. Вот по этим двум пунктам Вы заблуждаетесь.

Думаю, прежде всего Вам необходимо сформулировать свою потребность, т.е. то, что Вы рассчитываете получить в результате реализации своего проекта (а не того чужого пргоекта, что Вы нашли).
Дальше, возможно, потребуется сравнить эти два проекта. А, может, и нет. Найденный Вами проект не производит впечатление надежного. Вполне вероятно, что проще будет сделать новый проект, который удовлетворяет конкретно Вашу потребность, с нуля.

И снова - здравствуйте!

я бы для начала таких скоропостижных решений не давал, а то @BOOM тут уже срефлексировал неудачно в самом начале:

потому к нему и отнощение такое…
по вводным условиям мы имеем Arduino nano - которое в принципе не способно одновременно использовать serial port с MIDI, этот вариант я назвал в описании "вариант 2

либо надо еще городить обвесов/shield для перехвата таких событий как Serial.write(Serial.read()
sorry за мой “французкий” - в терминах кодирования не особо знаком,…

при трансляции MIDI наблюлается прохождение трафика с LED MIDI IN и OUT на USB2MIDI интерфейсе (т.е. что то там прередается и принимается - сингнализация подвержает это). тоже самое сигнализируют LED Tx Rx на Arduino…

в коде прописано что должно именно так и работать… я доверяю автору кода, который сам на своем примере этого добился и поделилися с аудиторией… я тоже в точно таких же условиях на korg EX8000 - это получаю… код работаспособен, (EX8000 и DW8000 являются однотипными “железяками” и у них даже device ID - один и тот же…)

например? назовите ваши доказательства © Анрнольд Щварцнегер “красная жара”

ну вот и познакомились!

именно это я и описал выше, и именно для вас… но вы даже эту инфу не читали, но словоблудием настучали по клаве на целый роман…

ну так что… конструктивно кто то может дать рекомендации по поводу:

  • есть ли возможности исправить узкие места в коде? для трансформирования CC#2SysEx?
  • если возможность внедрить отладочный код и ловить баги по брейк-поинтам? с учетом того что это Arduino nano, с его ограниченными возможностями по портам,… или
  • необходимо перенести код на другое “железо” для отладки? например какое?
  • ну и по обвесам USB2MIDI интерфейсу - я понимаю, что на таком оборудовании - много чего может не проходить и не принимать из за бюджетной элементной базы, но тогда надо рассматривать какой то другой вариант отслеживания midi или serial приема-передачи данных…
    но это самый последный вариант, в случае фиаско всех остальных подходов к MIDI-мониторингу

Для отладки и дебага, как правило, требуется больше ресурсов, чем для финального изделия.

Если нет опыта с вывертами на Nano - используйте Mega2560.

И упрощайте все для начала, не нужно сразу в высокие материи лезть.

Вообще, тут проблема, как я понял, сводится к одному - входящий в систему по UART валидный пакет не порождает исходящего валидного пакета?

Коллеги, у меня реплика так сказать, “по порядку ведения” (старики поймут )

К ТС
обычно не принято удалять свои комментарии, если на них уже ответили другие участники. Этим вы искажаете историю дискуссии и в принципе, это считается неэтичным.

Все
простите что влез

вы имеете в виду шины UART USB2MIDI интерфейса? или Nano?
если мы про интерфейс USB - то там рабочий девайс, и все из CC# передается, а вот исходящий с Nano - не генерится как это задумано кодом, а отправляется обратно тот же самый 1:1
как то 0xB0 0x05 0x0D - обратно возвращается в первозданном виде, согласно MIDI-монитору…

сама идея отдалочных блоков мне интересна, и исходя из этого хотелось бы определиться с местами внедрения и IDE для этого (работаю под MacOS и доспутно Xcode, а так же script debugger и UI brouser

Очень много суеты я вижу.

Код куда заливаете - в интерфейс или в МК? Мега - один сериал вход, второй - выход, третий - дебаг.
Потом сериалпринты по коду: что вошло, на каком условии тормознулось. Затем уже выводы делать - почему и как нужно править.

естественно в Nano ч/з USB, потом подключаю USB2MIDIи гоню туда MIDI по i-face
на счет Mega - понятно, но пока в арсенале Nano и UNO что в принципе одно и тоже…
поэтому хотелось бы увидеть рекомендации отладки кода не выходя за границы PC сначала, а потом уже с подключением аппаратной части

все это делается в разы проще. Старайтесь меньше говорить сами и больше слушать, вам в этой ветке уже кучу советов надавали, а толку пока не видно.
Вы похоже не проектом интересуетесь, а скорее как себя “покрасивше” в этом проекте показать…

вас не поймешь, то дайте больше инфы, то- спасибо не надо… или “мы читаем по-диогонали” но все про MIDI не знаем…но советы даем!)))

С точки зрения отладки проблема сформулирована @sadman41 в сообщении #77

ну это я сам догадался… совет так себе - поверхностный
а все остальное записано под знаком вопроса:

Если вы эстетствуете по букве форумаведения

с точки зрения программиста для решения этой задачи про миди вообще ничего знать не надо. Есть входные пакеты данных, есть выходные. При получении на вход пакета ABC на выходе должно быть XYZ А что внутри - МИДИ или банковские транзакции - дело абсолютно второстепенное