Linux 软件合成器综述
软件声音合成 (SWSS) 在计算机历史上有着光荣的血统。早期的数字声音合成实验发生在著名的贝尔实验室,Max Mathews 领导的研究团队在那里创建了 Music N 系列音频合成软件,最终在 1969 年推出了 Music V。从那时起,Music V 演变成了一系列著名的数字声音合成环境,例如 Csound、Cmix/RTCmix 和 Common LISP Music。这些环境通常为用户提供一种语言,用于指定声音事件的性质,例如音符或采样声音。这些语言通常向用户区分乐器(发声设计)和乐谱(事件特征,例如开始时间、持续时间和合成参数)。用户使用他们喜欢的 SWSS 语言创作乐器和乐谱,然后将它们馈送到语言的编译器。输出被定向到一个文件,然后该文件可以被任何支持该文件格式的声音系统播放,或者,在硬件足够强大的情况下,输出可以被定向到数模转换器,以渲染实时音频输出。
独立的软件合成器(软合成器)取代了上述模型中乐谱方面的实时控制。软合成器通常带有吸引人的 GUI,通常模拟硬件合成器的外观和操作,MIDI 键盘或外部音序器是预期的控制器。在适当的情况下,软合成器可以由并发进程控制。例如,使用 ALSA aconnect 实用程序,可以将软合成器连接到同一台机器上运行的 MIDI 音序器。然后,可以通过软合成器录制和播放音序,从而无需外部合成器,并将 MIDI 环境包含在单个计算机上。
软合成器可以专注于特定的合成方法(加法、减法、FM 等),也可以是开放式的和模块化的。简而言之,加法合成的工作原理是 summing 正弦波,这些正弦波具有不同的频率、振幅和相位,直到获得所需的声音。加法合成是一种计算量大的合成方法,需要大量的细节才能获得逼真的声音。减法合成从频率丰富的声源(例如锯齿波或噪声)开始,然后滤除频率,直到从原始声源中雕刻出所需的声音。减法合成相对容易在硬件和软件中实现,其声音具有 1970 年代模拟合成器的特征。FM(频率调制)合成的工作原理是通过另一个振荡器的输出来塑造一个振荡器的频率成分,以较小的计算成本创建复杂的音频频谱。雅马哈的 DX7 合成器是最著名的 FM 实现,而该公司的 OPL3 声卡芯片无疑是最臭名昭著的。
物理建模和粒子合成是两种较新的合成方法。物理建模合成模拟真实或虚构乐器的力学及其激活的物理原理。该方法的参数较少基于熟悉的声乐模型(例如波形、频率和振幅),而更多地基于物理激发系统的特性,例如通过管道的气流、拨弦的振动或敲击膜的辐射模式。物理建模已成为一种流行的合成方法,并已部署在 Korg、雅马哈和其他公司的合成器中。粒子合成通过将声音量子或粒子排序为或多或少密集的声质量来创建声音。同样,它的参数不像旧的合成方法那样直观,但它功能强大,可以创建各种各样的声音。粒子合成尚未在流行的商业合成器中找到自己的位置,但在 Kyma 系统和 UPIC 工作站中可以找到硬件实现。
软合成器可以完全专注于单一合成方法,可以是两种或多种方法的混合体,也可以采用更开放式的模块化设计。每种架构都有其优势。广义而言,模块化设计可能是最灵活的,但它可能会为了通用性而牺牲控制的精细度(分辨率)。专用方法软合成器缺乏模块化合成器的灵活性,但通常提供更精细的参数控制。
模块化合成器通过提供单独的合成原语以任意方式连接来鼓励构建块方法。例如,振荡器的输出可以定向到包络发生器 (EG) 的输入,反之亦然,将 EG 的输出路由到振荡器输入。这种黑盒网络非常适合软件仿真,正如我们稍后在本文中遇到一些模块化合成器时将看到的那样。
软件的通用类型之间的区别正在模糊。例如,Csound 现在提供了一组基于 FLTK 的小部件,用于用户设计的控制面板。许多用户已经为 Csound 的各种合成方法创建了精细的 GUI,其中一些 GUI 足够详细,可以充当独立的基于 Csound 的软合成器。这种趋势可能会随着为 Common LISP Music 和 RTCmix SWSS 环境开发的 GUI 而继续。
图形化修补 SWSS 环境(如 jMax 和 Pd)是这种模糊趋势的另一个指标。它们还提供可用于构建合成器界面的图形小部件,但与 Csound 不同,这些小部件是基本工作环境不可或缺的一部分。jMax 和 Pd 利用图形和语言原语的独特组合,这些原语通过虚拟线连接在一起以创建合成或处理网络。这些环境当然可以用作软合成器,但它们的通用性使它们更接近 Csound 而不是此处评测的软合成器。
节拍盒式合成器是另一种软合成器设计类别。这些程序结合了合成器、鼓机和音序器的元素,形成一体化的伴奏包,尽管更复杂的例子实际上是更灵活的音乐创作系统。
这些区别是简短的,但对于本文而言,它们足以指示软合成器的基本类型。有关各种合成方法和合成器架构的完整定义,请参阅资源中列出的标准参考资料。
如果您曾经使用过 Adobe Photoshop 或 GIMP,您就已经熟悉插件的概念。对于普通用户而言,插件架构扩展了程序的功能,而无需更新或重新编译。对于应用程序程序员而言,插件架构允许他们专注于程序的基本设计,让插件提供更扩展或高级的功能。
使用 Windows/Mac 音频软件的音乐家可以使用为 Steinberg VST 和 Microsoft DirectX 插件 API 编写的插件。Linux 不直接支持这两种 API,尽管我们将看到一种在 WINE 下确实有效的间接支持方法。但是,Linux 音频开发人员已经提出了他们自己的原生插件架构,称为 Linux 音频开发者简易插件架构 (LADSPA)。LADSPA API 已成为一种标准,现在对它的支持几乎成为任何新的 Linux 音频应用程序的预期方面。一些出色的 LADSPA 插件集合可用,其中包括不仅通常预期的效果和 DSP,还包括合成构建块(振荡器、包络发生器、滤波器等),甚至一些完全形成的插件合成器。也有一些值得注意的非 LADSPA 插件。
Peter Hanappe 的 iiwusynth 是一款轻量级合成器,它使用 SoundFonts 作为其合成引擎的燃料。给定一套不错的 SoundFonts,iiwusynth 的输出非常好,并且它已在许多应用程序中作为嵌入式合成器而流行起来。它也可以从命令行用作独立合成器。
RX/Saturno 是另一款轻量级插件合成器,它模拟了流行的 Yamaha DX7 FM 合成器。开发者 Juan Linietsky 表示 RX/Saturno 仍处于初始开发阶段,但它已经非常有用,并且可以在任何支持 ALSA 音序器的程序中用作插件合成器。
Kjetil Matheussen 的 vstserver 是一款有趣的软件,它利用 WINE 的功能来欺骗 VST 插件,使其相信它们正在其原生 Windows 环境中工作。在大多数情况下,性能非常出色,至少与 Windows 下一样好。Kjetil 还为服务器编写了两个客户端,一个用于将 VST 插件连接到 Pd,另一个用于 LADSPA。vstserver 还支持一些 VSTi 插件,这些插件是完全形成的乐器,例如合成器、采样器和 MIDI 音序器,它们被封装到 VST 插件架构中。
尽管 LADSPA 是一种有效且流行的标准,但其设计的“简单”方面禁止某些类型的处理和控制。LADSPA 插件本身不允许通过 MIDI 直接进行参数控制;尽管这些插件在 MIDI 音序器(如 MusE)中非常有用。Linux 音频开发社区再次迎接挑战,提出了一种名为 XAP 的新拟议标准。API 正处于设计阶段,但从事 XAP 工作的团队包括 LADSPA 设计者和其他才华横溢的 Linux 音频程序员。
MIDI 输入硬件通常是 MIDI 合成器键盘,但可以使用任何 MIDI 乐器。连接到标准声卡需要 MIDI 接口电缆。OSS/Free 和 ALSA 支持 MPU-401 兼容设备,因此一些独立的 MIDI 声卡也可以工作。ALSA 为串行端口和 USB MIDI 设备提供直接支持(我本人没有测试过这些连接),以及非常有用的 virmidi 虚拟 MIDI 端口。
在软件方面,基本的 OSS/Free Linux 声音系统(内核声音系统)足以与此处描述的软合成器一起工作,但推荐的系统包括 ALSA 库和驱动程序、JACK 音频连接套件和硬件 MIDI 输入设备。为了获得最佳响应,内核应编译为低延迟,可以选择使用抢占式内核补丁。还应启用实时时钟 (RTC)。
截至 2.5 内核开发轨道,OSS/Free 声音系统已正式被 ALSA 取代。从 2.6 开始的稳定内核将仅构建 ALSA 系统,该系统确实具有出色的 OSS/Free 仿真层,用于与非 ALSA 感知应用程序兼容。早于 2.5 的内核包含 OSS/Free 系统,因此这些内核的用户必须自己构建和安装 ALSA。ALSA 的设计旨在实现现代声音系统常见的互连性。ALSA 为插件、高级音频客户端/服务器架构以及一组用于简化系统配置和管理的实用程序提供 API 支持。
4Front Technology 的专有 OSS/Linux 也适用于 Linux 软合成器,尽管显然它无法直接利用 ALSA 音序器客户端网络。
JACK 是 JACK 音频连接套件的递归首字母缩写词。它被设计为低延迟专业级性能,作为连接进程外音频应用程序的软件总线。JACK 在目的上与声音服务器(例如 KDE 的 aRts 服务器或 GNOME 的 esd)有些相似,但 JACK 被设计为更强大的解决方案,融合了专业音频标准。在 JACK 总线上播放的程序可以在彼此之间自由路由其音频 I/O,从而允许复杂的场景,例如将 MIDI 控制的软合成器的输出路由到硬盘录像机,同时应用调制的插件效果,所有这些都在低延迟的实时状态下进行。尽管 JACK 对于 Linux 音频世界来说是一个相对较新的事物,但它已经引起了许多开发人员和用户的关注,我们正在迅速接近这样一个时刻:对于 Linux 音频程序员和普通用户而言,部署和使用它将成为理所当然的事情。
测试硬件包括一台配备 800MHz AMD Duron CPU、512MB RAM 和 15GB IDE 硬盘的通用机器。音频硬件包括两张声卡,一张 SoundBlaster SBLive Value 和一张 SoundBlaster PCI128;卡西欧 CZ101 合成器用作外部 MIDI 键盘输入。我使用了 Steve Ratcliff 的 pmidi MIDI 文件播放器,我还使用了第二台计算机,在 MS-DOS 下运行 Voyetra 的 Sequencer Plus Gold。视频系统包括一台通用 19 英寸显示器和一块 Voodoo3 显卡。来自声卡的音频输出连接到雅马哈 DMP7 混音器,然后输出到 100 瓦 QSC 功率放大器和一对 Yorkville Sound YSM-10 参考扬声器。
低级和中级软件包括 Linux 内核 2.4.5(已修补为低延迟)、ALSA 0.9.0rc6 软件包(音频库、驱动程序和实用程序)、最新的 JACK 和来自 Richard Furse 和 Steve Harris 的 LADSPA 插件集。其他支持软件包括 Maarten de Boer 的 alsamixergui 和 Bob Ham 的 ALSA MIDI patch bay,它们都为 ALSA alsamixer 和 aconnect 实用程序提供了 GUI(以及更多功能)。
此处介绍的许多合成器都建议以 root 权限运行,无论是您自己以 root 身份运行,还是通过使二进制文件 suid root 运行。这样做通常可以确保运行中的应用程序具有更高的优先级,但如果用户在网络上,则也被认为是严重的安全风险。
除了安全问题外,我还应该解释一下,当实时进程脱离 root 用户运行时,结果并不理想,您的机器可能会完全锁定。在以 root 用户身份运行的一次测试中,仅指定无法识别的 MIDI 设备就冻结了我的系统。所以请注意。以 root 身份运行确实可以提高性能,但您也承担着风险。尽可能以普通用户身份运行普通应用程序。
Linux 声音和音乐软件站点的软件合成部分包括软合成器和采样器子部分。目前有 30 多个 URL 处于活动状态,将您带到各种软件合成器。表 1 通过专注于能够进行复音(一次播放多个音符)实时输出的合成器,忽略了离线合成器和环境(如 Csound 或 RTCmix)来修剪了其中的一些多样性。由于它们的实时特性,我包含了节拍盒程序和类似 MAX 的 Pd 和 jMax 环境。
由于本文是一篇综述而不是一场决战,我将仅介绍表 1 中的一些选择,并对其进行更多修剪。这些简介代表了各种合成方法的横截面,但我特意关注了独立的软合成器。
Nick Dowell 的 amSynth 是专用减法合成架构的出色代表。信号流固定在经典设计中。两个振荡器的输出通过滤波器和放大器路由,然后可以将该信号提供给效果器(amSynth 提供混响和失真)和/或调制阶段,以便在到达声卡数模转换器 (DAC) 之前进行最终处理。在经典合成中,此设计的主要部分被称为 VCO(压控振荡器)、VCF(压控滤波器)和 VCA(压控放大器)。
amSynth 包含一些听起来很棒的预设。未设置通用 MIDI 音色库以支持通用 MIDI 标准化乐器映射,但它确实响应传入的 MIDI 程序更改消息。由于 amSynth 本质上是一个独立的单乐器,一次只处理一个 MIDI 通道,因此它可能最适合用作主音或铺垫乐器。它可以由 MIDI 音序器驱动。
amSynth 的全称是模拟建模合成器。没有真正的压控组件,因此我们可能会理所当然地怀疑 Nick 是否已经实现了他模拟模拟减法合成器声音的目标。我很高兴地报告,amSynth 的声音饱满而生动,但您不必相信我的话。amSynth 主页上的出色演示比我在此处可以描述的更好地展示了它的声音。
Matthias Nagorni 博士为 ALSA、JACK 和 LADSPA 编写了各种有用的应用程序和实用程序;然而,他当前的巅峰之作必须是他出色的 ALSA 模块化合成器 (AMS)。该软件模拟了昔日伟大的模块化合成器,为用户提供了大量模块可供选择。
图 2 说明了 AMS 的最基本形式。在减法合成音色库中,路由本质上与 amSynth 使用的路由相同,但区别在于 AMS 的更大灵活性。与 amSynth 的固定设计不同,AMS 在其各种模块之间的连接方面完全灵活。
大多数模块愉快地接受任意输入连接,并且很少或根本不关心其自身输出的目的地。但请注意;当模块以非典型配置连接时,输出可能非常不寻常甚至令人难以承受,因此在测试此类音色库时请注意您的系统音量控制。每个模块都有自己的对话框(如图 2 所示),通过右键单击模块的名称打开。
Nagorni 博士提供了以下信息丰富的注释
AMS 实现了特殊功能,以确保所有三种主要合成方法 [加法、减法、FM] 都可以轻松地与它一起使用。模块 Dynamic Waves 在一个模块中实现了最多八个振荡器的加法合成。每个谐波都可以用八点包络来塑造,并且包络以图形方式可视化。为了便于访问整数谐波调谐(对 FM 有用),VCO 具有额外的谐波和次谐波滑块。还有一个必需的线性 FM 输入端口。为了使减法合成正常工作,至关重要的是控制电压要遵守经典的 1V/倍频程对数约定。这样,您可以将滤波器截止点移动到您喜欢的任何位置,并且仍然可以实现完美的 VCF 跟踪。对数频率在其他地方也很有用,包括使用 LFO 的颤音。
AMS 专为实时工作而设计。它尤其适用于 MIDI 控制,并且大多数参数都可以链接到 MIDI 控制器以进行实时更改。AMS 可以同样好地用作单音或复音合成器,并且 AMS 的多个实例可以通过 JACK 通信以创建多音色设置。它对 LADSPA 插件的支持扩展了其已经丰富的功能集,使 AMS 成为我们这些无法访问硬件合成器的人的理想解决方案。一个完整的 MIDI 创作环境可以仅由一台速度合理的机器、一个优秀的 Linux MIDI 音序器(如 MusE 或 Rosegarden)和 AMS 构建而成。
某些设置的效果会更好,因此这位好医生准备了大量的示例音色库供您学习和实验。您可以在 AMS 主页上提供的演示文件中听到其中的一些,但与此处介绍的所有合成器一样,我建议您自己下载并安装它,以亲自查看和听到它真正能做什么。
首先是 SpiralSynth,然后是 SpiralLoops 程序(一个很酷的循环音序器),然后是 SpiralSynthBaby,旨在成为 SpiralLoops 的插件。最后,开发者 Dave Griffiths 决定将它们全部整合到一个开放式的模块化合成器构建工具包中,称为 SpiralSynth Modular (SSM)。与 AMS 类似,SpiralSynth Modular 为用户提供了一个画布和一个模块调色板,用于在画布上放置和连接,但 SSM 具有其自身独特的设计和声音生成能力。
图 3 展示了 SSM 正在运行其第一个教程音色库。此示例展示了一种称为波表合成的简单合成类型。波表是预定义的存储波形(正弦波、方波、三角波、脉冲波等),它由虚拟键盘触发,并由包络发生器修改,然后通过 OSS 输出模块发送到声卡 DAC。在示例中,我们可以看到合成器是通过计算机键盘演奏的,但 SSM 还提供了一个 MIDI 模块,用于接收和路由 MIDI 消息。键盘模块是一个不错的功能,我很高兴使用它通过笔记本电脑的 QWERTY 键演奏 SSM。
SSM 不充当原生 ALSA 音序器客户端,因此它无法像 amSynth 或 AMS 那样直接连接到 ALSA 端口。但是,它可以连接到标准 OSS/Free MIDI 设备 (/dev/midi),以从连接到该设备的任何硬件或软件接收输入。如果您的机器没有 MIDI 硬件,您可以使用 ALSA 的 virmidi 虚拟 MIDI 端口,方法是将 MIDI 通道设置为 SSM 选项中的相应端口(对于我的笔记本电脑,为 /dev/snd/midiC1D0;参见图 4)。这可以通过 aconnect 或 ALSA patch bay 连接到其他 ALSA 感知进程。

