使用Java发送sysex消息

时间:2014-07-13 17:52:16

标签: java midi javax.sound.midi sysex

我想将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);

为什么端口没有收到邮件或为什么没有收到邮件?

2 个答案:

答案 0 :(得分:1)

未发送SysEx消息的原因是因为OSX的MIDI系统已损坏。它无法发送SysEx消息。 MMJ似乎是一个解决这个问题的库。

答案 1 :(得分:0)

最近的解决方案是https://github.com/DerekCook/CoreMidi4J,这是您添加的另一个依赖关系,它将使Midi在OSX上正常工作(并且在其他平台上无害)。