codecamp
初步认识 FluidSynth

学习 FluidSynth 的门槛不高,但是也有一些难度,像一些抽象的概念不容易理解。您可以跟着本教程一步一步来,不要心急。

合成器与 Soundfonts

FluidSynth 依赖 SF2(SoundFont 2)音色库才能工作。 所谓 SF2,就是里面记载了各种乐器的真实波形的文件。在播放 MIDI 时,软件会去寻找 SF2 内部对应乐器的波形,并输出到声卡或文件,被我们听到(或转换为音频)。 例如,要指定用钢琴这个乐器演奏一首乐曲,本软件就会去读取 SF2 里的钢琴波形,然后经过一系列的效果优化后再输出。

FluidSynth 能干什么

FluidSynth 没有 GUI,只能通过命令行程序与用户进行交互。命令行的功能并不完整,只能满足用户的基础需求,例如:MIDI 文件播放、MIDI 文件转音频、实时音乐合成等。

但是它的函数库十分强大,一些高级功能需要通过调用库里的函数才能实现。最主要的用法就是将这个函数库链接(动态或静态)到你的应用程序中,以快捷地实现处理 MIDI 的功能。

学习前的准备

如果您只是想要学习命令行的使用,则可以直接下载二进制;如果还想学习 C 语言的 API,或者在用苹果系统,就需要安装一个 C 语言编译器(建议是 64 位),自己编译。

支持的编译器包括:

  • Visual C++(只支持 Windows)
  • GCC(支持任意平台。在 Windows 下叫做 MinGW,可以通过安装 MSYS2 来使用它)
  • Clang(支持任意平台)

在 Windows 下使用 GCC 或 Clang 编译十分方便,而用 VC++ 非常麻烦。

构建工具

FluidSynth 采用 CMake 作为项目构建工具。具体操作步骤请见附录关于 FluidSynth 的编译方法。

下载二进制

您可以自己决定是否要自己编译本软件的源码。但也可以直接去下载二进制文件(只有 Windows 和安卓版本)。 图片以2.2.6版本为例,仅供参考 二进制文件是用 MinGW 编译的。如果您用 Visual C++,则不保证是否能正常使用它的 lib 库。

起步
温馨提示
下载编程狮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; }