我正在使用 JavaSound API 将 MIDI System Exclusive (Sysex) 消息发送到外部 MIDI 设备(电子键盘)。根据雅马哈手册,点亮其中一个键的数据是这一系列字节:F0 43 7F 00 00 03 00 41 F7。
根据 SysexMessage 上的 JavaDoc,为消息发送数据的正确方法是使用setMessage(int status, byte[] data, int length)
. 在这种情况下,F0(或十进制的 240)是状态,其他的都是数据——包括末尾的 F7(十进制的 247),它表示 Sysex 消息的结束。
问题是Java中的字节被限制在-128..127的范围内,所以我不能在字节数组中发送F7。但是 SysexMessage 的 JavaDoc 似乎没有注意到这一事实,它说:“如果该消息包含该消息的所有系统专有数据,则它应该以状态字节 0xF7 结尾。”
关于如何正确发送最后一个字节的任何建议?我是否误解了 SysexMessage 的 JavaDoc?