Jack

Linux中的一种音频接口
Jack(JACK Audio Connection Kit 的递归缩写)是一个专业级的声音服务(守护进程),它为声音和MIDI数据提供实时的、低延时的连接,有关的程序使用JACK的API。它是由保罗·戴维斯(Paul Davis)(他凭着这项工作赢得了2004年的开源奖)带领的一个开源社区开发。自从2002年初以来一直是Linux下的关键的基础设施和事实上的专业音频软件标准。这个服务是在GNUGPL协议下的开源软件,它的库则采用更宽松的GNU LGPL协议。

产品实现

JACK能使用ALSA、PortAudio、CoreAudio、FFADO和OSS作为硬件层的后端。此外, 还有一个虚拟的驱动(当不需要声音输出时是很有用的,例如离线渲染)和一个通过UDP协议的音频驱动(Audio-over-UDP driver)。它可以运行在Linux、Mac OS X、SolarisWindowsFreeBSDOpenBSDNetBSD上。JACK的API被标准化,并且存在两种可融合的实现:jack1,由简单的C实现并且已经维护了一段时间;至于jack2(原来的jackdmp),由Stéphane Letz领导的用C++重写的实现,jack2在积极开发中,目标是支持多处理器和对其它非Linux操作系统。
JACK API也被PipeWire实现,以实现向后兼容性,作为JACK客户端的完全替代提供者,将JACK API调用映射到等效的PipeWire调用。PipeWire旨在统一计算机上通常找到的不同音频服务器和API,并允许不同软件之间更好地集成。在Fedora 34及更高版本上,PipeWire作为JACK的默认实现是默认设置。

低延迟调度