音频前沿:始终追求卓越音质
第二届 Linux 音频开发者年会将于 4 月 28 日至 5 月 2 日在卡尔斯鲁厄举行。如果您在此期间身处德国,并且恰好在卡尔斯鲁厄附近,您不妨前往非常酷炫的 Zentrum fur Kunst und Medientechnologie (ZKM),了解一下关于 Linux 音频软件开发前沿工作的众多讲座和演示。
对于那些无法参加会议的朋友,我将在本月《音频前沿》系列文章中简要介绍一下当前的技术水平。Linux 音频软件领域的发展日新月异,我无法涵盖所有内容——甚至是最重要的发展也无法尽述——但我希望能让感兴趣的读者了解正在发生的事情以及我们正在努力的方向。
毫无疑问,最重要的两个发展方向是 ALSA 和 JACK 项目。两者都为当今许多最有趣的应用开发提供了基础,并且对 ALSA/JACK 的支持正在迅速成为 Linux 新音频软件的必备条件。我无法深入探讨这些基础系统的技术细节,但我将简要描述它们是什么,以及为什么它们对 Linux 音频开发和用户社区如此重要。
我在之前的专栏中介绍过 ALSA,所以本文将对其进行简要介绍。由于 ALSA 已被纳入 Linux 内核源代码,因此它正变得越来越为人所熟知。ALSA 声音系统有效地取代了较旧的 OSS/Free 系统,极大地扩展了开发者和普通用户可用的声音服务。ALSA 提供声卡驱动程序、一个库 (libasound) 以方便访问音频系统功能以及一套方便的实用程序。声卡支持范围从消费级声卡到高端专业数字音频卡。对于希望在要求更高的音频制作环境中使用 Linux 的用户来说,这种先进的硬件支持是必要的。感谢 ALSA 团队的努力,我们现在可以声称支持少量但意义重大的专业音频卡。如果没有这种支持,Linux 内核声音系统将仍然局限于消费级音频,这对于休闲使用可能足够有效,但对于在专业工作室中部署肯定是不够的。
ALSA 的实用程序包括用于声卡混音器的工具(alsamixer、amixer)、MIDI 连接(aconnect)、简单的录音和播放程序(aplay、arecord)以及各种特定于芯片组的便利功能。几乎所有工具都是命令行工具,尽管它们可能看起来是简单的迷你应用程序,但它们非常强大。我建议感兴趣的读者查阅 ALSA 网站上提供的信息;如果您已经安装了 ALSA,您可以阅读内容丰富的手册页(例如,man aplay)。
ALSA 的优点不胜枚举,但现在既不是时间和地点来探讨它们。再次,我建议读者访问 ALSA 网站以获取有关 ALSA 当前功能的最新信息。
JACK 可能是迄今为止为 Linux 音频系统编写的最令人惊叹的软件之一。作为 Paul Davis(Ardour 硬盘录音系统的作者)的创意,JACK 的功能包括以下杰出特性:
为新应用程序添加音频支持的简便方法
专为低延迟系统设计的强大专业级音频服务器
用于同步支持 JACK 客户端活动的传输控制机制
第一个功能当然是程序员特别感兴趣的。直接为 ALSA API 编写代码当然是可能的,但相比之下,JACK 是一种为客户端应用程序提供音频服务的更简单方法。毫不夸张地说,JACK 有潜力彻底改变 Linux 音频开发。已经支持它的应用程序列表令人印象深刻,证明了它的吸引力和可能性(有关当前支持 JACK 的软件列表,请参阅 JACK 网站)。
JACK 对底层音频系统相当不可知,支持 ALSA、OSS 和 PortAudio。它也在扩展成为一个多平台解决方案,在 Mac OS X 下已经可以进行一些部署。同样,JACK 解除了开发人员对底层音频系统的担忧,提供了一个简单而清晰的底层系统接口,而又不牺牲系统的功能。
应用程序间通信是 JACK 和 ALSA 的重要功能。ALSA 音序器 API 提供了一种方法,让兼容 MIDI 的应用程序共享 I/O 端口,允许多次访问和目标。JACK 对音频执行相同的操作,这是一项更为壮观的编程壮举:与数字音频相比,MIDI 流相对较细,并且更容易管理和同步。数字音频完全是另一种野兽,延迟的固有问题影响了 I/O 流的完美同步。JACK 的设计旨在解决这些问题,从而可以像 ALSA 音序器处理 MIDI 数据一样路由和连接音频流。
JACK 的另一个令人兴奋的方面是其传输控制。任何平台上音频开发的圣杯之一是通过使用主控制器平稳控制(开始/停止/继续)各种应用程序。JACK 现在可以通过许多应用程序做到这一点,尽管并非所有应用程序都完全支持传输。应用程序必须编写为专门支持 JACK 传输 API,并且直到最近该接口才稳定到被更广泛地接受和部署的程度。许多知名的 Linux 声音和音乐应用程序已经支持 JACK 传输控制,并且还有更多应用程序正在路上。
在离开本节之前,我必须指出,来自 4Front Technologies 的 OSS/Linux 驱动程序包仍然存在并且正在积极开发中。但是,我在这里的重点是免费和开源项目。我将在以后的专栏中介绍 OSS/Linux 和其他商业 Linux 音频项目。
说 Linux 音频软件场景蓬勃发展可能有点夸张,但我可以肯定地说,在过去一年中,应用程序开发领域持续爆发了活力。一些主要应用程序正在向 1.0 版本演进,另一些应用程序最近迎来了它们的第一个生日。此外,一些新的应用程序和移植程序已经出现,它们在当前实用性的同时展现出巨大的前景。
与此同时,许多 Linux 声音和音乐软件的中坚力量继续稳步走向音频世界的统治地位。硬盘录音仍然几乎完全是 Ardour 和 ecasound 项目的专属领域。虽然 Ardour 备受关注并获得当之无愧的赞誉,但 ecasound 仍在不断改进,并且仍然是唯一能够进行专业使用的命令行录音系统。这两个应用程序都是 Linux 声音软件开发人员近期取得的进步的极佳例证。Linux MIDI 音序软件由 MusE、rosegardenmusic.com 和 seq24 项目很好地代表。
其他出色的 MIDI 软件包括 JSynthLib 通用合成器音色编辑器/库和出色的 KeyKit 实验性作曲环境。软件合成语言由历史悠久的 Csound(现在在 GPL/LGPL 下)、RTcmix 和 Common Lisp Music 很好地代表。与此相关的是,SuperCollider3 的 Linux 版本的开发正在快速进行,一些 GUI 组件已经可用于 alpha 测试。
Linux 下的软合成器(独立软件合成器)比比皆是,例如 ZynAddSubFX、ALSA Modular Synth 和 Qsynth(fluidsynth 基于音色库的合成器的 GUI)等杰出范例。音频文件编辑器继续由 Audacity、Snd、ReZound 和 Sweep 项目主导。Hydrogen 鼓模式/歌曲作曲器显然是其类型中最积极开发的应用程序,而 SoundTracker 和 CheeseTracker 程序则延续了古老的音乐模块跟踪艺术。
LADSPA 插件库最近得到了扩展,这要归功于 Tom Szilagyi、Tim Goetze 和不知疲倦的 Steve Harris 的贡献。VST/VSTi 插件支持也在扩展,各种加载机制目前正在开发中。Windows/Mac 音乐软件世界正日益发展为复杂的插件驱动框架,因此对 VST/VSTi 插件的支持对于希望切换平台但不希望损失其在商业音频软件方面的投资的音乐家尤为重要。但是,应该注意的是,许多 LADSPA 插件与其 VST 插件一样强大和复杂。在 Linux 下同时运行 LADSPA 和 VST/VSTi 插件对每个人来说都是双赢。
为了不让休闲桌面发烧友感到被排除在外,您可以在 XMMS、AlsaPlayer、xine 和 MPlayer 中找到出色的 A/V 文件和流媒体播放器。最后两个播放器还包括它们自己的浏览器插件版本,它们对 Web 上发现的各种视频格式提供了令人印象深刻的支持(是的,您现在可以在 Mozilla 中在线观看 Quicktime 预告片)。此外,Real 和 Flash 格式的 Linux 播放器和插件可以从其母公司获得。
同样值得简要考虑的是 Linux 声音和音乐软件的弱点,特别是与 Windows/Mac 音乐家可用的软件相比。当然,根据设计,Linux 音频开发人员避开了尝试开发像 Cubase 或 Logic Audio 这样的单体应用程序。但是,这些应用程序的许多功能可以通过运行一套支持 JACK 连接、支持 LADSPA 的软件(例如 Ardour、Hydrogen、Rosegarden 和 ZynAddSubFX)来替代。音乐符号软件、循环作曲软件(例如 Acid)和高级软件采样器领域存在更明显的漏洞。同样,根据所需复杂性的不同,可能可以将一些 Linux 软件组合起来以实现 Win/Mac 软件的某些功能,但来自 Win/Mac 世界的用户可能会因组合应用程序方法的复杂性而望而却步。
关于音乐符号软件,Linux 没有像 Finale 这样的软件,尽管 NoteEdit 与 LilyPond 的组合具有巨大的潜力;LilyPond 可以生成出色的打印输出。关于类似 Acid 的程序,有人指出 Ardour 可以在某种程度上以类似的方式使用,但如果能够更精细地控制循环声音(例如,音高变换、时间伸缩、实时循环点编辑),这些功能将得到极大的增强。然而,目前还没有任何 Linux 应用程序可以与 Acid 相媲美,对于采样应用程序(例如 Gigasampler)也必须承认这一点。设计此类 Linux 软件的项目正在进行中,但目前还没有任何软件可以与之匹敌。
我计划再写一篇文章来讨论在 Linux 模拟环境下运行的 Windows 和 Mac 音乐软件,因此我必须在此处声明,我不会考虑可以在 WINE、VMware、ARDI Executor 或其他 Mac 和 Windows 模拟环境中运行的音频应用程序。
Linux 仍然缺乏一些知名硬件制造商的支持。一些公司表示,Linux 根本不在他们的开发雷达范围内。在数量促使他们之前,他们对自行开发驱动程序或向第三方开发人员(例如 ALSA 团队)提供必要的规范不感兴趣。因此,Linux 专业音频硬件支持目前几乎完全依赖于 RME 和 M-audio 的声卡。
对于桌面音频爱好者来说,情况有所好转,许多流行的声卡芯片组都受 ALSA 驱动程序支持。对 Creative Labs SBLive 的支持尤其出色,具有可用的 5.1 声道声音、硬件合成器支持和数字音频输出。笔记本电脑用户可能会很高兴地注意到 USB 音频和 MIDI 设备支持得到了改进,并且可以从 CoreSound、RME 和 DigiGram 购买有用的 PCMCIA 音频卡。
正如 Linux 本身不再被视为仅仅是一个有趣的黑客行为一样,Linux 音频软件也正在成长为我所谓的成熟青春期。即使是通常令人恐惧的安装和配置细节也已在很大程度上通过 AGNULA 发行版和 Planet CCRMA 软件包得到解决。此外,诸如 dyne:bolic 之类的 Live CD 让任何人都可以检查 Linux 的多媒体可能性,而无需安装任何东西。
唉,我只触及了 Linux 音频世界中正在进行的一些有趣的发展。我很高兴在卡尔斯鲁厄了解更多关于 Linux 音频最新发展的信息,所以请务必查看下个月的专栏,以了解 Linux 声音和音乐软件的最新动态。
Dave Phillips (dlphilp@bright.net) 是一位音乐家、教师和作家,居住在俄亥俄州芬德利。自 1995 年首次接触 Linux 以来,他一直是 Linux 音频社区的活跃成员。他是 The Book of Linux Music & Sound 以及 Linux Journal 中众多文章的作者。