我使用 apt-get 安装 Ardour(一个混音程序),只是为了试用一下。安装 Ardour 还会安装依赖项 JACK。作为 JACK 安装脚本的一部分,我得到了以下对话框:
如果要以实时优先级运行 jackd,启动 jackd 的用户需要实时权限。接受此选项以创建文件 /etc/security/limits.d/audio.conf,为音频组授予实时优先级和 memlock 权限。
以实时优先级运行 jackd 可以最大限度地减少延迟,但可能会因请求所有可用的物理系统内存而导致系统完全锁定,这在多用户环境中是不可接受的。
启用实时进程优先级?
我正在我的笔记本电脑上安装,它从来没有多个用户同时使用。我仍然有些担心:JACK 会被系统本身用来播放任何声音吗(即它会取代 ALSA 吗)?如果是这样,这是否意味着如果我为 JACK 启用实时优先级,每次播放任何声音时,我都会面临机器死机的轻微风险?或者 JACK 目前只会被 Ardour 使用(直到我安装其他依赖 JACK 的程序)?
答案1
Jackd 通常不会取代 ALSA。Jackd 通常使用 ALSA 来提供其输出。Jackd 提供的是其他软件可以使用的低延迟音频修补/路由网络。只有设计为使用 Jackd 的软件才会使用 JackD。只有在运行使用它的软件时才需要运行 Jackd(例如jackd 是一种通用的 Linux 发行版,它包括:Ardour、Rosegarden、Jack-rack。当你没有运行使用 jackd 的程序时,你不必运行 jackd。
我发现控制 jackd 的最佳程序是 qjackctl,它可以通过 Ubuntu 软件中心作为 Jack Control 安装。它允许启动/停止 jackd、配置其运行方式以及设置连接。
为了获得尽可能低的延迟,jackd 确实希望使用实时优先级线程。为 jackd 启用实时处理是一件好事,不会损害您的系统。(我现在正在打字的机器已经在 2 个不同的 Linux 发行版和 2 个不同的硬件版本下启用了它 4 年,没有任何锁定。)
顺便说一句,一旦你开始使用 jackd 的一些功能,它就会变得非常令人上瘾。通过启动不同的效果机架(jack-rack 实例)并设置连接,我可以进行立体声录音并创建实时 4.2 输出,其中我为后置扬声器设置了不同的延迟混响/延迟、自定义中置声道混音和低音炮输出。(我仍在尝试为此寻找一个好的八度倍频器。)
答案2
解决实时锁定问题的一种方法是打开一个bash
优先级高于 的终端jackd
。如果您发现实时 CPU 占用的迹象,请使用高优先级终端终止jackd
。在学习专业音频的 irq 微调艺术之前,我曾使用这种方法来避免完全崩溃。学习难度高,回报丰厚!