Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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  exe-
     cution of all clients and low latency operation.

     The name JACK makes a reference to the classical way of patching audio con-
     nections  with  physical  audio  jack  cables.   JACK  is	also a recursive
     acronym, that is an abbreviation which is part of itself. JACK  Audio  Con-
     nection 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 portau-
	    dio. They are not all available on all platforms. All  backend-para-
	    meters 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.   (de-
	    fault: 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  li-
	    brary.
	    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.  Option-
	    ally 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 sup-
	    port 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 out-
	    put 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 --npe-
	    riods parameters.

     -i, --inchannels int
	    Number of capture channels.  (default: maximum  supported  by  hard-
	    ware)

     -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  de-
	    vices supported by FFADO (formerly FreeBoB) are configured with -n 3
	    by default.

     -o, --outchannels int
	    Number  of	playback channels.  (default: maximum supported by hard-
	    ware)

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

     -P, --playback [ name ]
	    Provide only playback ports, unless combined with -D or -C.  Option-
	    ally 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 --real-
	    time.

     -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  soft-
	    ware 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 ag-
	    gregate 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).  (de-
	    fault: 0)

     -t, --transport-sync int
	    Whether or not to slave the transport to the master transport.  (de-
	    fault: 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)

     -e, --excl boolean
	    Request  exclusive	and  direct  access  to  the sound device.  This
	    avoids mixing and automatic audio conversion in the OSS driver,  and
	    the extra latency that comes with that.  (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  chan-
	    nels)

     -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  BusRe-
	    set") 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. Option-
	    ally set capture device name.

     -P, --playback [ name ]
	    Provide only playback ports, unless combined with -D or -C.  Option-
	    ally 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  han-
     dle  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 nor-
     mal 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 af-
     fects 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  gener-
     ated  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 Sen-
     noner, Richard Guenther and other members of  the	Linux  Audio  Developers
     group.

     Programming: Paul Davis, Jack O'Quin, Taybin Rutkin, StA(C)phane Letz, Fer-
     nando  Pablo  Lopez-Lezcano,  Steve  Harris,  Jeremy  Hall, Andy Wingo, Kai
     Vehmanen, Melanie Thielker, Jussi Laako, Tilman  Linneweh,  Johnny  Petran-
     toni, 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.22				    July 2026				JACKD(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=jackd&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help