Generated by GPT-5-mini| JACK (audio connection kit) | |
|---|---|
| Name | JACK |
| Developer | Jack O'Quinn, Paul Davis, Fons Adriaensen, others |
| Released | 2000 |
| Programming language | C, C++ |
| Operating system | Linux, macOS, BSD, Windows |
| License | GPL, LGPL |
JACK (audio connection kit) is a professional sound server and audio routing system designed for real-time, low-latency audio and MIDI signal processing on Unix-like and other operating systems. It is widely used in professional audio production, digital audio workstations, and live performance setups where precise timing and inter-application connectivity are required. JACK provides a graph-based model for connecting applications, hardware, and plugins, enabling complex signal flows among software such as Ardour, Audacity, SuperCollider, Pure Data, and Reaktor.
JACK implements a client-server architecture inspired by low-latency designs used in projects like ALSA, OSS, and ASIO. It exposes an API that lets applications become JACK clients to exchange audio and MIDI streams with other clients, similar in spirit to routing systems like PulseAudio and PipeWire but focused on pro audio tasks emphasized by projects such as Ardour, Qtractor, Hydrogen, Rosegarden, and LMMS. Developers from communities around Ubuntu Studio, Debian, Fedora, and Arch Linux have integrated JACK into distributions to support pro audio workflows.
JACK's core comprises a server daemon coordinating transport, ports, and connections between clients, analogous to the way X11 manages windows or Wayland manages compositors. Key components include the JACK server, client libraries, ports, and a routing graph; these interact with kernel-level drivers like ALSA on Linux, Core Audio on macOS, and WASAPI or ASIO on Windows. Utilities such as qjackctl, Cadence, and Patchage provide graphical control over session management and routing, while backend bridges connect to systems like PulseAudio, PipeWire, and JACK2 forks.
JACK supports sample-accurate transport synchronization, multiple clients, and arbitrary patching of audio and MIDI between applications, similar to modular setups used in Eurorack and virtual environments like Max/MSP. Features include synchronous processing callbacks, real-time scheduling with POSIX real-time priorities, and support for various sample rates and buffer sizes as seen in professional tools like Pro Tools and Ableton Live. Session management and metadata integration are provided by session managers compatible with standards from projects like LADSPA, LV2, and VST plugin ecosystems.
The original JACK implementation (often called JACK1) and its successor JACK2 (which introduced multi-processor support and network audio via netjack) have been ported to many platforms. Notable ports and related implementations include JACK on Linux with ALSA backends, JACK on macOS using Core Audio, and experimental Windows builds leveraging ASIO or WASAPI for lower latency. Community-driven projects such as JACKTrip and netjack extend JACK for networked audio over IP connections used by ensembles and remote collaborations.
Users typically run a JACK server and connect DAWs, synthesizers, and effects as clients, using GUIs like qjackctl or routing tools like Patchage to manage connections. Common workflows include multi-track recording with Ardour, live electronic sets combining SuperCollider and Pure Data, and modular plugin chains using Carla as a host for LV2 and VST plugins. Integration with digital workflows is supported by control surfaces and standards such as MIDI and OSC, enabling setups found in studios that employ hardware from manufacturers like MOTU, Focusrite, and RME.
JACK is optimized for minimal round-trip latency, leveraging kernel features and real-time scheduling similar to audio strategies in Linux Audio projects promoted by JACK2 developers and distribution maintainers. Achieving low latency often requires tuning system parameters such as timer frequency, IRQ affinity, and real-time priority settings used by rtirq and kernel patches like the PREEMPT_RT patch. Networked configurations such as netjack and JACKTrip introduce jitter and packet delay considerations, so users employ techniques from telecommunications and streaming used by Jitter research to reduce artifacts.
Development began around 2000 with contributions from researchers and engineers including Paul Davis and Fons Adriaensen, reflecting influences from audio systems in projects like ALSA and professional standards around MIDI timing. Over the years the project split into implementations and forks, such as JACK1 and JACK2, with developers affiliating with organizations and communities like LASH, LADSPA, and various Linux audio user groups. The ecosystem evolved alongside efforts like PulseAudio and later PipeWire that sought to cover both consumer and pro audio needs, while JACK remained the tool of choice for low-latency, pro-focused audio routing.
Category:Audio software Category:Free software