播放 midifile 时,Fluidsynth 声音字体恢复为上次加载的完整字体。在我的情况下 timidity-freepats.sf2 (sfont 2)。
流体合成器版本 1.1.10
这是我的步骤。
配置文件 ./nylon-guitar.fs 的内容:
load /usr/share/soundfonts/SGM-V2.01.sf2 0
load /usr/share/soundfonts/timidity-freepats.sf2 0
load /usr/share/soundfonts/palm-muted-guitar.sf2 0
select 9 1 128 0
select 0 2 0 24
select 28 3 0 28
启动流体合成:
fluidsynth --audio-driver=alsa -o audio.alsa.device=hw:0 -o synth.verbose=1 -f nylon-guitar.fs
> channels -verbose
chan 0, sfont 2, bank 0, preset 24, Nylon-String Guitar
chan 1, sfont 0, bank 0, preset 0, no preset
chan 2, sfont 0, bank 0, preset 0, no preset
chan 3, sfont 0, bank 0, preset 0, no preset
chan 4, sfont 0, bank 0, preset 0, no preset
chan 5, sfont 0, bank 0, preset 0, no preset
chan 6, sfont 0, bank 0, preset 0, no preset
chan 7, sfont 0, bank 0, preset 0, no preset
chan 8, sfont 0, bank 0, preset 0, no preset
chan 9, sfont 1, bank 128, preset 0, STANDARD 1
chan 10, sfont 0, bank 0, preset 0, no preset
chan 11, sfont 0, bank 0, preset 0, no preset
chan 12, sfont 0, bank 0, preset 0, no preset
chan 13, sfont 0, bank 0, preset 0, no preset
chan 14, sfont 0, bank 0, preset 0, no preset
chan 15, sfont 0, bank 0, preset 0, no preset
到目前为止一切看起来都很好。然后我播放了一个 MIDI 文件
aplaymidi -p 129:0 midifile.midi
声音不如预期,因为 soundfont 选择已更改。(通道 9 sfont 从 1 更改为 2)
>channels -verbose
chan 0, sfont 2, bank 0, preset 24, Nylon-String Guitar
chan 1, sfont 2, bank 0, preset 24, Nylon-String Guitar
chan 2, sfont 0, bank 0, preset 0, no preset
chan 3, sfont 0, bank 0, preset 0, no preset
chan 4, sfont 0, bank 0, preset 0, no preset
chan 5, sfont 0, bank 0, preset 0, no preset
chan 6, sfont 0, bank 0, preset 0, no preset
chan 7, sfont 0, bank 0, preset 0, no preset
chan 8, sfont 0, bank 0, preset 0, no preset
chan 9, sfont 2, bank 128, preset 0, Percussion **sfont changed 1 -> 2
chan 10, sfont 0, bank 0, preset 0, no preset
chan 11, sfont 0, bank 0, preset 0, no preset
chan 12, sfont 0, bank 0, preset 0, no preset
chan 13, sfont 0, bank 0, preset 0, no preset
chan 14, sfont 0, bank 0, preset 0, no preset
chan 15, sfont 0, bank 0, preset 0, no preset
如何在播放 midifile 时允许声音字体选择持续存在?我尝试了诸如“-o player.reset-synth=0”和“-o player.reset-synth=1”之类的设置,但没有效果。