半壁江山!介绍JACK Audio Connection Kit

Introduce JACK Audio Connection Kit

Posted by Tee on April 15,2017

你也许听过ASIO,听过Rewire,听过Soundflower,但你使用Linux不能没听过JACK。JACK的全称是JACK Audio Connection Kit,递归缩写为JACK。它推动了Linux及OSX、Windows的音频发展,可以说是半壁江山。下面我们就来聊聊JACK。

关于JACK

JACK由保罗·戴维斯带领的一个开源社区开发。自从2002年初以来一直是Linux下的关键的基础设施和事实上的专业音频软件标准。这个服务是在GNU GPL协议下的开源软件,它的库则采用更宽松的GNU LGPL协议。

JACK是一个跨平台的音频服务,它可以运行在Linux、 Mac OS X、 Solaris、 Windows、 FreeBSD、 OpenBSD 和 NetBSD上。能使用ALSA、PortAudio、CoreAudio、FFADO和OSS作为硬件层的后端。还有一个虚拟的驱动(当不需要声音输出时是很有用的,例如离线渲染)和一个通过UDP协议的音频驱动(Audio-over-UDP driver)。

到了现在已经有无数的音频、视频软件支持JACK。无论是在Linux下达到低延迟,还是连通不同的软件的走带、输入输出,JACK绝对是首选。

JACK的版本

目前JACK拥有2个版本,jack1与jack2,其中jack2支持Windows,jack1不支持Windows。jack1由简单的C实现并且已经维护了一段时间;jack2由Stéphane Letz领导的用C++重写的实现,jack2在积极开发中,目标是支持多处理器和对其它非Linux操作系统。如果你需要DBUS支持,需要使用jack2。关于它们之间的详细区别请看官方WIKI

安装JACK

jack1与jack2不能同时共存,根据自己的需求选择。像需要连接pulseaudio,需要jack2-dbus。

  • Arch Linux

    • jack1:
      sudo pacman -S jack
      
    • jack2
      sudo pacman -S jack2
      
    • jack2-dbus
      sudo pacman -S jack2-dbus
      
  • Ubuntu

    • jack1
      sudo apt-get install jackd
      
    • jack2
      sudo apt-get install jackd2
      

JACK的控制软件

最常用的有Qjackctl:

还有Cadence:

安装命令:

关于JACK启动

声卡的选择,延迟的设置等都可以在这两个JACK控制软件里控制。

  • 使用GUI图形启动(推荐)
    • 在Cadence界面按"Start"启动(推荐)
    • 在Qjackctl界面按"Start"

使用Qjackctl启动JACK之前,可能需要在终端输入启动JACK服务的命令:

jack_control start

使用Cadence则不需要,比较易用。

在Daw里选择JACK进行连接

  1. 需要先启动JACK,可以用命令启动,也可以在GUI程序界面按"Start"。

  2. 在Daw里选择JACK驱动。如Ardour:

  3. 大部分Daw会在启动连接JACK后自动连接输入输出。如果还没有连接,或你需要自定义更多的输入输出,需要在GUI里连接。如图在Catia里连线:

     

开机启动JACK

最容易的方法是开机启动JACK的图形控制软件,如Cadence和Qjackctl,让它们启动的时候自动启动JACK服务。另外需要考虑的是你使用的音频组件组合,最方便的控制是Cadence,不需要自行写Alsa的配置文件。

这个部分比较罗嗦,这里不做太多的展开,后续继续更新,欢迎关注啦哆咪。

参考资料

https://zh.wikipedia.org/zh-hans/JACK_Audio_Connection_Kit

http://www.jackaudio.org/faq/

https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit