JACKD(1)
β¨ NAME β¨
jackd β JACK Audio Connection Kit sound server. Bestie, this is the jackd(1) manual page and it's about to be a whole vibe. π
π§ SYNOPSIS π§
jackd [options] -d backend [backend-parameters]
jackd --help
πΈ DESCRIPTION πΈ
jackd is the JACK audio server daemon, a low-latency audio server. Originally written for the GNU/Linux operating system, it also supports Mac OS X and various Unix platforms. JACK can connect a number of different client applications to an audio device and also to each other. Most clients are external, running in their own processes as normal applications. JACK also supports internal clients, which run within the jackd process using a loadable "plugin" interface. π¦
JACK differs from other audio servers in being designed from the ground up for professional audio work. It focuses on two key areas: synchronous execution of all clients, and low latency operation. No cap, that's the whole point. π
For the latest JACK information, please consult the web site, http://www.jackaudio.org. π
π OPTIONS π
-d,--driverbackend[backend-parameters ]β Select the audio interface backend. The current list of supported backends is:alsa,coreaudio,dummy,freebob,oss,sun,portaudioandsndio. They are not all available on all platforms. Allbackend-parametersare optional.-h,--helpβ Print a brief usage message describing the mainjackdoptions. These do not includebackend-parameters, which are listed using the--helpoption for each specific backend. Examples below show how to list them.-m,--no-mlockβ Do not attempt to lock memory, even if--realtime.-Adevice,-Adevice%p,-Adevice%cβ (Linux-only) A simplified way to add additional audio I/O hardware to an instance of JACK. This argument is actually just a wrapper around the-I(internal client) version, requiring only the name of the ALSA "card" to be used. The name should NOT include any ALSA device access prefix (e.g."hw:"or"plughw:") but can include a subdevice. If%pis added to the device name, it will be made available for playback only. If%cis added to the device name, it will be made available for capture (recording) only. If neither%pnor%cis added, it will be made available (if possible) for both capture and playback. Although device names may be visible in various places on your system, the file/proc/asound/cardsshows them inside square braces. Examples:-A SB(adds playback and capture for the "SB" device)-A Codec,1%c(adds capture (recording) for the 2nd subdevice of the "Codec" device)-A MT1a2%p(adds playback for the 1st subdevice of the "MT1a2" device)
The use of -A CARD is actually equivalent to -I foo:zalsa_in/-dhw:CARD and -I CARD:zalsa_out/-dhw:CARD.
The use of -A CARD%p is actually equivalent to -I CARD:zalsa_out/-dhw:CARD.
The use of -A CARD%c is actually equivalent to -I CARD:zalsa_in/-dhw:CARD
Note that this option (like -I) can be used regardless of the backend used, so even if you do not use the ALSA backend, you can still add ALSA-supported devices to an instance of JACK.
-I,--internal-clientclient-spec β Loadclient-nameas an internal client. May be used multiple times. The form ofclient-speccan be any of the following:
client-path
client-name:client-path
client-name:client-path/init-string
client-path/init-string
The first form will cause jackd to attempt to load the client from a shared object named "client-path" with appropriate suffixes appended. If "client-path" is absolute, jackd will use that (adding a platform appropriate suffix for a shared object). If it is not absolute, jackd will look for "client-path" (with an appropriate suffix) in the same location that drivers and other JACK add-ons are located.
The second form provides "client-name" as the desired name for the client once loaded, in addition to the "client-path".
The third form provides an "init-string" in addition to a client name and path, which will be passed to the client's initialization function.
The final form does not specify the client name, but does include the path to the client's shared object file and an initializations string.
When invoking JACK from the shell, remember to quote the argument to -I if it includes spaces.
-M,--midi-bufsize[ event-count ]β Specify the size of the buffer used for MIDI ports. Units are "MIDI events perprocess()cycle", where an event occupies up to 4 bytes (as most common MIDI events do). The default buffer size is 2048 bytes, which is about 500 MIDI events. Typical values forevent-countwill range from 10 to about 1000. Be aware that using very high values along with a large number of ports may cause JACK to fail to start because of the amount of memory that would be required.-n,--nameserver-name β Name thisjackdinstanceserver-name. If unspecified, this name comes from the$JACK_DEFAULT_SERVERenvironment variable. It will be "default" if that is not defined.-p,--port-maxn β Set the maximum number of ports the JACK server can manage. The default value is 256.--replace-registryβ Remove the shared memory registry used by all JACK server instances before startup. This should rarely be used, and is intended only for occasions when the structure of this registry changes in ways that are incompatible across JACK versions (which is rare).-R,--realtimeβ Use realtime scheduling (default = true). This is needed for reliable low-latency performance. On many systems, it requiresjackdto run with special scheduler and memory allocation privileges, which may be obtained in several ways.-r,--no-realtimeβ Do not use realtime scheduling.-P,--realtime-priorityint β When running--realtime, set the scheduler priority toint.--silentβ Silence any output during operation.-S,--syncβ This option does nothing in this implementation of JACK, but exists for command-line compatibility with JACK2 and possibly other versions.-T,--temporaryβ Exit once all clients have closed their connections.-t,--timeoutint β Set client timeout limit in milliseconds. The default is 500 msec.-X,--slave-driverdriver-name β Asks the server to load the "slave" driver given bydriver-name. Slave drivers can provide builtin-access to other devices and protocols; the primary slave-driver at this time is the"alsa_midi"one which provides bridging on Linux between native ALSA MIDI and JACK MIDI.-Z,--nozombiesβ Prevent JACK from ever kicking out clients because they were too slow. This cancels the effect of any specified timeout value.-C,--timeout-threstime β Stop processing clients if JACK cannot complete the process cycle in time (typically caused by CPU overloading or misbehaved clients). The optionaltimeargument specifies the number of milliseconds, during which consecutive process cycles must fail before JACK gives up (if the argument is not given, it defaults to 250). Processing will resume on the next change to the port graph (i.e. a port is added, removed, connected or disconnected).-u,--unlockβ Unlock libraries GTK+, QT, FLTK, Wine.-v,--verboseβ Give verbose output.-c,--clocksource( h(pet) | s(ystem) )β Select a specific wall clock (HPET timer or the system clock). Asking for the now removed cycle-counter timer using-c cwill result in the use of the system clock.-V,--versionβ Print the current JACK version number and exit.
π ALSA BACKEND OPTIONS π
-C,--capture[ name ]β Provide only capture ports, unless combined with-Dor-P. Optionally set capture device name.-d,--devicename β The ALSA pcm device name to use. If none is specified, JACK will use"hw:0", the first hardware card defined in/etc/modules.conf.-z,--dither[rectangular,triangular,shaped,none]β Set dithering mode. Ifnoneor unspecified, dithering is off. Only the first letter of the mode name is required.-D,--duplexβ Provide both capture and playback ports. Defaults to on unless only one of-Por-Cis specified.-h,--helpβ Print a brief usage message describing only the alsa backend parameters.-M,--hwmeterβ Enable hardware metering for devices that support it. Otherwise, use software metering.-H,--hwmonβ Enable hardware monitoring of capture ports. This is a method for obtaining "zero latency" monitoring of audio input. It requires support in hardware and from the underlying ALSA device driver.
When enabled, requests to monitor capture ports will be satisfied by creating a direct signal path between audio interface input and output connectors, with no processing by the host computer at all. This offers the lowest possible latency for the monitored signal.
Presently (March 2003), only the RME Hammerfall series and cards based on the ICE1712 chipset (M-Audio Delta series, Terratec, and others) support --hwmon. In the future, some consumer cards may also be supported by modifying their mixer settings.
Without --hwmon, port monitoring requires JACK to read audio into system memory, then copy it back out to the hardware again, imposing the basic JACK system latency determined by the --period and --nperiods parameters.
-i,--inchannelsint β Number of capture channels. Default is maximum supported by hardware.-n,--nperiodsint β Specify the number of periods of playback latency. In seconds, this corresponds to--nperiodstimes--perioddivided by--rate. The default is 2, the minimum allowable. For most devices, there is no need for any other value with the--realtimeoption. Without realtime privileges or with boards providing unreliable interrupts (likeymfpci), a larger value may yield fewer xruns. This can also help if the system is not tuned for reliable realtime scheduling.
For most ALSA devices, the hardware buffer has exactly --period Γ --nperiods frames β cute, tidy, predictable π
. Some devices are extra and demand a larger buffer. If yours is one of those, JACK will use the smallest possible buffer that still contains at least --nperiods, and bestie, the playback latency does not go up. slay.
For USB audio devices it is recommended to use -n 3. Firewire devices supported by FFADO (formerly Freebob) are configured with -n 3 by default. π¦
-o,--outchannelsint β Number of playback channels. Default is maximum supported by hardware.-P,--playback[ name ] β Provide only playback ports, unless combined with-Dor-C. Optionally set playback device name.-p,--periodint β Specify the number of frames between JACKprocess()calls. This value must be a power of 2, and the default is1024. If you need low latency, set-pas low as you can go without seeing xruns. A larger period size yields higher latency, but makes xruns less likely. The JACK capture latency in seconds is--perioddivided by--rate.-r,--rateint β Specify the sample rate. The default is48000.-S,--shortsβ Try to configure card for 16-bit samples first, only trying 32-bits if unsuccessful. Default is to prefer 32-bit samples.-s,--softmodeβ Ignore xruns reported by the ALSA driver. This makes JACK less likely to disconnect unresponsive ports when running without--realtime.-X,--midiseqβ Provide bridging between ALSA MIDI and JACK MIDI (using the ALSA sequencer system). All ALSA MIDI clients and MIDI hardware that exist whenjackdstarts will be represented by JACK MIDI ports. The"seq"argument has been retained from older versions of JACK, in part to provide for the possibility of alternate implementations.
π COREAUDIO BACKEND PARAMETERS π
-c--channelβ Maximum number of channels (default:2)-i--channelinβ Maximum number of input channels (default:2)-o--channeloutβ Maximum number of output channels (default:2)-C--captureβ Whether or not to capture (default:true)-P--playbackβ Whether or not to playback (default:true)-D--duplexβ Capture and playback (default:true)-r--rateβ Sample rate (default:44100)-p--periodβ Frames per period (default:128). Must be a power of 2.-n--nameβ Driver name (default:none)-I--idβ Audio Device ID (default:0)
π«§ DUMMY BACKEND PARAMETERS π«§
-C,--captureint β Specify number of capture ports. The default value is2.-P,--playbackint β Specify number of playback ports. The default value is2.-r,--rateint β Specify sample rate. The default value is48000.-p,--periodint β Specify the number of frames between JACKprocess()calls. This value must be a power of 2, and the default is1024. If you need low latency, set-pas low as you can go without seeing xruns. A larger period size yields higher latency, but makes xruns less likely. The JACK capture latency in seconds is--perioddivided by--rate.-w,--waitint β Specify number of usecs to wait between engine processes. The default value is21333.
π°οΈ NET BACKEND PARAMETERS π°οΈ
-i,--audio-insint β Number of capture channels (default:2)-o,--audio-outsint β Number of playback channels (default:2)-I,--midi-insint β Number of midi capture channels (default:1)-O,--midi-outsint β Number of midi playback channels (default:1)-r,--rateint β Sample rate (default:48000)-p,--periodint β Frames per period (default:1024)-n,--num-periodsint β Network latency setting in no. of periods (default:5)-l,--listen-portint β The socket port we are listening on for sync packets (default:3000)-f,--factorint β Factor for sample rate reduction (default:1)-u,--upstream-factorint β Factor for sample rate reduction on the upstream (default:0)-c,--celtint β sets celt encoding and number of kbits per channel (default:0)-b,--bit-depthint β Sample bit-depth (0for float,8for 8bit and16for 16bit) (default:0)-t,--transport-syncint β Whether to slave the transport to the master transport (default:true)-a,--autoconfint β Whether to use Autoconfig, or just start. (default:true)-R,--redundancyint β Send packets N times (default:1)-e,--native-endianint β Don't convert samples to network byte order. (default:false)-J,--jittervalint β attempted jitterbuffer microseconds on master (default:0)-D,--always-deadlineint β always use deadline (default:false)
π OSS BACKEND PARAMETERS π
-r,--rateint β Specify the sample rate. The default is48000.-p,--periodint β Specify the number of frames between JACKprocess()calls. This value must be a power of 2, and the default is1024. If you need low latency, set-pas low as you can go without seeing xruns. A larger period size yields higher latency, but makes xruns less likely. The JACK capture latency in seconds is--perioddivided by--rate.-n,--nperiodsint β Specify the number of periods in the hardware buffer. The default is2. The period size (-p) times--nperiodstimes four is the JACK buffer size in bytes. The JACK output latency in seconds is--nperiodstimes--perioddivided by--rate.-w,--wordlengthint β Specify the sample size in bits. The default is16.-i,--inchannelsint β Specify how many channels to capture (default:2)-o,--outchannelsint β Specify number of playback channels (default:2)-C,--capturedevice_file β Specify input device for capture (default:/dev/dsp)-P,--playbackdevice_file β Specify output device for playback (default:/dev/dsp)-b,--ignorehwbufboolean β Specify, whether to ignore hardware period size (default:false)
βοΈ SUN BACKEND PARAMETERS βοΈ
-r,--rateint β Specify the sample rate. The default is48000.-p,--periodint β Specify the number of frames between JACKprocess()calls. This value must be a power of 2, and the default is1024. If you need low latency, set-pas low as you can go without seeing xruns. A larger period size yields higher latency, but makes xruns less likely. The JACK capture latency in seconds is--perioddivided by--rate.-n,--nperiodsint β Specify the number of periods in the hardware buffer. The default is2. The period size (-p) times--nperiodstimes four (assuming 2 channels 16-bit samples) is the JACK buffer size in bytes. The JACK output latency in seconds is--nperiodstimes--perioddivided by--rate.-w,--wordlengthint β Specify the sample size in bits. The default is16.-i,--inchannelsint β Specify how many channels to capture (default:2)-o,--outchannelsint β Specify number of playback channels (default:2)-C,--capturedevice_file β Specify input device for capture (default:/dev/audio)-P,--playbackdevice_file β Specify output device for playback (default:/dev/audio)-b,--ignorehwbufboolean β Specify, whether to ignore hardware period size (default:false)
π§ PORTAUDIO BACKEND PARAMETERS π§
-c--channelβ Maximum number of channels (default: all available hardware channels)-i--channelinβ Maximum number of input channels (default: all available hardware channels)-o--channeloutβ Maximum number of output channels (default: all available hardware channels)-C--captureβ Whether or not to capture (default:true)-P--playbackβ Whether or not to playback (default:true)-D--duplexβ Capture and playback (default:true)-r--rateβ Sample rate (default:48000)-p--periodβ Frames per period (default:1024). Must be a power of 2.-n--nameβ Driver name (default:none)-z--ditherβ Dithering mode (default:none)
π SNDIO BACKEND PARAMETERS π
-r,--rateint β Specify the sample rate. The default is44100.-p,--periodint β Specify the number of frames between JACKprocess()calls. This value must be a power of 2, and the default is1024. If you need low latency, set-pas low as you can go without seeing xruns. A larger period size yields higher latency, but makes xruns less likely. The JACK capture latency in seconds is--perioddivided by--rate. Note that this value is mostly advisory whenaucatserver is running and may be updated internally.-n,--nperiodsint β Specify the number of periods in the hardware buffer. The default is2. The period size (-p) times--nperiodstimes four (assuming 2 channels 16-bit samples) is the JACK buffer size in bytes. The JACK output latency in seconds is--nperiodstimes--perioddivided by--rate. Note that this value is mostly advisory whenaucatserver is running and may be updated internally.-w,--wordlengthint β Specify the sample size in bits. The default is16.-i,--inchannelsint β Specify how many channels to capture (default:2)-o,--outchannelsint β Specify number of playback channels (default:2)-d,--devicedevice_file β Specify device for capture and playback (default:NULL)-b,--ignorehwbufboolean β Specify, whether to ignore hardware period size (default:false)
π EXAMPLES π
Ok bestie, this is the fun part β copy-paste fuel. π
Wanna see the usage message for the params that are specific to each backend? Say less:
jackd -d alsa --help
jackd -d coreaudio --help
jackd -d net --help
jackd -d dummy --help
jackd -d firewire --help
jackd -d freebob --help
jackd -d oss --help
jackd -d sun --help
jackd -d portaudio --help
jackd -d sndio --help
Run the JACK daemon with realtime priority using the first ALSA hardware card defined in /etc/modules.conf. β¨
jackstart --realtime --driver=alsa
Run the JACK daemon with low latency and verbose output, which is honestly lowkey helpful for trouble-shooting system latency problems. π«Ά A reasonably well-tuned system with a good sound card and a low-latency kernel can handle these values reliably. Some can do better. If you get xrun messages, try a larger buffer. Tuning a system for low latency can be challenging, fr fr. The JACK FAQ, http://jackit.sourceforge.net/docs/faq.php, has some useful suggestions. π
jackstart -Rv -d alsa -p 128 -n 2 -r 44100
Run jackd with realtime priority using the "sblive" ALSA device defined in ~/.asoundrc. Apply shaped dithering to playback audio. π
jackd -R -d alsa -d sblive --dither=shaped
Run jackd with no special privileges using the second ALSA hardware card defined in /etc/modules.conf. Any xruns reported by the ALSA backend will be ignored. The larger buffer helps reduce data loss. Rectangular dithering will be used for playback. π
jackd -d alsa -d hw:1 -p2048 -n3 --softmode -zr
Run jackd in full-duplex mode using the ALSA hw:0,0 device for playback and the hw:0,2 device for capture. πΈ
jackd -d alsa -P hw:0,0 -C hw:0,2
Run jackd in playback-only mode using the ALSA hw:0,0 device. π
jackd -d alsa -P hw:0,0
π± ENVIRONMENT π±
JACK is evolving a mechanism for automatically starting the server when needed, and honestly? It's giving convenience. π¦ Any client started without a running JACK server will attempt to start one itself using the command line found in the first line of $HOME/.jackdrc if it exists, or /etc/jackdrc if it does not. If neither file exists, a built-in default command will be used, including the -T flag, which causes the server to shut down when all clients have exited. Periodt. π
As a transition, this only happens when $JACK_START_SERVER is defined in the environment of the calling process. In the future this will become normal behavior. In either case, defining $JACK_NO_START_SERVER disables this feature. π
To change where JACK looks for the backend drivers, set $JACK_DRIVER_DIR. π₯
$JACK_DEFAULT_SERVER specifies the default server name. If not defined, the string "default" is used. If set in their respective environments, this affects jackd unless its --name parameter is set, and all JACK clients unless they pass an explicit name to jack_client_open(). β¨
π«Ά SEE ALSO: π«Ά
http://www.jackaudio.orgβ The official JACK website with news, docs and a list of JACK clients. πhttp://jackaudio.org/emailβ The JACK developers' mailing list. Subscribe, to take part in development of JACK or JACK clients. User questions are also welcome, there is no user-specific mailing list. πhttp://www.jackosx.com/β Tools specific to the Mac OS X version of JACK. πhttp://www.alsa-project.orgβ The Advanced Linux Sound Architecture. π
π BUGS π
Please report bugs to http://trac.jackaudio.org/ β they wanna hear from you, no cap. π
π AUTHORS π
- Architect and original implementor: Paul Davis
- Original design Group: Paul Davis, David Olofson, Kai Vehmanen, Benno Sennoner, Richard Guenther, and other members of the Linux Audio Developers group.
- Programming: Paul Davis, Jack O'Quin, Taybin Rutkin, Stephane Letz, Fernando Pablo Lopez-Lezcano, Steve Harris, Jeremy Hall, Andy Wingo, Kai Vehmanen, Melanie Thielker, Jussi Laako, Tilman Linneweh, Johnny Petrantoni, Torben Hohn.
- Manpage written by Stefan Schwandter, Jack O'Quin and Alexandre Prokoudine.
And that's the whole page bestie, we ate. π
β¨ This one's from April 2006, version 0.126.0, and it's the JACKD(1) page β go make some noise. πΈππ¦
π¦ where this page comes from
- debian bookworm: jackd1 1:0.126.0-2 Β· GPL-2.0-or-later
- debian trixie: jackd1 1:0.126.0-4 Β· GPL-2.0-or-later
- ubuntu noble: jackd1 1:0.126.0-2build3 Β· GPL-2.0-or-later
- ubuntu questing: jackd1 1:0.126.0-5
- ubuntu resolute: jackd1 1:0.126.0-5build1 Β· GPL-2.0-or-later
- ubuntu stonking: jackd1 1:0.126.0-6 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms