如何在编写MIDI文件时更改乐器?

时间:2012-05-27 07:00:58

标签: java midi

我使用this模板编写了一个写入MIDI文件的程序,我现在唯一的问题就是更换乐器

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

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

1 个答案:

答案 0 :(得分:3)

general MIDI standard中指定了其他乐器,但并非所有合成器都能保证支持这些声音。

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