当 JFugue 4.0.3 5 出现时,我正在做一些非常酷的事情,我注意到它带有许多新功能。现在尝试将一些代码移动到 jfugue 5.0.4 我看到我的外部声音字体没有被加载,即使以新的方式尝试它(使用 SynthesizerManager)。根据我的阅读,在使用 SynthesizerManager 中的 setSynthesizer 方法时,所有玩家都会默认加载该 Synthesizer,但我只听到默认的钢琴声音。我测试了单独加载合成器并列出乐器并且它可以工作,所以我猜问题是 SynthesizerManager 为播放器设置了正确的合成器。
Soundbank coolGuitars = MidiSystem.getSoundbank(new File("/music/guitar.sf2"));
Synthesizer synt = MidiSystem.getSynthesizer();
synt.open();
synt.loadAllInstruments(coolGuitars);
SynthesizerManager s = SynthesizerManager.getInstance();
s.setSynthesizer(synt);
Player player = new Player();
Pattern pattern = new Pattern("C+E+G D+F+A E+G+B F+A+C G+B+D A+C+E B+D+F");
pattern.setInstrument(0);
player.play(pattern);
在此先感谢您的帮助!