1JACKD(1) JACKD(1)
2
3
4
6 jackd - JACK Audio Connection Kit sound server
7
8
9
11 jackd [options] -d backend [backend-parameters]
12 jackd --help
13
14
15
17 jackd is the JACK audio server daemon that allows JACK client programs
18 to process and route audio and MIDI data in a synchronous, sample-accu‐
19 rate and low-latency manner. Originally written for the GNU/Linux oper‐
20 ating system, it also runs on various Unix platforms, Mac OS X and MS
21 Windows. JACK can connect a number of different client applications to
22 an audio device and also to each other. Most clients are external, run‐
23 ning in their own processes as normal applications. JACK also supports
24 internal clients, which run within the jackd process using a loadable
25 "plugin" interface.
26
27 JACK differs from other audio servers in being designed from the ground
28 up for professional audio work. It focuses on two key areas: synchro‐
29 nous execution of all clients and low latency operation.
30
31 The name JACK makes a reference to the classical way of patching audio
32 connections with physical audio jack cables. JACK is also a recursive
33 acronym, that is an abbreviation which is part of itself. JACK Audio
34 Connection Kit.
35
36 For the latest JACK information please consult the web site:
37 <http://www.jackaudio.org/>.
38
39
40
42 -d, --driver backend [backend-parameters ]
43 Select the audio interface backend. The current list of sup‐
44 ported backends is: alsa, coreaudio, dummy, firewire, oss sun
45 and portaudio. They are not all available on all platforms. All
46 backend-parameters are optional.
47
48
49 -h, --help
50 Print a brief usage message describing the main jackd options.
51 These do not include backend-parameters, which are listed using
52 the --help option for each specific backend. Examples below show
53 how to list them.
54
55
56 -a, --autoconnect modechar
57 Select how to handle self connect requests. They can be ignore
58 or fail, on all port or just external ones. Use the --help
59 option to know your system specific options. The default is to
60 not restrict self connect requests.
61
62 -m, --no-mlock
63 Do not attempt to lock memory, even if --realtime.
64
65
66 -n, --name server-name
67 Name this jackd instance server-name. If unspecified, this name
68 comes from the $JACK_DEFAULT_SERVER environment variable.
69 (default: "default")
70
71
72 -p, --port-max n
73 Set the maximum number of ports the JACK server can manage.
74 (default: 256)
75
76
77 --replace-registry
78 Remove the shared memory registry used by all JACK server
79 instances before startup. This should rarely be used, and is
80 intended only for occasions when the structure of this registry
81 changes in ways that are incompatible across JACK versions
82 (which is rare).
83
84
85 -R, --realtime
86 Use realtime scheduling. This is needed for reliable low-latency
87 performance. On many systems, it requires jackd to run with spe‐
88 cial scheduler and memory allocation privileges, which may be
89 obtained in several ways. (default: true)
90
91
92 -r, --no-realtime
93 Do not use realtime scheduling.
94
95
96 -P, --realtime-priority int
97 When running --realtime, set the scheduler priority to int.
98
99
100 --silent
101 Silence any output during operation.
102
103
104
105 -T, --temporary
106 Exit once all clients have closed their connections.
107
108
109 -t, --timeout int
110 Set client timeout limit in milliseconds. In realtime mode the
111 client timeout must be smaller than the watchdog timeout (5000
112 msec). (default: 500)
113
114
115 -Z, --nozombies
116 Prevent JACK from ever kicking out clients because they were too
117 slow. This cancels the effect any specified timeout value, but
118 JACK and its clients are still subject to the supervision of the
119 watchdog thread or its equivalent.
120
121
122 -C, --internal-session-file internal-session-file
123 Load internal clients and connections from internal-session-
124 file. Each line of this configuration file starts with a com‐
125 mand. The following commands are available:
126 l(oad) client-name lib-name client-args
127 With this command an internal JACK client will be instantiated.
128 client-name and lib-name cannot contain spaces. The rest of the
129 line will be interpreted as client-args and sent to the client
130 library.
131 c(on) source-port destination-port
132 With this command a source port will be connected to a destina‐
133 tion port. source-port and destination-port cannot contain spa‐
134 ces.
135 Comments are allowed, they start with #.
136 An example configuration could look like the following:
137 l inprocess1 inprocess
138 l amp1 jalv http://lv2plug.in/plugins/eg-amp
139 c amp:out system:playback_1
140
141
142 -u, --unlock
143 Unlock libraries GTK+, QT, FLTK, Wine.
144
145
146 -v, --verbose
147 Give verbose output.
148
149
150 -c, --clocksource ( h(pet) | s(ystem) )
151 Select a specific wall clock (HPET timer, System timer).
152
153
154 -V, --version
155 Print the current JACK version number and exit.
156
157
158
159 ALSA BACKEND OPTIONS
160 -C, --capture [ name ]
161 Provide only capture ports, unless combined with -D or -P.
162 Optionally set capture device name.
163
164
165 -d, --device name
166 The ALSA pcm device name to use. If none is specified, JACK will
167 use "hw:0", the first hardware card defined in /etc/mod‐
168 ules.conf.
169
170
171 -z, --dither [rectangular,triangular,shaped,none]
172 Set dithering mode. If none or unspecified, dithering is off.
173 Only the first letter of the mode name is required.
174
175
176 -D, --duplex
177 Provide both capture and playback ports. Defaults to on unless
178 only one of -P or -C is specified. (default: true)
179
180
181 -h, --help Print a brief usage message describing only the
182 alsa backend parameters.
183
184
185 -M, --hwmeter
186 Enable hardware metering for devices that support it. Otherwise,
187 use software metering.
188
189
190 -H, --hwmon
191 Enable hardware monitoring of capture ports. This is a method
192 for obtaining "zero latency" monitoring of audio input. It
193 requires support in hardware and from the underlying ALSA device
194 driver.
195
196 When enabled, requests to monitor capture ports will be satis‐
197 fied by creating a direct signal path between audio interface
198 input and output connectors, with no processing by the host com‐
199 puter at all. This offers the lowest possible latency for the
200 monitored signal.
201
202 Presently (March 2003), only the RME Hammerfall series and cards
203 based on the ICE1712 chipset (M-Audio Delta series, Terratec,
204 and others) support --hwmon. In the future, some consumer cards
205 may also be supported by modifying their mixer settings.
206
207 Without --hwmon, port monitoring requires JACK to read audio
208 into system memory, then copy it back out to the hardware again,
209 imposing the basic JACK system latency determined by the
210 --period and --nperiods parameters.
211
212
213 -i, --inchannels int
214 Number of capture channels. (default: maximum supported by
215 hardware)
216
217
218 -I, --input-latency
219 Extra input latency (frames). (default: 0)
220
221
222 -n, --nperiods int
223 Number of periods of playback latency. In seconds, this corre‐
224 sponds to --nperiods times --period divided by --rate. The
225 default is 2, the minimum allowed. For most devices, there is no
226 need for any other value with the --realtime option. Without
227 realtime privileges or with boards providing unreliable inter‐
228 rupts (like ymfpci), a larger value may yield fewer xruns. This
229 can also help if the system is not tuned for reliable realtime
230 scheduling.
231
232 For most ALSA devices, the hardware buffer has exactly --period
233 times --nperiods frames. Some devices demand a larger buffer. If
234 so, JACK will use the smallest possible buffer containing at
235 least --nperiods, but the playback latency does not increase.
236
237 For USB audio devices it is recommended to use -n 3. Firewire
238 devices supported by FFADO (formerly FreeBoB) are configured
239 with -n 3 by default.
240
241
242 -o, --outchannels int
243 Number of playback channels. (default: maximum supported by
244 hardware)
245
246
247 -O, --output-latency
248 Extra output latency (frames). (default: 0)
249
250
251 -P, --playback [ name ]
252 Provide only playback ports, unless combined with -D or -C.
253 Optionally set playback device name.
254
255
256 -p, --period int
257 Number of frames between JACK process() calls. This value must
258 be a power of 2. If you need low latency, set -p as low as you
259 can go without seeing xruns. A larger period size yields higher
260 latency, but makes xruns less likely. The JACK capture latency
261 in seconds is --period divided by --rate. (default: 1024)
262
263
264 -r, --rate int
265 Sample rate. (default: 48000)
266
267
268 -S, --shorts
269 Try to configure card for 16-bit samples first, only trying
270 32-bits if unsuccessful. (default: 32-bit samples)
271
272
273 -s, --softmode
274 Ignore xruns reported by the ALSA driver. This makes JACK less
275 likely to disconnect unresponsive ports when running without
276 --realtime.
277
278
279 -X, --midi [seq|raw]
280 Which ALSA MIDI system to provide access to. Using raw will pro‐
281 vide a set of JACK MIDI ports that correspond to each raw ALSA
282 device on the machine. Using seq will provide a set of JACK MIDI
283 ports that correspond to each ALSA "sequencer" client (which
284 includes each hardware MIDI port on the machine). raw provides
285 slightly better performance but does not permit JACK MIDI commu‐
286 nication with software written to use the ALSA "sequencer" API.
287
288
289
290 COREAUDIO BACKEND PARAMETERS
291 -c, --channels
292 Maximum number of channels. (default: 2)
293
294
295 -i, --inchannels
296 Maximum number of input channels. (default: 2)
297
298
299 -o, --outchannels
300 Maximum number of output channels. (default: 2)
301
302
303 -C, --capture
304 Whether or not to capture. (default: true)
305
306
307 -P, --playback
308 Whether or not to playback. (default: true)
309
310
311 -D, --monitor
312 Provide monitor ports for the output. (default: false)
313
314
315 -D, --duplex
316 Capture and playback. (default: true)
317
318
319 -r, --rate
320 Sample rate. (default: 44100)
321
322
323 -p, --period
324 Frames per period, must be a power of 2. (default: 128)
325
326
327 -d, --device
328 CoreAudio device name. (default: none)
329
330
331 -I, --input-latency
332 Extra input latency (frames). (default: 0)
333
334
335 -O, --output-latency
336 Extra output latency (frames). (default: 0)
337
338
339 -l, --list-devices
340 Display available CoreAudio devices. (default: false)
341
342
343 -H, --hog
344 Take exclusive access of the audio device. (default: false)
345
346
347 -L, --async-latency
348 Extra output latency in asynchronous mode (percent). (default:
349 100)
350
351
352 -G, --grain
353 Computation grain in RT thread (percent). (default: 100)
354
355
356 -s, --clock-drift
357 Whether or not to compensate clock drift in dynamically created
358 aggregate device. (default: false)
359
360
361
362 DUMMY BACKEND PARAMETERS
363 -C, --capture int
364 Number of capture ports. (default: 2)
365
366
367 -P, --playback int
368 Number of playback ports. (default: 2)
369
370
371 -r, --rate int
372 Sample rate. (default: 48000)
373
374
375 -p, --period int
376 Number of frames between JACK process() calls. This value must
377 be a power of 2. If you need low latency, set -p as low as you
378 can go without seeing xruns. A larger period size yields higher
379 latency, but makes xruns less likely. The JACK capture latency
380 in seconds is --period divided by --rate. (default: 1024)
381
382
383 -w, --wait int
384 Number of usecs to wait between engine processes. (default:
385 21333)
386
387
388
389 NETONE BACKEND PARAMETERS
390 -i, --audio-ins int
391 Number of capture channels. (default: 2)
392
393
394 -o, --audio-outs int
395 Number of playback channels. (default: 2)
396
397
398 -I, --midi-ins int
399 Number of midi capture channels. (default: 1)
400
401
402 -O, --midi-outs int
403 Number of midi playback channels. (default: 1)
404
405
406 -r, --rate int
407 Sample rate. (default: 48000)
408
409
410 -p, --period int
411 Frames per period. (default: 1024)
412
413
414 -n, --num-periods int
415 Network latency setting in no. of periods. (default: 5)
416
417
418 -l, --listen-port int
419 The socket port we are listening on for sync packets. (default:
420 3000)
421
422
423 -f, --factor int
424 Factor for sample rate reduction. (default: 1)
425
426
427 -u, --upstream-factor int
428 Factor for sample rate reduction on the upstream. (default: 0)
429
430
431 -c, --celt int
432 Sets celt encoding and number of kbits per channel. (default:
433 0)
434
435
436 -b, --bit-depth int
437 Sample bit-depth (0 for float, 8 for 8bit and 16 for 16bit).
438 (default: 0)
439
440
441 -t, --transport-sync int
442 Whether or not to slave the transport to the master transport.
443 (default: true)
444
445
446 -a, --autoconf int
447 Whether or not to use Autoconfig, or just start. (default:
448 true)
449
450
451 -R, --redundancy int
452 Send packets N times. (default: 1)
453
454
455 -e, --native-endian int
456 Don't convert samples to network byte order. (default: false)
457
458 -J, --jitterval int
459 Attempted jitterbuffer microseconds on master. (default: 0)
460
461
462 -D, --always-deadline int
463 Always use deadline. (default: false)
464
465
466
467 OSS BACKEND PARAMETERS
468 -r, --rate int
469 Sample rate. (default: 48000)
470
471
472 -p, --period int
473 Number of frames between JACK process() calls. This value must
474 be a power of 2. If you need low latency, set -p as low as you
475 can go without seeing xruns. A larger period size yields higher
476 latency, but makes xruns less likely. The JACK capture latency
477 in seconds is --period divided by --rate. (default: 1024)
478
479
480 -n, --nperiods int
481 Number of periods in the hardware buffer. The period size (-p)
482 times --nperiods times four is the JACK buffer size in bytes.
483 The JACK output latency in seconds is --nperiods times --period
484 divided by --rate. (default: 2)
485
486
487 -w, --wordlength int
488 Sample size in bits. (default: 16)
489
490
491 -i, --inchannels int
492 Number of capture channels. (default: 2)
493
494
495 -o, --outchannels int
496 Number of playback channels. (default: 2)
497
498
499 -C, --capture device_file
500 Input device for capture. (default: /dev/dsp)
501
502
503 -P, --playback device_file
504 Output device for playback. (default: /dev/dsp)
505
506
507 -b, --ignorehwbuf boolean
508 Whether or not to ignore hardware period size. (default: false)
509
510
511 -I, --input-latency
512 Extra input latency (frames). (default: 0)
513
514
515 -O, --output-latency
516 Extra output latency (frames). (default: 0)
517
518
519
520 SUN BACKEND PARAMETERS
521 -r, --rate int
522 Sample rate. (default: 48000)
523
524
525 -p, --period int
526 Number of frames between JACK process() calls. This value must
527 be a power of 2. If you need low latency, set -p as low as you
528 can go without seeing xruns. A larger period size yields higher
529 latency, but makes xruns less likely. The JACK capture latency
530 in seconds is --period divided by --rate. (default: 1024)
531
532
533 -n, --nperiods int
534 Number of periods in the hardware buffer. The period size (-p)
535 times --nperiods times four (assuming 2 channels 16-bit samples)
536 is the JACK buffer size in bytes. The JACK output latency in
537 seconds is --nperiods times --period divided by --rate.
538 (default: 2)
539
540
541 -w, --wordlength int
542 Sample size in bits. (default: 16)
543
544
545 -i, --inchannels int
546 Number of capture channels. (default: 2)
547
548
549 -o, --outchannels int
550 Number of playback channels. (default: 2)
551
552
553 -C, --capture device_file
554 Input device for capture. (default: /dev/audio)
555
556
557 -P, --playback device_file
558 Output device for playback. (default: /dev/audio)
559
560
561 -b, --ignorehwbuf boolean
562 Whether or not to ignore hardware period size. (default: false)
563
564
565
566 PORTAUDIO BACKEND PARAMETERS
567 -c, --channel
568 Maximum number of channels. (default: all available hardware
569 channels)
570
571
572 -i, --channelin
573 Maximum number of input channels. (default: all available hard‐
574 ware channels)
575
576
577 -I, --input-latency
578 Extra input latency (frames). (default: 0)
579
580
581 -o, --channelout
582 Maximum number of output channels. (default: all available
583 hardware channels)
584
585
586 -O, --output-latency
587 Extra output latency (frames). (default: 0)
588
589
590 -C, --capture
591 Whether or not to capture. (default: true)
592
593
594 -P, --playback
595 Whether or not to playback. (default: true)
596
597
598 -D, --duplex
599 Capture and playback. (default: true)
600
601
602 -r, --rate
603 Sample rate. (default: 48000)
604
605
606 -p, --period
607 Frames per period, must be a power of 2. (default: 1024)
608
609
610 -n, --name
611 Driver name. (default: none)
612
613
614 -z, --dither
615 Dithering mode. (default: none)
616
617
618
619 FIREWIRE BACKEND PARAMETERS
620 -d, --device name
621 The Firewire device name to use. If none is specified, JACK will
622 try to use "hw:0". To get a list of available Firewire devices,
623 see ffado-test. It's recommended to use the GUID of a Firewire
624 device to rule out any ambiguities. Once the GUID of the device
625 is known ("ffado-test ListDevices"), it can be used like
626 -dguid:0xff2584e39b078a2e to tell JACK which interface to use.
627 Sometimes resetting the Firewire bus can help ("ffado-test Bus‐
628 Reset") if there is any problem. (default: hw:0)
629
630
631 -p, --period int
632 Number of frames between JACK process() calls. This value must
633 be a power of 2. If you need low latency, set -p as low as you
634 can go without seeing xruns. A larger period size yields higher
635 latency, but makes xruns less likely. The JACK capture latency
636 in seconds is --period divided by --rate. (default: 1024)
637
638
639 -n, --nperiods int
640 Number of periods of playback latency. Value must be greater or
641 equal 2. In seconds, this corresponds to --nperiods times
642 --period divided by --rate. (default: 3)
643
644
645 -r, --rate int
646 Sample rate. (default: 48000)
647
648
649 -C, --capture [ name ]
650 Provide only capture ports, unless combined with -D or -P.
651 Optionally set capture device name.
652
653
654 -P, --playback [ name ]
655 Provide only playback ports, unless combined with -D or -C.
656 Optionally set playback device name.
657
658
659 -D, --duplex
660 Provide both capture and playback ports. This option is the
661 default behaviour and can normally be omitted. -D can not be
662 combined with -P or -C.
663
664
665 -I, --input-latency
666 Extra input latency (frames). (default: 0)
667
668
669 -O, --output-latency
670 Extra output latency (frames). (default: 0)
671
672
673 -v, --verbose
674 libffado verbose level. (default: 3)
675
676
677 -X, --snoop
678 Snoop Firewire traffic. (default: false)
679
680
681 -h, --help Print a brief usage message describing only the
682 firewire backend parameters.
683
684
685
687 Print usage message for the parameters specific to each backend.
688
689
690 jackd -d alsa --help
691 jackd -d coreaudio --help
692 jackd -d net --help
693 jackd -d dummy --help
694 jackd -d firewire --help
695 jackd -d oss --help
696 jackd -d sun --help
697 jackd -d portaudio --help
698
699 Run the JACK daemon with realtime priority using the first ALSA hard‐
700 ware card defined in /etc/modules.conf.
701
702
703 jackstart --realtime --driver=alsa
704
705 Run the JACK daemon with low latency giving verbose output, which can
706 be helpful for trouble-shooting system latency problems. A reasonably
707 well-tuned system with a good sound card and a low-latency kernel can
708 handle these values reliably. Some can do better. If you get xrun mes‐
709 sages, try a larger buffer. Tuning a system for low latency can be
710 challenging. Please consult the JACK FAQ for more suggestions.
711
712
713 jackstart -Rv -d alsa -p 128 -n 2 -r 44100
714
715 Run jackd with realtime priority using the "sblive" ALSA device defined
716 in ~/.asoundrc. Apply shaped dithering to playback audio.
717
718
719 jackd -R -d alsa -d sblive --dither=shaped
720
721 Run jackd with no special privileges using the second ALSA hardware
722 card defined in /etc/modules.conf. Any xruns reported by the ALSA back‐
723 end will be ignored. The larger buffer helps reduce data loss. Rectan‐
724 gular dithering will be used for playback.
725
726
727 jackd -d alsa -d hw:1 -p2048 -n3 --softmode -zr
728
729 Run jackd in full-duplex mode using the ALSA hw:0,0 device for playback
730 and the hw:0,2 device for capture.
731
732
733 jackd -d alsa -P hw:0,0 -C hw:0,2
734
735 Run jackd in playback-only mode using the ALSA hw:0,0 device.
736
737
738 jackd -d alsa -P hw:0,0
739
740
741
743 JACK is evolving a mechanism for automatically starting the server when
744 needed. Any client started without a running JACK server will attempt
745 to start one itself using the command line found in the first line of
746 $HOME/.jackdrc if it exists, or /etc/jackdrc if it does not. If neither
747 file exists, a built-in default command will be used, including the -T
748 flag, which causes the server to shut down when all clients have
749 exited.
750
751 As a transition, this only happens when $JACK_START_SERVER is defined
752 in the environment of the calling process. In the future this will
753 become normal behavior. In either case, defining $JACK_NO_START_SERVER
754 disables this feature.
755
756 To change where JACK looks for the backend drivers, set
757 $JACK_DRIVER_DIR.
758
759 $JACK_DEFAULT_SERVER specifies the default server name. If not defined,
760 the string "default" is used. If set in their respective environments,
761 this affects jackd unless its --name parameter is set, and all JACK
762 clients unless they pass an explicit name to jack_client_open().
763
764 Defining $JACK_NO_AUDIO_RESERVATION will bypass audio device reserva‐
765 tion via session bus (DBus). This can be useful if JACK was compiled
766 with DBus support but should run on a headless system.
767
768 $JACK_PROMISCUOUS_SERVER enables an alternate way of handling the vari‐
769 ous shared resources (Unix sockets, semaphores, ...). In this mode, the
770 generated names will not contain the user id anymore, and the permis‐
771 sions of those resources will be relaxed, allowing clients from differ‐
772 ent users to talk with the same server. Moreover, on platforms that
773 support it (all POSIX variants), if set to a valid Unix group name or
774 id, the permissions will be restricted to that group, so only members
775 of that group will be able to launch clients that talk to this server.
776 Important note: it must be set with the same value for both server and
777 clients to work as expected.
778
779
781 <http://www.jackaudio.org/>
782 The official JACK website with news, docs and a list of JACK clients.
783
784 <http://www.github.com/jackaudio/>
785 The official JACK github code repository. Pull requests are welcome.
786
787 <http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org>
788 The JACK developers' mailing list. Subscribe to take part in develop‐
789 ment of JACK or JACK clients. User questions are also welcome, there is
790 no user-specific mailing list.
791
792 <http://www.jackosx.com/>
793 Tools specific to the Mac OS X version of JACK.
794
795 <http://www.alsa-project.org/>
796 The Advanced Linux Sound Architecture.
797
798 <http://www.ffado.org/>
799 The Free Firewire Audio Drivers (FFADO) Site.
800
801 <irc.freenode.net#jack>
802 Join the JACK community with your favourite IRC client.
803
804
805
807 Please report bugs as issues to the corresponding repository:
808 <http://www.github.com/jackaudio/>
809
810
811
813 Architect and original implementer: Paul Davis
814
815 Original design group: Paul Davis, David Olofson, Kai Vehmanen, Benno
816 Sennoner, Richard Guenther and other members of the Linux Audio Devel‐
817 opers group.
818
819 Programming: Paul Davis, Jack O'Quin, Taybin Rutkin, Stéphane Letz,
820 Fernando Pablo Lopez-Lezcano, Steve Harris, Jeremy Hall, Andy Wingo,
821 Kai Vehmanen, Melanie Thielker, Jussi Laako, Tilman Linneweh, Johnny
822 Petrantoni, Torben Hohn.
823
824 Manpage written by Stefan Schwandter, Jack O'Quin, Alexandre Prokoudine
825 and Thomas Brand.
826
827 Create a PDF file from this manpage:
828
829 man -t jackd | ps2pdf - > jackd.pdf
830
831
832
8331.9.14 January 2020 JACKD(1)