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 Hofs ...
) is a professional
sound server
A sound server is software that manages the use of and access to audio devices (usually a sound card). It commonly runs as a background process.
Sound server in an operating system
In a Unix-like operating system, a sound server mixes dif ...
API and pair of
daemon
Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and Greek mythology, mythology and of later Hellenistic religion and Hell ...
implementations to provide real-time,
low-latency
Latency, from a general point of view, is a time delay between the cause and the effect of some physical change in the system being observed. Lag, as it is known in gaming circles, refers to the latency between the input to a simulation and ...
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
A ''de facto'' standard is a custom or convention that has achieved a dominant position by public acceptance or market forces (for example, by early entrance to the market). is a Latin phrase (literally " in fact"), here meaning "in practice b ...
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, n ...
, 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
PortAudio is an open-source computer library for audio playback and recording. It is a cross-platform library, so programs using it can run on many different computer operating systems, including Windows, Mac OS X and Linux. PortAudio supports C ...
,
CoreAudio
Core Audio is a low-level API for dealing with sound in Apple's macOS and iOS operating systems. It includes an implementation of the cross-platform OpenAL.
Apple's Core Audio documentation states that "in creating this new architecture on Ma ...
,
FFADO 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, whi ...
,
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 computers. Within the market of desktop and la ...
,
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 se ...
,
iOS,
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
,
OpenBSD
OpenBSD is a 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 forking NetBSD 1.0. According to the website, the OpenBSD project e ...
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 ava ...
.
The JACK API is also implemented by
PipeWire, 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
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both side ...
34 and newer.
Low-latency scheduling
The
scheduling requirements of JACK to achieve sufficiently low latencies were one of the driving forces behind the
real-time
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
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
LADSPA is an acronym for Linux Audio Developer's Simple Plugin API. It is an application programming interface (API) standard for handling audio filters and audio signal processing effects, licensed under LGPL-2.1-or-later. It was originally des ...
&
LV2 – APIs for plugins
*
PulseAudio
PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris operat ...
– sound server for desktop use
*
List of Linux audio software
The following is an incomplete list of Linux audio software.
Audio players
GStreamer-based
* Amarok is a free music player for Linux and other Unix-like operating systems. Multiple backends are supported (xine, helix and NMM).
* Banshee is ...
*
Comparison of free software for audio
This comparison of free software for audio lists notable free and open source software for use by sound engineers, audio producers, and those involved in sound recording and reproduction.
Players
Audio analysis
Converters
DJ software
...
*
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