Как получить текущее состояние миди-устройства?

Как я могу запросить у миди-устройства текущее состояние программы, громкости и т. д.? Я пытался найти его в спецификации Midi, но безуспешно. Мне в основном нужно получить текущий инструмент (фортепиано и т. д.) от цифрового пианино, подключенного через USB midi.

Java, кажется, может это сделать:

http://docs.oracle.com/javame/config/cldc/opt-pkgs/api/mm/jsr135/index.html?javax/microedition/media/control/MIDIControl.html

Как они это делают?


person Oldrich Svec    schedule 30.09.2012    source источник
comment
Этот класс Java не делает того, что вы думаете. Он не будет работать на устройстве, подключенном к внешнему MIDI-порту.   -  person finnw    schedule 30.09.2012
comment
Некоторые MIDI-устройства реализуют сообщения, которые позволяют вам запрашивать текущие настройки, но это очень редко.   -  person finnw    schedule 30.09.2012


Ответы (1)


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

У некоторых синтезаторов есть sysex-сообщения, которые можно использовать для этого, но не у всех, и это сообщение варьируется от устройства к устройству, от производителя к производителю.

Лучшее, что вы можете сделать, это отправить новые значения CC, установить патч и т. д. и сохранить то, что есть. Если он изменится на стороне синтезатора и у вас настроен обратный путь, вы можете получить его и обновить то, что вы сохранили.

person Brad    schedule 30.09.2012