Как определить конкретный MIDI-контроллер в Java MIDI?

#java #audio #midi

#java #Аудио #midi

Вопрос:

Я экспериментирую со следующим кодом:

http://www.jsresources.org/examples/MidiNote.java.html

для управления моим MIDI-контроллером Novation Launchpad.

В принципе, меня интересует включение светодиодов, просто отправляющих MIDI notes / cc.

И эта часть работает — после изменения кода для отправки правильного MIDI на панель запуска — я могу добиться своего эффекта. Однако это работает только тогда, когда я использую MIDI-устройство по умолчанию.

Я хотел бы закодировать обнаружение Lanchpad в коде Java и отправлять сигналы непосредственно на них..

Я надеюсь, что это достаточно понятно 🙂

Комментарии:

1. Насколько мне известно, в Windows единственный способ использовать MIDI-устройство — по имени. Отображается ли новация как что-либо иное, кроме «USB MIDI-устройства»?

2. Хм… Я проверю… Как насчет количества устройств? В других приложениях они представлены с номером. В любом случае, я проверю, спасибо.

3. любое число — это просто порядок, в котором они перечислены. Вы обнаружите, что если у вас есть несколько устройств с одинаковыми именами, то их порядок часто будет путаться, и программное обеспечение не сможет определить, что есть что. Некоторые устройства можно проверить с помощью SysEx. APC40, например, имеет необязательную процедуру установления связи.

Ответ №1:

Как предполагают другие, вы могли бы определить это по имени устройства на шине USB. Для этого существует проект http://javax-usb.org. Его последняя версия выпущена в 2008 году, поэтому я не уверен, насколько она пригодна для использования или жива.

Я просмотрел справочник программистов Launchpad (доступен в загрузках Launchpad), где нет упоминания о SysEx для обнаружения.

Если вы не хотите вмешиваться в работу USB и если вас устраивает «полуавтоматическое» обнаружение, вы можете попросить пользователя нажать кнопку на launchpad, а затем прослушать на всех MIDI-устройствах сообщения 90 (примечание включено) или B0 (изменение элемента управления), которые генерируют кнопки (Справочник программистов Launchpad, стр. 11). Из какого интерфейса приходит сообщение, что подключена панель запуска.

Вы могли бы получить лучший результат с сообщением B0, поскольку это изменение элемента управления, а его значения варьируются на панели запуска от 68 до 6F (hex), и это более специфично для контроллера, чем примечание к сообщению.

Комментарии:

1. Умная идея с нажатием кнопки 🙂