在 Wine 下运行声音应用程序

作者:Dave Phillips

打开任何流行的音乐行业杂志,例如 KeyboardSound On Sound,您都不会错过大量色彩缤纷的声音和音乐软件广告,所有这些软件都是为 Windows 和 Mac 设计的。 这些软件中的许多质量确实非常出色; 其中一些已经为功能和性能设定了行业标准,而且没有一款软件可以在 Windows 和 Mac 以外的任何平台上使用。

开源音频开发社区在为音乐家提供免费替代 Win/Mac 霸权的方案方面取得了长足的进步,他们值得高度赞扬。 然而,也必须承认,我们的社区仍然相对较小。 Linux 的潜在用户经常询问他们是否可以在 Linux 下成功运行他们熟悉的程序,而仅凭这一标准就可以决定他们是否会转用 Linux。 尽管 Linux 拥有令人称赞的技术优势,但如果您需要的应用程序根本不存在,那么它就毫无用处。

本文介绍如何设置和使用 Wine Windows 模拟环境来运行声音和音乐应用程序。 我测试了一些程序,并指出了在 Wine 下运行 Windows 音乐和声音软件可以合理预期的性能质量。

一些细节

系统模拟器有两种基本类型,机器架构模拟器和操作系统模拟器。 Wine 是一个完整的软件包,可以模拟 Windows 操作系统。 不需要 Windows 本身。 Wine 包含其自身版本的 Windows 系统 DLL,但如果您愿意,可以使用原生 Windows 版本。 根据预期用途,系统可能需要您的应用程序期望的其他原生支持软件。

Wine 的声音功能在很大程度上是为了响应那些希望在不离开自己喜欢的操作系统的情况下玩自己喜欢的游戏的用户而开发的。 因此,Wine 已成为运行 Windows 音频和 MIDI 应用程序的良好选择。 但是,在安装模拟器之前,您应该查看其文档以获取最新的声音系统状态报告。 如果您打算在模拟下运行特定的声音或 MIDI 应用程序,那么您的成功将取决于多种因素,包括对原始文件格式、音频采样率和所需驱动程序的支持。

本文中的测试是在一台 800MHz 的机器上进行的,该机器配备了 M-Audio Delta 66 数字音频 I/O 系统和 SBLive Value 声卡。 软件基础包括 ALSA 1.0.4、JACK 0.99 和一个为低延迟打补丁的坚如磐石的 2.4.26 Linux 内核。 与往常一样,您的结果可能会有所不同。

Wine

Wine 是 WINdows Emulator 或 Wine Is Not an Emulator 的首字母缩写。 奇怪的是,这两种解释都是正确的。 Wine 是 wine 可执行文件,一个运行 Windows 程序的 Linux 程序,它同样也是 libwine,一个旨在协助 Windows/Linux 跨平台开发的库。

在 alpha 发布级别经历了 12 年之后,Wine 现在正式成为一个 beta 阶段的项目。 希望这一事件预示着一个更加稳定的环境,但某些程序仍然可能表现不稳定。 Wine 文档提供了有关提交有用的错误报告的详细说明,因此如果您发现您最喜欢的 Windows 程序在 Wine 下运行不佳(或根本无法运行),您可以通过提交报告来帮助自己和该项目。

Wine 对基本声音和 MIDI 的支持良好,并且对 Microsoft DirectX 等音频扩展的支持正在改进,但您将无法使用 Wine 运行大型集成多媒体应用程序,例如 Cubase 或 SONAR。 但是,Wine 可以运行各种声音和音乐程序,甚至是一些相当大的软件包。 查看 Wine 网站(请参阅在线资源)以获取指向列表的链接,这些列表对各种 Windows 应用程序的兼容性进行评级。

获取和构建

WineHQ 网站以各种软件包格式提供 Wine,包括常见的 RPM 和 DEB 格式以及完整的源代码 tarball。 使用您选择的软件包管理器安装最新版本。 如果您决定从源代码包构建 Wine,只需打开一个 xterm,进入您的新 wine-x.x.x 目录并运行./tools/wineinstall(以普通用户身份)。 回答提示,然后放松并让 Wine 安装程序完成其工作。

