0

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);

よろしくお願いします。

4

0 に答える 0