Java 输出简单MIDI文件的最简单方法?

Java 输出简单MIDI文件的最简单方法?,java,midi,Java,Midi,我有几个音符,每个音符都有midi编号、持续时间和速度 我目前正在使用合成器播放音符: Synthesizer synthesizer = MidiSystem.getSynthesizer(); synthesizer.open(); MidiChannel[] channels = synthesizer.getChannels(); for(Note n: song) { n.playNote(channels[0]); } synthesizer.close(); Not

我有几个音符,每个音符都有midi编号、持续时间和速度

我目前正在使用合成器播放音符:

Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();

MidiChannel[] channels = synthesizer.getChannels();

for(Note n: song)
{
    n.playNote(channels[0]);
}

synthesizer.close();
Note.playNote()


但是,现在我想将其保存到midi文件中。最简单的方法是什么

一个简单的程序基本上如下所示:

  • 创建序列对象
  • 创建一个或多个轨迹(sequence.createTrack())
  • 对于每个音符,创建表示音符打开和音符关闭消息的相关MIDI消息,并将它们添加到曲目中
  • 调用MidiSystem.write()将填充的序列写入文件
这可能会有所帮助。
public void playNote(MidiChannel c) throws InterruptedException
{
    if (type == 'n')
    c.noteOn(noteNumber, 60);
    Thread.sleep(getLength());
    if (type == 'n')
    c.noteOff(noteNumber);
}