安装完成后,运行发行版中包含的 notepad.exe 文件

wine $HOME/c/windows/notepad.exe

如果熟悉的编辑器出现,则 Wine 已准备好使用。 现在您可以尝试运行一些 Windows 音乐和声音应用程序。

系统要求和构建过程可能因版本而异,因此如果您决定自己构建 Wine,请务必阅读 README 并遵循软件包中包含的推荐安装说明。 本文使用的版本是 Wine 0.9.6,于 2006 年 1 月 20 日发布。

Wine 中的音频和 MIDI 支持

基于 Linux 的音乐家有两个充分的理由对 Wine 的声音支持感兴趣。 第一个原因是应用程序。 一些 Windows 声音程序在原生 Linux 版本中没有等效程序,而在 Wine 下运行这些程序的可能性非常有吸引力。 第二个原因与 libwine 有关。 该库是在 Linux 下为运行 Windows VST/VSTi 音频合成/处理插件提供支持的项目中的关键组件。 在本文中,我仅关注在 Wine 下运行应用程序,但有兴趣了解更多关于 Linux + VST 连接的读者应查看网页(请参阅资源)以获取有关 FST (FreeST) 项目的详细信息。

在用户级别,Wine 音频支持的核心可以在 ~/.wine/config 文件中找到。 这是该文件的相关部分,因为它出现在我的 Wine 配置中

[WinMM]
; Uncomment the "Drivers" line matching your sound setting.

"Drivers" = "winealsa.drv"    ; for ALSA users
;"Drivers" = "wineoss.drv"     ; default for most common configurations
;"Drivers" = "winearts.drv"    ; for KDE
;"Drivers" = "winejack.drv"    ; for the JACK sound server
;"Drivers" = "winenas.drv"     ; for the NAS sound system
;"Drivers" = "wineaudioio.drv" ; for Solaris machines
;"Drivers" = ""                ; disables sound
"WaveMapper" = "msacm.drv"	 ; do not change !
"MidiMapper" = "midimap.drv"	 ; do not change !

WaveMapper 和 MidiMapper 是必需的; 它们模拟原生 Windows MCI(媒体控制接口)驱动程序,这些驱动程序提供用于控制多媒体设备以及播放和录制多媒体数据文件的标准命令。

Wine 为 OSS/Free(默认)、ALSA、aRts、JACK 和 NAS(网络音频系统)提供音频接口驱动程序。 您可以随时选择新的驱动程序,但您需要重新启动 Wine。 您对声音驱动程序的选择可能由应用程序决定。 根据我的经验,某些程序仅适用于 OSS/Free 驱动程序,另一些程序仅适用于 ALSA,还有一些程序在这两者中都可以很好地工作。 我特别高兴看到列出了 JACK 驱动程序,但据我所知,JACK 驱动程序在此版本中已损坏 - 这提醒我们 Wine 仍处于 beta 阶段的软件。

在 Wine 下运行声音应用程序

由于篇幅限制,无法在此处完整描述我在此处评测的程序的安装和配置详细信息。 我想在不采取英雄措施的情况下测试 Wine 的音频性能,尽可能仅使用其默认设置,并且仅执行上述选择合适的声卡驱动程序的操作。 我提供了每个测试程序的简要描述,然后我讲述了我在 Wine 下运行该程序的经验。 请注意,这些测试主要是使用程序附带的演示和示例进行的,我的结论必然是临时的和不完整的。

AudioMulch

Ross Bencina 的 AudioMulch 是一个声音合成和音乐创作环境,具有独特的界面,并非常强调实时性能。

Running Sound Applications under Wine

图 1. AudioMulch

AudioMulch 将自身分为三个主要面板(图 1)。 最左侧的面板是图形乐器设计和连接中心——您可以在其上放置和连接 AudioMulch 的各种合成和处理模块的画布。 在此面板旁边,我们看到了您选择的模块的参数控件。 在所有这些之下是自动化控件——一堆断点显示,用于实时控制模块参数更改。

AudioMulch 中的所有内容都旨在进行实时更新。 我通过加载一个示例文件并随机更改其控件和断点显示来验证了这一说法。 AudioMulch 轻松跟上了我的更改,并且 Wine 的音频从未中断或卡顿。 非常令人印象深刻!

