JFugue 4.0.3 で 5 が登場したとき、私はいくつかの本当にクールなことをしていましたが、多くの新機能が追加されていることに気付きました。一部のコードを jfugue 5.0.4 に移動しようとしていますが、新しい方法 (SynthesizerManager を使用) で試しても、外部サウンドフォントが読み込まれていないことがわかります。私が読んだことから、SynthesizerManager から setSynthesizer メソッドを使用すると、すべてのプレーヤーにそのシンセサイザーがデフォルトでロードされますが、デフォルトのピアノの音しか聞こえません。シンセサイザーを単独でロードしてインストゥルメントを一覧表示するテストを行ったところ、問題は 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);
よろしくお願いします。