用Java发送sysex消息

用Java发送sysex消息,java,midi,javax.sound.midi,sysex,Java,Midi,Javax.sound.midi,Sysex,我想向MIDI端口发送Sysex消息。不幸的是,当我发送它时,根本没有响应。发送常规MIDI消息(ShortMessage)效果很好,但只要我用SysexMessage替换ShortMessage,事情就停止了 MidiDevice midiIn = MidiSystem.getMidiDevice(midiDeviceList[NUMBER]); Receiver rcvr = midiIn.getReceiver byte[] clearMsg = {(byte) 0xf0, 0x47, 0

我想向MIDI端口发送Sysex消息。不幸的是,当我发送它时,根本没有响应。发送常规MIDI消息(
ShortMessage
)效果很好,但只要我用
SysexMessage
替换
ShortMessage
,事情就停止了

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);

为什么端口没有接收到消息或者没有发送消息?

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

最近的一个解决方案是,这只是您添加的另一个依赖项,它将使OSX上的Midi正常工作(并且不会对其他平台造成伤害)。

您能通过环回检查消息是否发送吗?@CL。我该怎么做?我尝试了几个MIDI输入,并监视了所有可用的输入和输出,但什么也没有发生。将输出端口连接到输入端口,发送短消息和SysEx消息,并检查(使用任何音序器)您可以从输入中录制的内容。@CL.我尝试了所有端口(Gervill、实时音序器、OSX的IAC)。短消息可以工作,但没有SysEx。我的假设是没有消息发送,否则我会在我的MIDI监控应用程序中看到它。我想知道这在2018年是否仍然是真的,因为MMJ已经被弃用了。