JACK 之友
JACK 之友
JACK 音频服务器/主传输控制系统是现代 Linux 声音制作工作室的基石。这在我的工作室中肯定是如此,并且鉴于 JACK 的复杂性,我还使用许多有用的“JACK 之友”,即揭示和扩展 JACK 功能的软件。本文着眼于在 Dave 工作室最常用的其中一些朋友。
掌控全局:QJackCtl、Patchage 和 jack.*
当然,JACK 完全可以在命令提示符下配置,而且在那里使用甚至并不特别困难。但是到现在,我已经完全被 GUI 同化了,所以我必须有一个图形实用程序来设置我的 JACK 系统。幸运的是,我有两个绝佳的选择,Rui Nuno Capela 的 QJackCtl 和 Dave Robillard 的 Patchage。
QJackCtl(图 1)对于经常阅读我的文章的读者来说无需过多介绍。多年来,它一直是我的 JACK 控制站,这可以从这些文章中的许多屏幕截图中得到证明。该程序的开发自然而然地遵循 JACK 的开发轨迹,QJackCtl 中出现的新功能补充了 JACK 的最新功能,例如 JACK Session 面板。QJackCtl UI 还包括一组用于操作 JACK 传输控制系统的虚拟按钮,这对于使用无 GUI 程序(如 Ecasound 或 Csound)非常方便。
图 1. QJackCtl
Patchage(图 2)看起来非常不同,但它作为 JACK 客户端连接管理器的本质与 QJackCtl 相同。但是,Patchage 将客户端呈现为图形模块,可以在背景画布上自由移动和连接。图形排列可以保存和调用,并且可以根据需要重新组织其视觉组件。据我所知,Patchage 不提供传输控制或其他 JACK 管理功能,但其 GUI 非常酷,并且是无处不在的 QJackCtl 的流行替代品。
图 2. Patchage
如前所述,GUI 不是完全控制 JACK 的必要条件。Rohan Drape 创建了 jack.*,这是一组用于管理 JACK 客户端连接和操作其传输控制的命令行实用程序。该软件包还包括用于从终端提示符进行录制和播放的便捷程序。
JACK 音频文件编辑器:mhWaveEdit
Linux 有一些出色的音频文件编辑器——Audacity、SND 和 ReZound 多年来在我的工作室中都发挥了作用——但它们在 JACK 上的性能一直不太理想。Audacity 对 PortAudio 的 JACK 实现的依赖导致连接受挫,过去版本的 SND 产生了许多 xrun,而 ReZound 在 JACK 下可能不稳定。幸运的是,开发人员 Magnus Hjorth 使用他的 mhWaveEdit(图 3)来拯救我,这是一款专门为在基于 JACK 的音频制作环境中使用而创建的音频文件编辑器。
图 3. mhWaveEdit
mhWaveEdit 的开发历史可以追溯到至少 2005 年,当时 1.1 版本被添加到 Gna! 软件开发存储库中。该程序已成熟到 1.4.20 版本,但不幸的是,它现在似乎已成为弃置软件。这太糟糕了,因为 mhWaveEdit 是 JACK 工作室的一个很好的补充。它不提供其他音频编辑器中的各种特性和功能,但它提供了基本的剪切/复制/粘贴例程,以及采样率/格式转换、增益和归一化控件以及对 LADSPA 效果插件的支持。UI 简洁明了,易于使用,工作流程快速高效,并且程序的稳定性似乎非常可靠。
我非常喜欢 mhWaveEdit,我希望它的开发能够继续。支持 LV2 和原生 VST 插件会很棒,主波形显示中的上下文菜单也是如此,但我真的无法抱怨该程序目前的状况。它速度快、稳定,并且能够按预期工作,目前这对我来说已经足够了。
插件宿主:JACK Rack、Zynjacku 和 CALF Jack Host
JACK Rack(图 4)是我典型的 JACK 会话中的另一个主要组成部分。它是一个简单的应用程序,是 LADSPA 插件的宿主,它为 MIDI 参数控制提供了一个接口,并支持自由排序插件序列。机架可以保存和调用以供以后使用,并且可以从命令行加载,这为 JACK Rack 在我的面向音频的脚本中提供了一些额外的实用性。
图 4. JACK Rack
图 5. CALF Jack Host
Zynjacku 项目的软件和 CALF Jack Host 可以被认为是 LV2 插件的 JACK Rack。Zynjacku 是 LV2 合成器的宿主,而它的姊妹应用程序 LV2rack 托管效果插件。CALF 宿主(图 5)接受效果和合成器插件,但仅接受来自 CALF 集合的插件。
与 Xjadeo 进行视频同步
至此,应该很明显,这里介绍的程序是具有明确定义的任务和目标的专用实用程序。Xjadeo 也不例外——它只是将视频与 JACK 时间主控(如 Ardour 或 QTractor(图 6))同步运行,这几乎就是它所做的全部。但是,它使用户能够快速轻松地将音乐与视频在帧级别上匹配。我在 Ardour 中广泛测试了 Xjadeo,并且在 Ardour 支持的任何帧速率下都没有遇到任何错误。该程序还完美支持 MTC(MIDI 时间码),就我简单的测试而言。
图 6. Xjadeo 与 QTractor 同步
Python 绑定:PyJack
我还没有找到时间去学习 Python,而且我真的应该找时间学习。我不断地以某种形式或另一种形式遇到该语言——在 Steven Yi 的 blue、Michael Gogins 的 CsoundAC 和 Christopher Ariza 的 AthenaCL 中,最近的例子——所以我了解到 PyJack,一个用于向 Python 程序传递 JACK 功能的紧凑型包装器,并没有感到太惊讶。我在调查 Blender/JACK 连接期间发现了 PyJack,它似乎可以正常工作。正如我所说,我不是 Python 程序员,因此您需要自行查看其功能和用法的详细信息。
使用 JACK 轻松录音:Time Machine 和 Jack Capture
Steve Harris 的 TimeMachine(图 7)是一个简洁的程序:启动后,它会启动一个记录器守护程序,该守护程序在后台持续缓冲最后十秒的音频活动。正如 Steve 在 TimeMachine 网站上描述其概念一样
“这个想法是,我在我的工作室里随意涂鸦,当我听到有趣的声音时,我会按下录制并捕获它,而无需尝试重新创建它。”
图 7. Steve Harris 的 TimeMachine
图 8. jack_capture
jack_capture 实用程序是 Kjetil Matheussen 对不断扩展的 JACKed 应用程序世界的贡献之一。它是一个看似简单的记录器,具有一些非常酷的功能,包括支持 libsndfile 支持的所有音频文件格式以及编码为 MP3 的能力(具有正确的依赖项)。源软件包为命令行和基于 GTK2 的 GUI 构建版本(图 8),除了它们的 UI 之外,它们彼此相同。
图 9. MeterBridge
顺便说一句,jack_capture 是出色的 guitarix/gx_head 吉他放大器模拟器中的首选录音实用程序,它与 Steve Harris 的酷炫 MeterBridge(图 9)结合使用。如图所示,MeterBridge 提供了多种显示方式来表示信号强度,包括 PPM(峰值节目电平)、VU(音量单位)和 DPM(数字峰值)表。是的,它也需要 JACK。
使用 JACK 进行母带处理:JAMin
音频母带处理是一个“润色”一组音轨的过程,以平衡它们相对于彼此的幅度(以及其他必要的方面)。母带处理过程确保一个音轨的音量相对于其余音轨不会太大或太小,从而使听众无需为光盘上的每个音轨调整播放音量。
图 10. JAMin
在硬件领域,用于音频母带处理的主要工具包括动态处理器(压缩器/限制器)、频谱处理器(均衡器)和输入/输出增益控制(用于平衡幅度)。所有这些组件都存在软件等效项,有抱负的基于 Linux 的母带处理工程师会很高兴地发现这些等效项整齐地打包在一个名为 JAMin(图 10)的工具中,即 JACK 音频母带处理界面。我不会在这里详细介绍它的用法——母带处理与其说是一门科学,不如说是一门艺术——但您可以查看 Ron Parker 撰写的关于 JAMin + Ardour 的优秀教程,以获取有关使用该程序的更具体信息。
纪念:Max V. Mathews (1926-2011)
很难想象计算机音乐的哪个方面没有受到 Max Mathews 工作的影响。如果您不了解他,请阅读 关于这个人的维基百科页面,默哀片刻以示纪念,然后发出欢快的噪音来纪念他的一生和他惊人的成就。
天堂般的合唱团,迎接 Radio Baton。
结尾
我的下一篇文章将介绍最近三次关注开源音频软件的会议的第一份报告。和往常一样,很多很酷的东西正在各地发生。几周后再次查看此专栏,了解弗吉尼亚理工大学(世界上第一个也是最好的 Linux 笔记本电脑乐团的所在地)的最新动态。那里也有一些非常好的餐厅,但您必须稍后回来查看完整的故事。到时见!