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, 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.

   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, freebob, oss sun
          portaudio and   sndio.   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.

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

   -A device, -A device%p, -A device%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 %p is added to the device name,
          it will be made available for playback only. If %c is  added  to
          the   device  name,  it  will  be  made  available  for  capture
          (recording) only. If neither %p nor %c is 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/cards shows 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 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-client client-spec
          Load client-name as an internal client.  May  be  used  multiple
          times. The form of client-spec can 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 per process() 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
          for  event-count will 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, --name server-name
          Name this jackd instance server-name.  If unspecified, this name
          comes  from  the  $JACK_DEFAULT_SERVER environment variable.  It
          will be "default" if that is not defined.

   -p, --port-max  n
          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  requires
          jackd  to  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-priority int
          When running --realtime, set the scheduler priority to int.

   --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, --timeout int
          Set client timeout limit in milliseconds.  The  default  is  500
          msec.

   -X, --slave-driver driver-name
          Asks the server to load the "slave" driver given by driver-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 any specified timeout value.

   -C, --timeout-thres time
          Stop processing clients if  JACK  cannot  complete  the  process
          cycle in time (typically caused by CPU overloading or misbehaved
          clients). The optional time argument  specifies  the  number  of
          miliseconds,  during which consectutive 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 usiung -c c will
          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  -D  or  -P.
          Parameterally 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.

   -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 is maximum supported by
          hardware.

   -n, --nperiods int
          Specify the number of periods of playback latency.  In  seconds,
          this corresponds to --nperiods times --period divided by --rate.
          The default is 2, the  minimum  allowable.   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 is  maximum  supported  by
          hardware.

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

   -p, --period int
          Specify the number of frames between JACK process() calls.  This
          value  must  be  a  power of 2, and the default is 1024.  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.

   -r, --rate int
          Specify the sample rate.  The default is 48000.

   -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, --midi seq
          Provide bridging between ALSA MIDI and JACK MIDI (using the ALSA
          sequencer  system). All ALSA MIDI clients and MIDI hardware that
          exist when jackd starts 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, --capture int
          Specify number of capture ports. The default value is 2.

   -P, --playback int
          Specify number of playback ports. The default value is 2.

   -r, --rate int
          Specify sample rate. The default value is 48000.

   -p, --period int
          Specify the number of frames between JACK process() calls.  This
          value  must  be  a  power of 2, and the default is 1024.  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.

   -w, --wait int
          Specify  number  of usecs to wait between engine processes.  The
          default value is 21333.

   NET 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 to slave the transport to the master transport (default:
          true)

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

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

   -e, --native-endian int
          Dont 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
          Specify the sample rate.  The default is 48000.

   -p, --period int
          Specify the number of frames between JACK process() calls.  This
          value must be a power of 2, and the default  is  1024.   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.

   -n, --nperiods int
          Specify the number of  periods  in  the  hardware  buffer.   The
          default  is 2.  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.

   -w, --wordlength int
          Specify the sample size in bits. The default is 16.

   -i, --inchannels int
          Specify how many channels to capture (default: 2)

   -o, --outchannels int
          Specify number of playback channels (default: 2)

   -C, --capture device_file
          Specify input device for capture (default: /dev/dsp)

   -P, --playback device_file
          Specify output device for playback (default: /dev/dsp)

   -b, --ignorehwbuf boolean
          Specify, whether to ignore hardware period size (default: false)

   SUN BACKEND PARAMETERS
   -r, --rate int
          Specify the sample rate.  The default is 48000.

   -p, --period int
          Specify the number of frames between JACK process() calls.  This
          value must be a power of 2, and the default  is  1024.   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.

   -n, --nperiods int
          Specify the number of  periods  in  the  hardware  buffer.   The
          default  is 2.  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.

   -w, --wordlength int
          Specify the sample size in bits. The default is 16.

   -i, --inchannels int
          Specify how many channels to capture (default: 2)

   -o, --outchannels int
          Specify number of playback channels (default: 2)

   -C, --capture device_file
          Specify input device for capture (default: /dev/audio)

   -P, --playback device_file
          Specify output device for playback (default: /dev/audio)

   -b, --ignorehwbuf boolean
          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, --rate int
          Specify the sample rate.  The default is 44100.

   -p, --period int
          Specify the number of frames between JACK process() calls.  This
          value must be a power of 2, and the default  is  1024.   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.  Note  that  this  value  is  mostly
          advisory  when  aucat  server  is  running  and  may  be updated
          internally.

   -n, --nperiods int
          Specify the number of  periods  in  the  hardware  buffer.   The
          default  is 2.  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.  Note  that  this  value  is  mostly
          advisory  when  aucat  server  is  running  and  may  be updated
          internally.

   -w, --wordlength int
          Specify the sample size in bits. The default is 16.

   -i, --inchannels int
          Specify how many channels to capture (default: 2)

   -o, --outchannels int
          Specify number of playback channels (default: 2)

   -d, --device device_file
          Specify device for capture and playback (default: NULL)

   -b, --ignorehwbuf boolean
          Specify, whether to ignore hardware period size (default: false)

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

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/

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.



Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.


Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.


Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.