注:本文讲述的是从系统命令行【Win 下叫做 cmd(CoMmanD prompt),Linux 下叫做 BASH(Bourne-Again SHell)】启动本软件的方法,并非是 FluidSynth 内置的交互式 Shell。
运行 FluidSynth
加载 SF2
FluidSynth 依赖 SoundFont2 才能正常工作。因此,您必须在系统命令行指定至少一个 .SF2 文件名:
fluidsynth /soundfonts/sfont1.sf2。
若要加载多个 SF2,则需要将这些 SF2 文件分别作为一个独立的命令行参数传入:
fluidsynth /soundfonts/sfont1.sf2 /soundfonts/sfont2.sf2 ...
以此类推。
FluidSynth 加载多个 SF2 的机制
认识 Banks & Presets
在 MIDI 标准中,为了区分不同的乐器,就使用了 Banks 和 Presets 的概念。 Banks 可理解为“乐器组”,最多 129 个(0~128,打击乐器组独占 128 号)。但是 GM 标准中只有 0 号和 128 号 Bank。 Presets 可理解为组内的“乐器”。在每一个 Bank 中,都最多有 128 个 Presets(0~127)。
表示某个 Bank 中一个具体的 Preset 的方法是:三位十进制数字,Bank 号在左,Preset 号在右,中间用英文冒号分隔。 如要表示 0 号 Bank 中的 48 号 Preset,则应该写成:000:048


加载多个 SF2,是如何处理音色冲突的?
若您为 FluidSynth 指定了多个 SF2,则它将会判断这些 SF2 中有哪些共同的 Presets,并采用最后一个加载的 SF2 中的 Presets 覆盖之前加载的。
例如,首先加载了 A 音色库,然后又加载了 B ,最后加载了 C。 若 A 和 B 音色库共同拥有 032:048 号 Preset 的音色,则会采用 B 里面的 032:048 音色; 若 A、B、C 中都有 032:048,则会采用 C 里面的此 Preset。
播放 MIDI
若要播放 MIDI 文件,除了指定 SF2 文件名外,您还要指定 MIDI 文件名:
fluidsynth /soundfonts/sfont1.sf2 /midifiles/mymid.mid
若要指定多个文件名,方法同上。
寻求帮助
若要查看 fluidsynth 命令行参数的用法,请使用:
fluidsynth -h
若要学习更多系统命令行参数,请进入下一节课。