输出简单MIDI文件的最简单方法是什么?

时间:2012-12-06 04:06:49

标签: java midi

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

我目前正在使用Synthesizer来播放音符:

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

MidiChannel[] channels = synthesizer.getChannels();

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

synthesizer.close();

Note.playNote()

public void playNote(MidiChannel c) throws InterruptedException
{
    if (type == 'n')
    c.noteOn(noteNumber, 60);
    Thread.sleep(getLength());
    if (type == 'n')
    c.noteOff(noteNumber);
}

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

1 个答案:

答案 0 :(得分:2)

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

  • 创建一个Sequence对象;
  • 创建一个或多个曲目(sequence.createTrack())
  • 为每个笔记创建相关的MidiMessages,代表笔记和注释消息并将其添加到轨道
  • 调用MidiSystem.write()将填充的序列写入文件。