Отправить sysex сообщение с Java
Я хотел бы отправить сообщение Sysex на порт MIDI. К сожалению, когда я отправляю сообщение, ответа нет вообще. Отправка обычных MIDI-сообщений (ShortMessage
) работает просто отлично, но как только я заменю ShortMessage
с SysexMessage
вещи перестают работать.
MidiDevice midiIn = MidiSystem.getMidiDevice(midiDeviceList[NUMBER]);
Receiver rcvr = midiIn.getReceiver
byte[] clearMsg = {(byte) 0xf0, 0x47, 0x7f, 0x15, 0x1e, 0x00, 0x00, (byte) 0xf7 };
SysexMessage sysMsg = new SysexMessage();
sysMsg.setMessage(clearMsg, clearMsg.length);
rcvr.send(sysMsg, -1);
Почему порт не получает сообщение или почему оно не отправляется?
1 ответ
Более недавнее решение - https://github.com/DerekCook/CoreMidi4J, это просто еще одна добавляемая вами зависимость, которая заставит Midi на OSX работать (и не причинит вреда на других платформах).
Причиной того, что сообщения SysEx не были отправлены, является то, что OSX имеет сломанную систему MIDI. Он не может отправлять сообщения SysEx. MMJ, кажется, библиотека для решения этой проблемы.