JACK Audio Connection Kit

From Wikipedia, the free encyclopedia
Jump to: navigation, search
JACK Audio Connection Kit
LogoJack.png
Original author(s) Paul Davis, Stéphane Letz
Developer(s) JACK team[1]
Stable release

(JACK1) v0.121.3  (September 28, 2011; 4 months ago (2011-09-28))

(JACK2) v1.9.8  (December 19, 2011; 2 months ago (2011-12-19)) [±]
Written in C,[2] C++
Operating system BSD, Linux, Mac OS X, Solaris, Windows
Type Sound server
License GNU GPL, GNU LGPL
Website jackaudio.org

JACK (a recursive acronym which expands to JACK Audio Connection Kit) is a professional sound server daemon that provides real-time, low latency connections for both audio and MIDI data between applications that implement its API. It is under constant development by a community of open source developers led by Paul Davis (who won an Open Source Award in 2004 for this work[3]) 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 the GNU GPL, while the library is licensed under the more permissive GNU LGPL.

Contents

[edit] Implementations

JACK can use ALSA, PortAudio, CoreAudio, FFADO and OSS 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. It runs on Linux, Mac OS X, Solaris, Windows, FreeBSD, OpenBSD and NetBSD. 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++ led by Stéphane Letz, which is under aggressive development and has introduced multi-processor scalability and support for operating systems other than Linux.[4]

[edit] Low latency scheduling

The scheduling requirements of JACK to achieve sufficiently low latencies have been one of the driving forces behind the real-time optimization effort for the current Linux 2.6 kernel series,[5][6] whose initial latency performance had been disappointing compared to the older 2.4 series.[7] Real-time tuning work has 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.[8]

[edit] Applications with JACK support

See Category:Audio software with JACK support.

[edit] See also

[edit] References

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages