HOME

TheInfoList



OR:

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 Documentation

Linux Journal article
*
List of JACK enabled applications

Another 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