Хотя судя по Монитору, вы шлете СС по каналу 0хВ0 - так чего вы хотите, ничего работать и не должно.
не отвлекайтесь, это не имеет отношения к делу
Нет там никакой корявости, самый обычный синтаксис
это как раз про те сообщения которые идут не по назначенному каналу данного синтезатора.
т.е. - в случае обнаружения “чужих” сообщений с номером канала !=dwChannel - игнорировать!
Что “это” ?
это почему?
0xB0 - это и есть команда (или case - #005) - Portamento time
вот он описан здесь 328 строка кода:
5 case 47: // Portamento (5b)
как связано 0хb0 и число пять?
внимательно читайте всю строку монитора -
Port1 Ch 1 CC и далее расшифровка этого CC как
0xB0 0x05 0xOD [005 Portamento Time]
На вашей картинке такого нет.
Но в любом случае, там либо канал 1, либо 0xB0
А должен быть ноль.
Понимаете, вы можете спорить со мной об этом - но компьютер - он тупой. Сказано отбрасывать все пакеты, где параметры начинаются не с нуля - он так и будет делать.
Вообще было бы неплохо подключить к этой функции отладочный вывод и выводить содержимое СС в консоль.
Тогда сразу станет понятно, какие значения вам там прилетают
Или можно просто поменять переменную dwChannel на 0xB0 и посмотреть, не полетят ли сусексы
Но это уже гадание на кофейной гуще.
Я на этом пожалуй закончу.
это нужно погружаться в кодировку MIDI,
обьясню на этом hex-примере
0xB0 - (из первой части MSB) - B - это именно что команда принадлежит “Control/Mode Change” категории или СС# - аббвериатура, и далее часть “0” - это и есть channel №1
далее идет параметр 0x05 - это есть СС№5 - или [005 Portamento Time]
и конец 0x0D - это value этого параметра - т.е. на сколько Портаменто - портаментное! от 0 до 127
Спасибо за разъяснение.
Я ж говорил что не секу в этом
Значит все мои высказывания можете забыть.
это я как понимаю - уже разговор о более серьехных IDE? или есть встраиваемый блок в Arduino?можно по-подробнее с этого места…
входящие СС# мы сразу видим по отправке c компа на переферию интерфейсную и то ччто приходит или молчит/игнорирует входящие сообщения по жкранам монитора (MIDI OUT и MIDI IN) т.е. - входит и выходит…
Serial.println () в подозрительном месте. Не нужно сущностей добавлять и лезть в дизассемблер, Аиду и ставить брекпойнты.
как его внедрить в код? Это же надо вместе с билиотекой прикручивать туда… а тут еще под ногами мешается MIDI.h со своими “правила игры”
Ну, какие-то знания нужно иметь таки. Это не сабельная атака эскадроном на беляков.
Начните с доступного в ide кода - около условий печать ставьте и смотрите на реальные значения переменных.
Не ждите, что кто-то вам скажет “подержи-ка моё пиво, щас я все сделаю”.
я же здесь терпеливо пытаюсь несведущих в краткий ликбез освоить по MIDI - ничего не поперхнулся что лишнее “пиво мое” кто то подержал на халяву
Есть хорошая поговорка
- руки на 360 град. невозможно раскинуть - они сломаются…
Я же вас ноты с “мидями” не прошу выучить? прежде чем в эту ветку форума комментировать?!
так же и я прошу помощи/подсказки по той области знаний где у меня “слабо”
И? Вам нужно, вы и объясняете.
Я вообще удивлён, что в такую тему кто-то резко полез помогать.
ну по большей части все ринулись на “новую тему” - рейтинг свой улучшить… знакомо… по тем форумам где я ногой двери отрываю…
Для начала хотелось бы знать, что такое “MIDI мониторинг”?
Что такое "“аппаратный Arduino nano”?
Непонятно в первую очередь, зачем это нужно.
А по поводу скетча - как известно, программа работает в точности так, как она написана программистом, хотя это не всегда совпадает с тем, как программист хотел написать.
Поэтому если со скетчем “что-то не так”, то именно Вам следует написать, что же именно “не так”. Другим словами, чем поведение скетча отличается от того, что Вы от него ожидали?
А ну-ну…
Пожалуй больше я за счет вас рейтинг улучшать не стану.