初步认识 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 和安卓版本)。
二进制文件是用 MinGW 编译的。如果您用 Visual C++,则不保证是否能正常使用它的 lib 库。