图 4. SSM 选项
Dave Griffiths 贴心地在 SSM 主站点上提供了一些出色的合成器演示。它的 FLTK 界面令人愉悦且易于使用,该程序包含大量有趣且有用的模块,包括 LADSPA 支持,并且最新版本可以使用 JACK 支持构建。Dave 计划为即将推出的 SSM 版本包含一个经过大幅改进的 SpiralLoops 插件版本,我们可以期待对 ALSA 的更多直接支持。
Stefan Nitschke 的 RTSynth 是我最喜欢的软合成器之一。它是修补合成器的另一个出色示例。呈现了一个主画布,标志性模块被放置并在画布上连接在一起,右键单击模块会打开一个对话框以编辑其参数。RTSynth 是此处代表的唯一通过物理建模创建声音的软合成器。
物理建模合成能够产生极其逼真的声音。RTSynth 的一些音色库非常令人信服。RTSynth 主页上的示例展示了一些令人惊叹的原声和电吉他声音,这些声音与贝斯、鼓和键盘一起完整编排。RTSynth 是一款多音色软合成器,配备了鼓组和效果处理,演示真正展示了其作为单解决方案软合成器的功能。
RTSynth 是 ALSA 和 JACK 感知的。它在 ALSA 和较旧的 OSS/Free 内核声音模块下完全支持 MIDI。在缺少 ALSA 驱动程序的系统上,仍然可以将 RTSynth 连接到外部进程,例如通过名为命名管道的 UNIX 机制并发运行的 MIDI 音序器。命名管道为可能没有其他方式共享数据的程序提供了一种简单的进程间通信方法。以 RTSynth 为例,以下是如何设置命名管道。
首先,使用 mkfifo 实用程序创建管道
mkfifo $HOME/tmp/midififo
接下来,准备 RTSynth 以接收来自管道的数据
RTSynth < $HOME/tmp/midififo最后,您必须将命名管道指示为驱动应用程序的首选输出设备。在以下示例中,我使用了 Simon Kagedal 的 clavier 虚拟键盘
clavier -o $HOME/tmp/midififo现在您可以直接从虚拟键盘演奏 RTSynth。您还可以使用普通的未命名管道,通过以下类型的命令将进程的输出路由到 RTSynth 中
cat foo | RTSynth在缺少 MIDI 硬件和/或 ALSA virmidi 驱动程序的情况下,这些连接策略特别有效。
Nick Copeland 可能以其 SLab 硬盘录音系统而闻名,但他也为我们提供了 Bristol 合成器模拟器。这款软合成器为 Mini Moog、Moog Voyager、Sequential Circuits Prophet-5、Roland Juno-6 和 Yamaha DX7 合成器的模拟提供了 GUI 和合成引擎。它还为 Hammond B3 和 Vox Continental 风琴以及 Fender Rhodes 电钢琴提供了图形界面和引擎。Bristol 甚至模拟了通用混音台和 Yamaha Pro10 数字混音器,但它们未在此评测中进行测试。
如图 6 所示,GUI 绘制精美,但它们不仅仅是花哨的摆设。Nick 尽可能地模拟了原始合成器上的控件和功能;但是,并非特定合成器的所有功能都可能已实现,并且 Nick 指出某些模拟(尤其是 DX7)仍然需要一些工作。同时,所有这些开关、旋钮和滚轮都可以实时翻转、旋转和转动,响应平滑,参数更新快速。Bristol 完成了一项非常艰巨的任务,不仅为其各种合成器和键盘提供了外观相似的图形,还提供了声音相似的合成引擎。
使用 ./startBristol -v -h 运行 Bristol 会列出运行时选项,使合成器具有广泛的性能自定义程度。例如,我使用 ./startBristol -alsa -seq -bufsize 2048 -voices 6 启动了 Bristol,这会在其默认 Mini Moog 模式下启动 Bristol,声明 ALSA 为驱动程序源,向 ALSA 音序器注册 Bristol,设置声卡缓冲区大小(默认值为 1,024,但 Nick 建议我的 SBLive 使用 2,048),并将复音限制为六个声音(Bristol 的默认复音为 16 个声音)。顺便说一句,Bristol 可以在多个实例中同时控制运行,有效地让您像过去一样分层合成器。
我需要更多空间才能充分描述 Bristol 的每个界面。我在 www.linux-sound.org/sounds 放置的示例仅演示了 Mini Moog 模拟,但它应该让您了解您可以从这款合成器引擎中期待什么 - 一些老派合成器的乐趣。
这款合成器是模拟硬件合成器的出色示例。Juno6 键盘和面板控件得到了忠实的渲染,并且像 Bristol 合成器一样,所有控件都处于活动状态,并且可以随时进行操作。我曾拥有过 Juno6,Ultramaster 的音频模拟非常忠实于原始版本,但具有数字合成器的音调稳定性。最重要的是,琶音器可以工作。我们这些记得这些便利设施的人可能会对这个功能感到非常有趣;唉,琶音器不再那么常见了,因此新手可以期望花费大量时间来寻找此功能的有趣和有趣的用途。
Juno6 是减法合成的直接实现,适合于具有戏剧性滤波器扫描的声音。可以在 Ultramaster 主页上找到一个简短的 WAV 文件示例,但是您只需随意玩玩它,就能更多地了解合成器的声音和功能。
Paul Nasca 的 ZynAddSubFX 是加法合成和减法合成的有趣混合体,并添加了效果器部分以进行进一步处理。如果 ZynAddSubFX 仅提供这些功能,它仍然会引起您的注意。出色的 FLTK 界面邀请您尝试合成策略的各种参数,并且作为 ALSA 感知客户端,您可以从您喜欢的 MIDI 音序器驱动合成器。图 8 显示了 ZynAddSubFX 与 pmidi MIDI 文件播放器一起工作。它还显示了 ZynAddSubFX 的音阶对话框,该对话框打开了 Scala 程序中的音阶集合。选择新的音阶会自动更新当前音色库的调音,从而激发对不寻常音调的探索,并对熟悉的素材产生一些有趣的变化。
ZynAddSubFX 是多音色的,每个 MIDI 通道对应一个不同的乐器,这使其成为通用软合成器的另一个不错的选择(可惜不包括鼓)。它的声音是通过直接的合成方法创建的,但这些方法的运用和程序优秀的界面结合起来,创造出了一些出色的声音。演奏可以直接在 ZynAddSubFX 中录制,开发者在网上放置了一些演示,展示了该合成器作为独立多音色软合成器的强大功能。ZynAddSubFX 是这里介绍的最新软合成器,但其开发进展稳定。在撰写本文时,我了解到 ZynAddSubFX 现在支持 JACK(图 8),因此凭借对来自 Scala 的音阶和调音的支持、ALSA 音序器客户端配置和 JACK 连接,这款合成器是现代 Linux 音频软件的优秀代表。
我知道我曾承诺避开介绍更多基于语言的合成环境,但我也提到在这些环境的发展中出现的模糊趋势。jMax 正在迅速发展成为一个丰富的多媒体合成/处理套件,但它也可以用作一个直接的 SWSS 工具包。图 9 展示了一个简单的 jMax 合成补丁,带有完整的自我文档。虽然这个例子本身很简单,但 jMax 能够实现更复杂的合成补丁。
图 10 展示了 Istvan Varga 的 csoundfltk(一个为 Linux 优化的 Csound 包)运行 ImproSculpt,这是一个带有相当复杂的 FLTK 图形界面的实时采样器。这个例子实际上不是一个合成补丁,但它展示了 Csound FLTK 部件集的强大功能,该部件集允许用户为他们的 Csound 合成和处理设计 GUI 面板和控制系统。其他示例展示了 Csound 作为一个直接的合成器,感兴趣的读者应该查看 www.csounds.com 上提供的资料,以获取更多 FLTK/Csound 强大组合的示例。

Dave Phillips 是一位音乐家、教师和作家,居住在俄亥俄州芬德利。自 1995 年首次接触 Linux 以来,他一直是 Linux 音频社区的活跃成员。他是《Linux 音乐与声音之书》以及《Linux Journal》中众多文章的作者。