Обратная связь для миди-контроллера

Efremoff
Offline
Зарегистрирован: 11.02.2015

Имеется миди-контроллер, собранный на ардуино-нане, простой - 8 кнопок, 6 потенциометров (которые надо бы на энкодеры переделать). нажатие кнопки - высылает в serial команду миди, которая принимается софтиной, и обрабатывается. Все работает как нужно - и кнопки и потенциометры. 

Но вот вопрос основной - можно ли как-то получать "обратную связь" от софта на компе? чтобы знать какие эффекты в софте включены-выключены, например хотя бы на светодиод. Я пробовал примеры из библиотеки миди Callbacks - зажигать светодиод при получении миди-команды - но либо не работает, либо получается фидбек между входом-выходом порта виртуального (использую lookMIDI и Hairless midi serial), либо не получают никаких данных... 

Я не сильно понимаю в данном случае откуда даже начать... Но разделил бы проблему на 2 части:

1. Настройка софта и ардуины на прием данных по миди. 

2. Парсинг получаемых по миди данных. 

b707
Offline
Зарегистрирован: 26.05.2017

Efremoff пишет:

1. Настройка софта и ардуины на прием данных по миди. 

у вас по сути на ардуино нет миди, у вас вместо него сериал. Настройка Сериала на примем - это одна строчка Serial.begin()

Цитата:
2. Парсинг получаемых по миди данных. 

опять же - нужен не парсинг по миди, а парсинг по сериал...

Efremoff
Offline
Зарегистрирован: 11.02.2015

Может будет более понятно, если попробую расписать как бы хотелось чтобы оно работало:

При нажатии на кнопку происходит отправка ивента sendNoteOn c номером ноты, громкостью и каналом. При отпускании кнопки - происходит SendNoteOff той же ноты на том же канале. Кнопки обычные, тактовые, без фиксации. Именно нажатие (а не нажатие-отпускание) приводит к включению в программе на компе некого эффекта в пресете. Повторное нажатие приводит к его выключению.

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

Efremoff
Offline
Зарегистрирован: 11.02.2015

b707 пишет:

у вас по сути на ардуино нет миди, у вас вместо него сериал. Настройка Сериала на примем - это одна строчка Serial.begin()

Ок, как можно проверить - высылает ли что-то софтина по миди?

 

b707
Offline
Зарегистрирован: 26.05.2017

Efremoff пишет:

При нажатии на кнопку происходит отправка ивента sendNoteOn c номером ноты, громкостью и каналом. При отпускании кнопки - происходит SendNoteOff той же ноты на том же канале. Кнопки обычные, тактовые, без фиксации. Именно нажатие (а не нажатие-отпускание) приводит к включению в программе на компе некого эффекта в пресете. Повторное нажатие приводит к его выключению.

давайте для начала определимся - вы хотите научиться делать это сами, или нужно чтобы кто-то написал код? Я совсем недавно одному клиенту писал именно разбор сообщений МИДИ с Сериала - могу взяться. если у вас заказ.

Цитата:
И хотелось бы как-то получать информацию на контроллере о том - включился эффект (загорелся светодиод) или выключился (погас). И если я мышкой в софте выключаю эффект - чтобы это тоже отражалось на состоянии светодиода контроллера. 

тут главный вопрос не в ардуине - а в том, отсылает ли программа, запущенная на ПК - статус своей работы в компорт. Просто ели этого нет - начинать надо с переписывания софта на ПК. без этого вы никакой статус на Ардуине не увидите

Efremoff
Offline
Зарегистрирован: 11.02.2015

Открыл Hairless и начал кликать в софтине - и когда я кликаю кнопкой на контроллере - происходит видимая комуникация (и в логах и измененением цвета иконок при выбранном порте), а когда я кликаю в софтине мышкой - ничего. Вообще... Пошел читать мануал на софтину в вопросе "а вышли мне чот по миди"... 

Efremoff
Offline
Зарегистрирован: 11.02.2015

Да, я хочу научится делать это сам. ) я же сделал сам контоллер который высылает данные и вполне успешно. )

Но если софтина ничего не шлет в миди-выход, тогда да, печаль... Софтина фирменная - Overloud TH-U, и изменять ее не реально. 

Efremoff
Offline
Зарегистрирован: 11.02.2015

Мда, походу вопрос закрылся, не начавшись... :(