我测试了 AudioMulch 版本 1.0rc2。 它安装简单,可以立即使用。 我加载并运行了软件包中包含的每个示例,并且每个示例都在 Wine 的 OSS/Free 和 ALSA 驱动程序下完美运行。 潜在用户应注意,AudioMulch 是共享软件,而不是免费软件,注册费为 50 美元。 如果您想试用候选版本,请注意它将在 AudioMulch 网站上指示的日期到期。

Band-in-a-Box

Band-in-a-Box 是一款自动伴奏生成器。 该程序创建了一个虚拟伴奏乐队,该乐队根据选定的“风格”解释一系列用户定义的和弦变化。 Band-in-a-Box 风格是一组规则,用于管理特定音乐表演风格的可量化方面,例如乡村摇摆舞、伦巴舞、华尔兹舞曲、布鲁斯 shuffle 等等。 当用户单击“播放”控件时,程序会根据风格规则处理和弦变化,生成实时演奏流,并使用您首选的 MIDI 合成器播放。 瞧,您就拥有了梦想中的排练乐队。

Running Sound Applications under Wine

图 2. Band-in-a-Box

Band-in-a-Box 是自动伴奏软件领域的王者。 需要更慢地演奏这些变化吗? 没问题,Band-in-a-Box 是一个基于 MIDI 的程序,因此您可以将速度调整到最舒适的任何速度。 想要以不同的节拍或节奏演奏这些和弦吗? 仍然没问题,Band-in-a-Box 提供了数百种风格可供选择,如果您不喜欢基本软件包中包含的内容,您可以设计自己的风格,或者访问该程序庞大的用户和风格开发者群体创建和免费分发的数千种风格和编排。 不喜欢特定风格的乐器配置? 随时更改它,从乐队中添加或减去演奏者,或随意静音部分。

我从该程序的网站下载了最新的 Band-in-a-Box 演示版,并使用以下命令安装了它wine bbw2004demo.exe在 xterm 提示符下。 我进入了我的新 ~/c/bbdemo 目录并运行了wine bbwdemo以启动 Band-in-a-Box。 我从“文件/BB 歌曲”对话框加载了一个示例风格,按下了“播放”控件,并观看程序显然播放了加载的风格。 可惜,没有声音。 我将默认 MIDI 输出重新配置为转到我的 SBLive Value 声卡上的 Emu10k1 合成器,按下“播放”,瞧,我有声音了。 我测试了其他内置风格,所有这些风格都非常乐意像在 Windows 本身下播放一样执行。

我只发现演示版中存在一个潜在的严重问题。 我将 MIDI 输入设备配置为 SBLive 上的硬件端口,但 Band-in-a-Box 不会录制我在 MIDI 键盘上弹奏的内容。 该程序的虚拟键盘显示工作正常,但我更喜欢直接从硬件接口录制,因此也许是时候启动 Wine 调试工具了。

Band-in-a-Box 是严格的商业软件,Pro 版本的标价为 88 美元。 当然,演示版是免费的。

Band-in-a-Box 荣幸地在 Wine AppDB Gold 10 中占有一席之地,Wine AppDB Gold 10 是一个 Windows 应用程序精选集,这些应用程序在 Wine 下表现出始终如一的卓越性能。 通过我的简单测试,我必须同意该评级。 Band-in-a-Box 是一款出色的音乐应用程序,在模拟下运行良好。 考虑将其作为双重推荐。

Buzz

Buzz 将 tracker 风格的 pattern 和序列编辑器与强大的音频合成/处理环境相结合,形成一个用于声音设计和音乐创作的一体化软件包。 没有其他音乐软件像 Buzz 一样。

我曾尝试按照 Windows 用户的正常说明不成功地安装 Buzz,但在阅读 Wine AppDB 上的评论后,我发现我需要一个与官方 Buzz 网站上提供的安装包不同的安装包。 以下是我在 Wine 下成功安装和运行 Buzz 的步骤

  • buzzdistro.cjb.net 下载了软件包。

  • 运行wine buzz_base.exe以安装程序。

  • 将目录更改为 ~/c/Program Files/Buzz。

  • 运行wine buzz. (真的!)

