codecamp
起步

注:本文讲述的是从系统命令行【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

banks&presets打击乐器独占128号Presets

加载多个 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

若要学习更多系统命令行参数,请进入下一节课。

初步认识 FluidSynth
系统命令行参数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

C语言API

Fluid Settings

无标题目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }