1

我已经使用这个模板编写了一个编写 MIDI 文件的程序,我现在唯一遇到的问题是更换乐器

此代码段被注释为将乐器设置为钢琴,但我想知道是否有其他乐器可以使用不同的消息输入设置。

//****  set instrument to Piano  ****
    mm = new ShortMessage();
    mm.setMessage(0xC0, 0x00, 0x00);
    me = new MidiEvent(mm,(long)0);
    t.add(me);
4

1 回答 1

3

其他乐器在通用 MIDI 标准中指定,但并非所有合成器都保证支持这些声音。

此外,MIDI 程序更改消息只有 2 个字节,而不是 3 个。查看您链接到的示例模板代码,似乎该setMessage()方法为此提供了适当的覆盖。如果您向此消息写入 3 个字节,则第 3 个字节将被错误地解释为下一条消息的第一个字节。

于 2012-05-28T12:26:47.817 回答