Java 输出简单MIDI文件的最简单方法?
我有几个音符,每个音符都有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
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);
}