Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
JACK Audio Connection Kit
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Professional sound server for Unix-like operating systems}} {{Infobox software | name = JACK Audio Connection Kit | logo = LogoJack.png | author = [[Paul Davis (programmer)|Paul Davis]], Stéphane Letz | developer = JACK team | released = {{start date|2002}} | repo = {{URL|https://github.com/jackaudio/jack2}} | operating_system = [[BSD]], [[Linux]], [[macOS]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]], [[iOS]] | programming language = [[C (programming language)|C]],<ref>{{cite web |url=https://www.openhub.net/p/jack |title=JACK |work=Analysis Summary |publisher=[[Ohloh]] |access-date=2012-01-08}}</ref> [[C++]] | genre = [[Sound server]] | license = Server: [[GNU General Public License|GPL-2.0-or-later]]<br />Library: [[GNU Lesser General Public License|LGPL-2.1-or-later]]<ref name="license">{{cite web | url = https://jackaudio.org/api/ | title = JACK Audio Connection Kit - License | access-date = 2021-06-08 | archive-url = https://web.archive.org/web/20210503015727/https://jackaudio.org/api/ | archive-date = 2021-05-03 | url-status = live}}</ref> | website = {{official URL}} | latest release version = {{multiple releases | branch1 = JACK1: | version1 = v0.126.0 | date1 = {{Start date and age|2022|01|15}} | branch2 = JACK2: | version2 = v1.9.22 | date2 = {{Start date and age|2023|02|03}} }} }} '''JACK Audio Connection Kit''' (or '''JACK'''; a [[recursive acronym]]) is a professional [[sound server]] [[Application programming interface|API]] and pair of [[daemon (computing)|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 (programmer)|Paul Davis]] (who won an Open Source Award in 2004 for this work)<ref>{{cite web |url=http://www.techrepublic.com/article/open-source-awards-2004-paul-davis-for-jack/ |title=Open Source Awards 2004: Paul Davis for JACK |publisher=techrepublic.com.com |access-date=24 May 2016}}</ref> 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]], licensed under [[GNU General Public License|GPL-2.0-or-later]], while the library is licensed under [[GNU Lesser General Public License|LGPL-2.1-or-later]].<ref name="license" /> == 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.<ref>{{cite web|title=What's new in JACK2? - Linux Audio Conference 2009 paper by primary JACK2 author Stephane Letz|url=http://lad.linuxaudio.org/events/2009_cdm/Thursday/01_Letz/|archive-url=https://archive.today/20120709233707/http://lad.linuxaudio.org/events/2009_cdm/Thursday/01_Letz/|url-status=dead|archive-date=July 9, 2012|access-date=17 February 2010|publisher=linuxaudio.org}}</ref> JACK can be used with [[ALSA (Linux)|ALSA]], [[PortAudio]], [[CoreAudio]], [[FFADO]] and [[Open Sound System|OSS]] as hardware [[Front and back ends|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]], [[macOS]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]], [[iOS]], [[FreeBSD]], [[OpenBSD]] and [[NetBSD]]. The JACK API is also implemented by [[PipeWire]] for [[Backward compatibility|backwards compatibility]] as a complete drop-in replacement provider for JACK clients, mapping JACK API calls to equivalent PipeWire calls.<ref>{{cite web |title=JACK - Wiki - PipeWire/pipewire |url=https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK |website=PipeWire on GitLab |access-date=11 February 2021}}</ref> 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.<ref>{{cite web |title=FAQ - Wiki - PipeWire/pipewire |url=https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#is-pipewire-another-jack-implementation |website=PipeWire on GitLab |access-date=11 February 2021}}</ref> The use of PipeWire as the default implementation of JACK is the default on [[Fedora (operating system)|Fedora]] 34 and newer.<ref>{{cite web |last1=Larabel |first1=Michael |title=Fedora 34 Gets Sign-Off For Trying To Default To PipeWire For Audio Needs |url=https://www.phoronix.com/scan.php?page=news_item&px=Fedora-34-PipeWire-Attempt |website=Phoronix |publisher=Phoronix Media |access-date=11 February 2021}}</ref> == Low-latency scheduling == [[File:Linux kernel and daemons with exclusive access.svg|thumb|Like [[PulseAudio]], JACK daemon is an "audio daemon", i.e. it does mixing of audio from applications via software. For this it assumes to have exclusive access to the kernel's audio sub-system.]] The [[Scheduling (computing)|scheduling]] requirements of JACK to achieve sufficiently low latencies were one of the driving forces behind the [[real-time operating system|real-time]] optimization effort for the [[Linux kernel]] 2.6 series,<ref>{{cite web |url=https://lkml.org/lkml/2004/7/9/138 |title=Original announcement of a voluntary pre-emption patch for the Linux 2.6 kernel series by Ingo Molnar, 2004 |publisher=lkml.org |access-date=17 February 2010}}</ref><ref>{{cite web |url=https://lwn.net/images/conf/rtlws11/papers/proc/p02.pdf |title=Finding Origins of Latencies Using Ftrace, paper by Steven Rostedt from the Real-time Workshop 2009 |access-date=17 February 2010}}</ref> whose initial latency performance had been disappointing compared to the older 2.4 series.<ref>{{cite web |url=http://lac.zkm.de/2006/papers/lac2006_lee_revell.pdf |title=Real-time audio vs. 2.6, Linux Audio Conference 2006 paper by Lee Revell |access-date=17 February 2010 |archive-date=10 November 2020 |archive-url=https://web.archive.org/web/20201110045534/http://lac.zkm.de/2006/papers/lac2006_lee_revell.pdf |url-status=dead }}</ref> 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 [[PREEMPT_RT|CONFIG_PREEMPT_RT patch]].<ref>{{cite web |url=http://rt.wiki.kernel.org/ |title=Real-Time Linux Wiki |publisher=[[Kernel.org]] (The Linux Kernel Archives) |access-date=8 June 2010}}</ref> == Applications with JACK support == {{Category see also|Audio software with JACK support}} == See also == {{Portal|Free and open-source software}} * [[LADSPA]] & [[LV2]] – APIs for plugins * [[PulseAudio]] – sound server for desktop use * [[List of Linux audio software]] * [[Comparison of free software for audio]] * [[Audio_Stream_Input/Output#Free_alternatives|ASIO free alternatives]] == References == {{reflist|30em}} == External links == * {{Official website}} {{DEFAULTSORT:Jack Audio Connection Kit}} [[Category:Application programming interfaces]] [[Category:Audio libraries]] [[Category:Audio software for Linux]] [[Category:Free audio software]] [[Category:Linux APIs]] [[Category:Music software plugin architectures]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Category see also
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)