JACK

From Gentoo Wiki
Jump to: navigation, search
This page contains changes which are not marked for translation.


This article describes the setup of a playing sound with JACK (JACK Audio Connection Kit).

JACK is a sound server for professional audio production, that provides low-latency communication for applications that implement the JACK API (like mpv).

Installation

JACK uses ALSA for accessing the sound card hardware, be sure ALSA is working.

There are two implementations of the JACK API, both implementations are considered equivalent. JACK is the original implementation, it uses a C API and has built-in Linux MIDI integration. Whereas JACK2 is a re-implementation in C++ and has support for SMP and DBUS.

Visit "what are the differences between JACK 1 and JACK2" for an in-depth comparison.

JACK

root #emerge --ask media-sound/jack-audio-connection-kit

USE flags for media-sound/jack-audio-connection-kit A low-latency audio server

alsa Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
altivec Add support for optimizations for G4 and G5/ppc970 processors
coreaudio Build the CoreAudio driver on Mac OS X systems
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
examples Install examples, usually source code
gtk-doc Build and install gtk-doc based developer documentation for dev-util/devhelp, IDE and offline use
oss Add support for OSS (Open Sound System)
pam Add basic realtime configuration via sys-auth/realtime-base

JACK2

First, emerge the sound server itself.

root #emerge --ask media-sound/jack2

USE flags for media-sound/jack2 Jackdmp jack implemention for multi-processor machine

alsa Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
classic Enable building of jackd
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gtk-doc Build and install gtk-doc based developer documentation for dev-util/devhelp, IDE and offline use
ieee1394 Enable FireWire/iLink IEEE1394 support (dv, camera, ...)
libsamplerate Build with support for converting sample rates using libsamplerate
metadata Enable metadata API
opus Enable Opus audio codec support
pam Add basic realtime configuration via sys-auth/realtime-base
readline Enable support for libreadline, a GNU line-editing library that almost everyone wants
sndfile Add support for libsndfile

USE flag

The global USE flag jack enables support for JACK in other packages, so they can submit sound to a JACK server:

root #euse -E jack

The euse command is part of app-portage/gentoolkit.

After setting this be sure to update the system so the changes take effect:

root #emerge --ask --changed-use --deep @world

Configuration

Sound Server

A good JACK configuration and control software is media-sound/cadence.

root #emerge --ask media-sound/cadence

Bridging

JACK can route sound which was sent to other sound systems like PulseAudio and ALSA through itself.