jackd

JACKD(1)                                                              JACKD(1)



NAME
       jackd - JACK Audio Connection Kit sound server



SYNOPSIS
       jackd [options] -d backend [backend-parameters]
       jackd --help



DESCRIPTION
       jackd is the JACK audio server daemon that allows JACK client programs
       to process and route audio and MIDI data in a synchronous, sample-
       accurate and low-latency manner. Originally written for the GNU/Linux
       operating system, it also runs on various Unix platforms, Mac OS X and
       MS Windows.  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.

       The name JACK makes a reference to the classical way of patching audio
       connections with physical audio jack cables.  JACK is also a recursive
       acronym, that is an abbreviation which is part of itself. JACK Audio
       Connection Kit.

       For the latest JACK information please consult the web site:
       <http://www.jackaudio.org/>.



OPTIONS
       -d, --driver backend [backend-parameters ]
              Select the audio interface backend. The current list of
              supported backends is: alsa, coreaudio, dummy, firewire, oss sun
              and portaudio. They are not all available on all platforms. All
              backend-parameters are optional.


       -h, --help
              Print a brief usage message describing the main jackd options.
              These do not include backend-parameters, which are listed using
              the --help option for each specific backend. Examples below show
              how to list them.


       -a, --autoconnect modechar
              Select how to handle self connect requests. They can be ignore
              or fail, on all port or just external ones. Use the --help
              option to know your system specific options. The default is to
              not restrict self connect requests.

       -m, --no-mlock
              Do not attempt to lock memory, even if --realtime.


       -n, --name server-name
              Name this jackd instance server-name. If unspecified, this name
              comes from the $JACK_DEFAULT_SERVER environment variable.
              (default: "default")


       -p, --port-max  n
              Set the maximum number of ports the JACK server can manage.
              (default: 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. This is needed for reliable low-latency
              performance. On many systems, it requires jackd to run with
              special scheduler and memory allocation privileges, which may be
              obtained in several ways.  (default: true)


       -r, --no-realtime
              Do not use realtime scheduling.


       -P, --realtime-priority int
              When running --realtime, set the scheduler priority to int.


       --silent
              Silence any output during operation.



       -T, --temporary
              Exit once all clients have closed their connections.


       -t, --timeout int
              Set client timeout limit in milliseconds.  In realtime mode the
              client timeout must be smaller than the watchdog timeout (5000
              msec).  (default: 500)


       -Z, --nozombies
              Prevent JACK from ever kicking out clients because they were too
              slow.  This cancels the effect any specified timeout value, but
              JACK and its clients are still subject to the supervision of the
              watchdog thread or its equivalent.


       -C, --internal-session-file internal-session-file
              Load internal clients and connections from internal-session-
              file.  Each line of this configuration file starts with a
              command.  The following commands are available:
              l(oad) client-name lib-name client-args
              With this command an internal JACK client will be instantiated.
              client-name and lib-name cannot contain spaces.  The rest of the
              line will be interpreted as client-args and sent to the client
              library.
              c(on) source-port destination-port
              With this command a source port will be connected to a
              destination port.  source-port and destination-port cannot
              contain spaces.
              Comments are allowed, they start with #.
              An example configuration could look like the following:
               l inprocess1 inprocess
               l amp1 jalv http://lv2plug.in/plugins/eg-amp
               c amp:out system:playback_1


       -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, System timer).


       -V, --version
              Print the current JACK version number and exit.



   ALSA BACKEND OPTIONS
       -C, --capture [ name ]
              Provide only capture ports, unless combined with -D or -P.
              Optionally set capture device name.


       -d, --device name
              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. If none or 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 -P or -C is specified.  (default: true)


       -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, --inchannels int
              Number of capture channels.  (default: maximum supported by
              hardware)


       -I, --input-latency
              Extra input latency (frames).  (default: 0)


       -n, --nperiods int
              Number of periods of playback latency. In seconds, this
              corresponds to --nperiods times --period divided by --rate. The
              default is 2, the minimum allowed. For most devices, there is no
              need for any other value with the --realtime option. Without
              realtime privileges or with boards providing unreliable
              interrupts (like ymfpci), 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
              times --nperiods frames. Some devices demand a larger buffer. If
              so, JACK will use the smallest possible buffer containing at
              least --nperiods, but the playback latency does not increase.

              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, --outchannels int
              Number of playback channels.  (default: maximum supported by
              hardware)


       -O, --output-latency
              Extra output latency (frames).  (default: 0)


       -P, --playback [ name ]
              Provide only playback ports, unless combined with -D or -C.
              Optionally set playback device name.


       -p, --period int
              Number of frames between JACK process() calls. This value must
              be a power of 2. If you need low latency, set -p as 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 --period divided by --rate.  (default: 1024)


       -r, --rate int
              Sample rate.  (default: 48000)


       -S, --shorts
              Try to configure card for 16-bit samples first, only trying
              32-bits if unsuccessful.  (default: 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, --midi [seq|raw]
              Which ALSA MIDI system to provide access to. Using raw will
              provide a set of JACK MIDI ports that correspond to each raw
              ALSA device on the machine. Using seq will provide a set of JACK
              MIDI ports that correspond to each ALSA "sequencer" client
              (which includes each hardware MIDI port on the machine). raw
              provides slightly better performance but does not permit JACK
              MIDI communication with software written to use the ALSA
              "sequencer" API.



   COREAUDIO BACKEND PARAMETERS
       -c, --channels
              Maximum number of channels.  (default: 2)


       -i, --inchannels
              Maximum number of input channels.  (default: 2)


       -o, --outchannels
              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, --monitor
              Provide monitor ports for the output.  (default: false)


       -D, --duplex
              Capture and playback.  (default: true)


       -r, --rate
              Sample rate.  (default: 44100)


       -p, --period
              Frames per period, must be a power of 2.  (default: 128)


       -d, --device
              CoreAudio device name.  (default: none)


       -I, --input-latency
              Extra input latency (frames).  (default: 0)


       -O, --output-latency
              Extra output latency (frames).  (default: 0)


       -l, --list-devices
              Display available CoreAudio devices.  (default: false)


       -H, --hog
              Take exclusive access of the audio device.  (default: false)


       -L, --async-latency
              Extra output latency in asynchronous mode (percent).  (default:
              100)


       -G, --grain
              Computation grain in RT thread (percent).  (default: 100)


       -s, --clock-drift
              Whether or not to compensate clock drift in dynamically created
              aggregate device.  (default: false)



   DUMMY BACKEND PARAMETERS
       -C, --capture int
              Number of capture ports.  (default: 2)


       -P, --playback int
              Number of playback ports.  (default: 2)


       -r, --rate int
              Sample rate.  (default: 48000)


       -p, --period int
              Number of frames between JACK process() calls. This value must
              be a power of 2. If you need low latency, set -p as 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 --period divided by --rate.  (default: 1024)


       -w, --wait int
              Number of usecs to wait between engine processes.  (default:
              21333)



   NETONE BACKEND PARAMETERS
       -i, --audio-ins int
              Number of capture channels.  (default: 2)


       -o, --audio-outs int
              Number of playback channels.  (default: 2)


       -I, --midi-ins int
              Number of midi capture channels.  (default: 1)


       -O, --midi-outs int
              Number of midi playback channels.  (default: 1)


       -r, --rate int
              Sample rate.  (default: 48000)


       -p, --period int
              Frames per period.  (default: 1024)


       -n, --num-periods int
              Network latency setting in no. of periods.  (default: 5)


       -l, --listen-port int
              The socket port we are listening on for sync packets.  (default:
              3000)


       -f, --factor int
              Factor for sample rate reduction.  (default: 1)


       -u, --upstream-factor int
              Factor for sample rate reduction on the upstream.  (default: 0)


       -c, --celt int
              Sets celt encoding and number of kbits per channel.  (default:
              0)


       -b, --bit-depth int
              Sample bit-depth (0 for float, 8 for 8bit and 16 for 16bit).
              (default: 0)


       -t, --transport-sync int
              Whether or not to slave the transport to the master transport.
              (default: true)


       -a, --autoconf int
              Whether or not to use Autoconfig, or just start.  (default:
              true)


       -R, --redundancy int
              Send packets N times.  (default: 1)


       -e, --native-endian int
              Don't convert samples to network byte order.  (default: false)

       -J, --jitterval int
              Attempted jitterbuffer microseconds on master.  (default: 0)


       -D, --always-deadline int
              Always use deadline.  (default: false)



   OSS BACKEND PARAMETERS
       -r, --rate int
              Sample rate.  (default: 48000)


       -p, --period int
              Number of frames between JACK process() calls. This value must
              be a power of 2. If you need low latency, set -p as 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 --period divided by --rate.  (default: 1024)


       -n, --nperiods int
              Number of periods in the hardware buffer.  The period size (-p)
              times --nperiods times four is the JACK buffer size in bytes.
              The JACK output latency in seconds is --nperiods times --period
              divided by --rate.  (default: 2)


       -w, --wordlength int
              Sample size in bits.  (default: 16)


       -i, --inchannels int
              Number of capture channels.  (default: 2)


       -o, --outchannels int
              Number of playback channels.  (default: 2)


       -C, --capture device_file
              Input device for capture.  (default: /dev/dsp)


       -P, --playback device_file
              Output device for playback.  (default: /dev/dsp)


       -b, --ignorehwbuf boolean
              Whether or not to ignore hardware period size.  (default: false)


       -I, --input-latency
              Extra input latency (frames).  (default: 0)


       -O, --output-latency
              Extra output latency (frames).  (default: 0)



   SUN BACKEND PARAMETERS
       -r, --rate int
              Sample rate.  (default: 48000)


       -p, --period int
              Number of frames between JACK process() calls. This value must
              be a power of 2. If you need low latency, set -p as 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 --period divided by --rate.  (default: 1024)


       -n, --nperiods int
              Number of periods in the hardware buffer.  The period size (-p)
              times --nperiods times four (assuming 2 channels 16-bit samples)
              is the JACK buffer size in bytes.  The JACK output latency in
              seconds is --nperiods times --period divided by --rate.
              (default: 2)


       -w, --wordlength int
              Sample size in bits.  (default: 16)


       -i, --inchannels int
              Number of capture channels.  (default: 2)


       -o, --outchannels int
              Number of playback channels.  (default: 2)


       -C, --capture device_file
              Input device for capture.  (default: /dev/audio)


       -P, --playback device_file
              Output device for playback.  (default: /dev/audio)


       -b, --ignorehwbuf boolean
              Whether or not 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)


       -I, --input-latency
              Extra input latency (frames).  (default: 0)


       -o, --channelout
              Maximum number of output channels.  (default: all available
              hardware channels)


       -O, --output-latency
              Extra output latency (frames).  (default: 0)


       -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, must be a power of 2.  (default: 1024)


       -n, --name
              Driver name.  (default: none)


       -z, --dither
              Dithering mode.  (default: none)



   FIREWIRE BACKEND PARAMETERS
       -d, --device name
              The Firewire device name to use. If none is specified, JACK will
              try to use "hw:0". To get a list of available Firewire devices,
              see ffado-test. It's recommended to use the GUID of a Firewire
              device to rule out any ambiguities. Once the GUID of the device
              is known ("ffado-test ListDevices"), it can be used like
              -dguid:0xff2584e39b078a2e to tell JACK which interface to use.
              Sometimes resetting the Firewire bus can help ("ffado-test
              BusReset") if there is any problem.  (default: hw:0)


       -p, --period int
              Number of frames between JACK process() calls. This value must
              be a power of 2. If you need low latency, set -p as 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 --period divided by --rate.  (default: 1024)


       -n, --nperiods int
              Number of periods of playback latency. Value must be greater or
              equal 2. In seconds, this corresponds to --nperiods times
              --period divided by --rate.  (default: 3)


       -r, --rate int
              Sample rate.  (default: 48000)


       -C, --capture [ name ]
              Provide only capture ports, unless combined with -D or -P.
              Optionally set capture device name.


       -P, --playback [ name ]
              Provide only playback ports, unless combined with -D or -C.
              Optionally set playback device name.


       -D, --duplex
              Provide both capture and playback ports. This option is the
              default behaviour and can normally be omitted.  -D can not be
              combined with -P or -C.


       -I, --input-latency
              Extra input latency (frames).  (default: 0)


       -O, --output-latency
              Extra output latency (frames).  (default: 0)


       -v, --verbose
              libffado verbose level.  (default: 3)


       -X, --snoop
              Snoop Firewire traffic.  (default: false)


       -h, --help Print a brief usage message describing only the
              firewire backend parameters.



EXAMPLES
       Print usage message for the parameters specific to each backend.


              jackd -d alsa --help
              jackd -d coreaudio --help
              jackd -d net --help
              jackd -d dummy --help
              jackd -d firewire --help
              jackd -d oss --help
              jackd -d sun --help
              jackd -d portaudio --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 giving verbose output, which can
       be 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. Please consult the JACK FAQ for more 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. 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.

       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().

       Defining $JACK_NO_AUDIO_RESERVATION will bypass audio device
       reservation via session bus (DBus). This can be useful if JACK was
       compiled with DBus support but should run on a headless system.

       $JACK_PROMISCUOUS_SERVER enables an alternate way of handling the
       various shared resources (Unix sockets, semaphores, ...). In this mode,
       the generated names will not contain the user id anymore, and the
       permissions of those resources will be relaxed, allowing clients from
       different users to talk with the same server. Moreover, on platforms
       that support it (all POSIX variants), if set to a valid Unix group name
       or id, the permissions will be restricted to that group, so only
       members of that group will be able to launch clients that talk to this
       server. Important note: it must be set with the same value for both
       server and clients to work as expected.


SEE ALSO:
       <http://www.jackaudio.org/>
       The official JACK website with news, docs and a list of JACK clients.

       <http://www.github.com/jackaudio/>
       The official JACK github code repository. Pull requests are welcome.

       <http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org>
       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.

       <http://www.ffado.org/>
       The Free Firewire Audio Drivers (FFADO) Site.

       <irc.freenode.net#jack>
       Join the JACK community with your favourite IRC client.



BUGS
       Please report bugs as issues to the corresponding repository:
       <http://www.github.com/jackaudio/>



AUTHORS
       Architect and original implementer: 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, Stéphane 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, Alexandre Prokoudine
       and Thomas Brand.

       Create a PDF file from this manpage:

              man -t jackd | ps2pdf - > jackd.pdf



1.9.14                           November 2019                        JACKD(1)