我试图通过向上或向下移动钢琴卷帘编辑器中的图形音符(矩形)来按顺序编辑现有 MIDI 音符的音高。阅读 API 和在线文档,并没有非常具体地说明如何编辑现有笔记。据我所知,我需要使用 setMessage() 方法来覆盖现有的 ShortMessage。这是我现在得到的:
public void changePitch(int pitchUpOrDown) {
MidiMessage message = this.getMessage();
message.setMessage(___?, ____?, ____? + pitchUpOrDown, ____?);
}
我通过鼠标拖动音符从 JPanel 调用 changePitch(),并且我发送 +1 或 –1 作为调整音高的增量。我找不到的是 setMessage() 调用的其他四个空白参数中需要输入的值。从逻辑上讲,我想保留命令、通道和时间戳的现有值,但是如何访问这些现有值以便将它们放在空白处?我尝试过诸如 message.command 或 message[0] 等,但它们不起作用。此外,在文档中,set Message 的参数显示为 (byte[] data, int length)。这些 args 的解释真的很模糊,而且它们肯定与我一开始用来创建 ShortMessage 的 args 不匹配。有什么建议么?