我使用以下代码使用JFugue加载和播放MIDI文件:
import java.io.File;
import org.jfugue.Pattern;
import org.jfugue.Player;
public class PlayMidiFromFile {
public static void main(final String[] args) {
try {
final Player player = new Player();
final Pattern pattern = player.loadMidi(new File("sample.mid"));
player.play(pattern);
} catch (final Exception e) {
e.printStackTrace();
}
}
}
该文件是使用ChordPulse生成的,其他程序播放正常。它包含多个轨道,每个轨道都有不同的乐器,但播放器只使用钢琴,并且似乎缺少一些轨道。
如何解决?是否存在某些MIDI消息,解析器无法识别?歌曲如何使用轨道和通道或其他已知限制或必要的初始化步骤是否存在先决条件?