JACK Audio Connection Kit (or JACK; a
recursive acronym
A recursive acronym is an acronym that refers to itself, and appears most frequently in computer programming. The term was first used in print in 1979 in Douglas Hofstadter's book '' Gödel, Escher, Bach: An Eternal Golden Braid'', in which Hof ...
) is a professional
sound server API and pair of
daemon implementations to provide real-time,
low-latency connections for both audio and MIDI data between applications. JACK was developed by a community of open-source developers led by
Paul Davis (who won an Open Source Award in 2004 for this work) and has been a key piece of infrastructure and the
de facto standard for professional audio software on Linux since its inception in 2002. The server is
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
, licensed under
GPL-2.0-or-later, while the library is licensed under
LGPL-2.1-or-later.
Implementations
The JACK API is standardized by consensus, and two compatible implementations exist: jack1, which is implemented in plain C and has been in maintenance mode for a while, and jack2 (originally jackdmp), a re-implementation in C++ originally led by Stéphane Letz, which introduced multi-processor scalability and support for operating systems other than Linux.
JACK can be used with
ALSA,
PortAudio,
CoreAudio,
FFADO
Free FireWire Audio Drivers (FFADO) is a project to provide open-source drivers for FireWire
IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the l ...
and
OSS
OSS or Oss may refer to:
Places
* Oss, a city and municipality in the Netherlands
* Osh Airport, IATA code OSS
People with the name
* Oss (surname), a surname
Arts and entertainment
* ''O.S.S.'' (film), a 1946 World War II spy film about ...
as hardware
back-ends. Additionally, a dummy driver (useful if no sound output is desired, e.g. for offline rendering) and an Audio-over-UDP driver exist. One or both implementations can run on
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
Solaris,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
iOS,
FreeBSD,
OpenBSD
OpenBSD is a security-focused operating system, security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking N ...
and
NetBSD
NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
.
The JACK API is also implemented by
PipeWire
PipeWire is a server for handling audio, video streams, and hardware on Linux. It was created by Wim Taymans at Red Hat. It handles multimedia routing and pipeline processing.
History
In 2015, Taymans started work on PipeWire. It was based ...
, which is able to act as a complete drop-in replacement provider for JACK clients, mapping JACK API calls to equivalent PipeWire calls. If used as a replacement for ALSA and PulseAudio as well, it can unify the different sound servers and APIs that might be typically found on a machine, and allow better integration between different software. PipeWire also claims to add a number of features and fix a number of limitations compared to JACK. The use of PipeWire as the default implementation of JACK is the default on
Fedora 34 and newer.
Low-latency scheduling

The
scheduling
A schedule or a timetable, as a basic time-management tool, consists of a list of times at which possible tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order in which such things are i ...
requirements of JACK to achieve sufficiently low latencies were one of the driving forces behind the
real-time optimization effort for the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
2.6 series, whose initial latency performance had been disappointing compared to the older 2.4 series. Real-time tuning work culminated in numerous scheduling improvements to the mainline kernel and the creation of an -rt branch for more intrusive optimizations in the release 2.6.24, and later the
CONFIG_PREEMPT_RT patch.
Applications with JACK support
See also
*
LADSPA &
LV2 – APIs for plugins
*
PulseAudio – sound server for desktop use
*
List of Linux audio software
*
Comparison of free software for audio
*
ASIO free alternatives
References
External links
*
JACK API DocumentationLinux Journal article*
List of JACK enabled applicationsAnother article on JACK (PDF, non-free)JACK on iOS (iPhone and iPad)
{{DEFAULTSORT:Jack Audio Connection Kit
Application programming interfaces
Audio libraries
Audio software for Linux
Free audio software
Linux APIs
Music software plugin architectures