确实,如图 3 所示,Buzz 在 Linux 下运行。

Running Sound Applications under Wine

图 3. Wine Buzz

Buzz 合成和处理模块在 Buzz 术语中被称为“机器”。 默认软件包包含数十个立即有用的机器,Buzz 社区还提供了数百个机器。 像许多其他合成应用程序一样,Buzz 使用“patching”隐喻来构建您自己的音频处理网络——也就是说,您可以使用虚拟跳线将机器链接在一起,以创建表示您网络的数据流图。

图 3 显示了一些打开的机器。 无论何时您想操作机器的参数,只需双击机器框,其控制面板就会出现。 您可以使用鼠标或 MIDI 控制器实时控制所有参数。

Buzz 的合成界面非常类似于典型的 tracker 界面(图 4)。 滚动显示表示所选 pattern 长度内的节拍。 音频事件(通常是采样声音)输入到 pattern 内任何位置的所需节拍线上。 然后将完成的 pattern 链接在一起以形成歌曲序列。

Running Sound Applications under Wine

图 4. Buzz Tracker 界面

顺便说一句,从上面的链接获得的软件包不是唯一的 Buzz-for-Linux 软件包。 如果该软件包不适合您,请尝试从 Flavor8 获得的软件包捆绑包(请参阅资源)。 在那里仔细阅读提示和技巧,并务必查看使用 Buzz 在 Linux 上制作的演示。

Buzz 是一个功能非常丰富的应用程序,无法在此处深入探讨,因此我只是建议播放和研究发行版中包含的一些演示文件。 该软件包包含广泛的文档,并且可以通过 Buzz 主站点联系到非常活跃的用户社区。 Buzz 是免费软件,尽管令人遗憾的是没有原生 Linux 版本的 Buzz 存在(或永远不会存在——源代码已丢失),但作为原生版本的替代品,您仍然可以使用 Wine 享受愉快的 Buzz。 抱歉,我不得不说这句话。

一些结论

在撰写本文的过程中,我还尝试运行许多以各种方式失败的声音和音乐程序。 Native Instruments 非常酷的 FM7 加载并似乎可以工作(它接收来自我键盘的 MIDI 输入),但没有声音从中发出。 NI 的 Tracktion 已安装并运行,但其音频输出严重失真。 最新的 Finale 演示根本无法安装,而 Reaktor 5 演示已安装但在启动时崩溃。 当然,所有这些程序在其原生 Windows 环境中都运行良好,这只是说明 Wine 仍在开发中。

我还就使用 Wine 运行 Windows 音频应用程序的意见和经验征求了 Linux 音频用户邮件列表的意见。 正如预期的那样,输入各不相同。 报告包括 Native Instruments 的 Battery 和 Kontakt、Renoise tracker 和 Guitar Pro 3 演示等应用程序的全部或部分成功。 我计划建立一个网页,列出已使用 Wine 测试过的 Windows 音频/MIDI 应用程序,因此如果您有任何值得注意的成功或失败案例要报告,请通过 dlphilp@linux-sound.org 与我联系。

希望在本文印刷时,Wine 的 JACK 驱动程序将在 Wine 的稳定版本中再次工作。 JACK 是 Linux 音频的现在和未来,对于 Wine 项目来说,这将绝对是一件好事。 虚拟 ASIO 驱动程序也可能是一个有用的补充。

理想情况下,原生 Linux 应用程序将取代其 Windows 对应程序,但在那美好的时光到来之前,Wine 可能被证明是双启动或设置辅助计算机的可行替代方案。 它可能会为您的软件投资带来新的活力,并有望能够很好地工作,让您运行那些仍然没有 Linux 等效程序的必要音乐和声音应用程序。

本文资源: /article/8886

Dave Phillips 是一位音乐家、教师和作家,居住在俄亥俄州芬德利。 自 1995 年首次接触 Linux 以来,他一直是 Linux 音频社区的活跃成员。 他是 The Book of Linux Music & Sound 以及 Linux Journal 中许多文章的作者。 可以通过 dlphilp@linux-sound.org 与他联系。

加载 Disqus 评论