我设法使用Java播放midi文件,但它会产生一些令人分心的噪音。我发现这是由Java 6 SDK / JRE附带的质量差的 soundbank文件引起的。
如何提高质量?
这是我到目前为止所做的:
MidiNote example使用Receiver
工作正常(听起来与播放midi文件时与其他播放器相同),所以它似乎没有使用随Java提供的Soundbank而是使用硬件MIDI端口的回退机制。
使用SimpleMidiPlayer example播放Midi文件有效,但质量很差。
当我删除lib/audio/soundbank.gm
时,质量不再差,因此再次使用后备。
当我将soundbank-deluxe.gm
放入同一目录时,会使用它并产生更好的声音。
如官方Installation Instructions所述,与客户 soundbank文件混淆肯定不是一个选项,所以我试图将新的soundbank文件放入jar文件中{ {3}}:
Soundbank soundbank = MidiSystem.getSoundbank(
getClass().getResourceAsStream("soundbank-deluxe.gm"));
if(synthesizer.isSoundbankSupported(soundbank)) {
System.out.println(synthesizer.loadAllInstruments(soundbank));
}
这会打印true
,但声音保持不变。