Provided by: shairport-sync_2.8.0-1_amd64 bug

NAME

       shairport-sync - Synchronised Audio Player for iTunes / AirPlay

SYNOPSIS

       shairport-sync   [-dvw]  [-a  name]  [-A  latency]  [-B  command]  [-c  configurationfile]  [-E  command]
       [--forkedDaapdLatency=latency]  [--get-cover-art]  [-i  latency]  [-L  latency]  [-m  backend]   [--meta-
       dir=directory]  [-o  backend]  [--password=secret]  [-r  threshold] [--statistics] [-S mode] [-t timeout]
       [--tolerance=frames] [-- audio_backend_options]

       shairport-sync -D

       shairport-sync -h

       shairport-sync -k

       shairport-sync -h

       shairport-sync -R

       shairport-sync -V

DESCRIPTION

       shairport-sync plays audio streamed from iTunes or from an AirPlay device  to  an  ALSA-compatible  audio
       output device.

       A  feature  of  shairport-sync is that the audio is played synchronously. This means that if many devices
       are playing the same stream at the same time, all the outputs will stay in step with  one  another.  This
       allows multiple devices play the same source without getting out of phase with one another, enabling, for
       example, simultaneous multi-room operation.

       shairport-sync can additionally be compiled and configured to stream raw audio to a pipe or to stdout.

       Settings can be made using the configuration file (recommended for all new  installations)  or  by  using
       command-line options.

CONFIGURATION FILE SETTINGS

       You   should   use  the  configuration  file  for  setting  up  shairport-sync.  This  file  is  normally
       /etc/shairport-sync.conf. You may need to have root privileges to modify it.

       Settings are organised into groups, for example, there is a "general" group  of  standard  settings,  and
       there is an "alsa" group with settings that pertain to the ALSA back end. Here is an example of a typical
       configuration file:

       general = {

       name = "Mike's Boombox";

       interpolation = "soxr";

       password = "secret";

       };

       alsa = {

       output_device = "hw:0";

       mixer_control_name = "PCM";

       };

       Most settings have sensible default values, so -- as in the example above -- users generally only need to
       set (1) the service name, (2) a password (if desired) and (3) the output device. If the output device has
       a mixer that can be used for volume control, then (4) the volume control's name should be specificed.  It
       is highly desirable to use the output device's mixer for volume control, if available -- response time is
       reduced to zero and the processor load is reduced. In the example above, "soxr"  interpolation  was  also
       enabled.

       A  sample configuration file with all possible settings, but with all of them commented out, is installed
       at /etc/shairport-sync.conf.sample.

       To retain backwards compatibility with previous versions of shairport-sync you can use still use  command
       line options, but any new features, etc. will be available only via configuration file settings.

       The     configuration     file     is     processed     using    the    libconfig    library    --    see
       http://www.hyperrealm.com/libconfig/libconfig_manual.html.

       "GENERAL" SETTINGS
              These are the settings available within the general group:

       name="service_name";
              Use this service_name to identify this player in iTunes, etc. The default name is "Shairport  Sync
              on <hostname>".

       password="password";
              Require  the password password to connect to the service. If you leave this setting commented out,
              no password is needed.

       interpolation="mode";
              Interpolate, or "stuff", the audio stream using the mode. Interpolation here refers to the process
              of  adding  or removing frames of audio to or from the stream sent to the output device to keep it
              exactly in synchrony with the player. The default mode, "basic",  is  normally  almost  completely
              inaudible.  The alternative mode, "soxr", is even less obtrusive but requires much more processing
              power. For this mode, support for libsoxr, the  SoX  Resampler  Library,  must  be  selected  when
              shairport-sync is compiled.

       statistics="setting";
              Use this setting to enable ("yes") or disable ("no") the output of some statistical information on
              the console or in the log. The default is to disable statistics.

       mdns_backend="backend";
              shairport-sync has a number of modules of code ("backends") for interacting with the mDNS  service
              to  be  used  to  advertise  itself. Normally, the first mDNS backend that works is selected. This
              setting forces the selection of the specific mDNS backend. The default  is  "avahi".  Perform  the
              command shairport-sync -h to get a list of available mDNS modules.

       output_backend="backend";
              shairport-sync  has  a  number  of  modules  of  code  ("backends") through which audio is output.
              Normally, the first audio backend that works is selected. This setting forces the selection of the
              specific audio backend. The default is "alsa". Perform the command shairport-sync -h to get a list
              of available audio backends. Only the alsa backend supports synchronisation.

       port=portnumber;
              Use this to specify the portnumber shairport-sync uses to listen for service requests from iTunes,
              etc. The default is port 5000.

       udp_port_base=portnumber;
              When shairport-sync starts to play audio, it establises three UDP connections to the audio source.
              Use this setting to specify the starting portnumber for these three ports. It will pick the  first
              three unused ports starting from portnumber. The default is port 6001.

       udp_port_range=range;
              Use this in conjunction with the prevous setting to specify the range of ports that can be checked
              for availability. Only three ports are needed. The default is 100, thus 100 ports will be  checked
              from port 6001 upwards until three are found.

       drift=frames;
              Allow playback to drift up to frames out of exact synchronization before attempting to correct it.
              The default is 88 frames, i.e. 2 ms. The smaller  the  tolerance,  the  more  likely  it  is  that
              overcorrection  will occur. Overcorrection is when more corrections (insertions and deletions) are
              made than are strictly necessary to keep the stream in sync. Use the statistics setting to monitor
              correction levels. Corrections should not greatly exceed net corrections.

       resync_threshold=threshold;
              Resynchronise  if  timings differ by more than threshold frames. If the output timing differs from
              the source timing by more than the threshold, output will be muted and  a  full  resynchronisation
              will  occur.  The  default  threshold  is 2,205 frames, i.e. 50 milliseconds. Specify 0 to disable
              resynchronisation.

       log_verbosity=0;
              Use this to specify how much debugging information should be output or logged. "0" means no  debug
              information, "3" means most debug information. The default is "0".

       ignore_volume_control="choice";
              Set  this  choice to "yes" if you want the volume to be at 100% no matter what the source's volume
              control is set to. This might be useful if you want to  set  the  volume  on  the  output  device,
              independently of the setting at the source. The default is "no".

       volume_range_db=dBvalue;
              Set  this  dBvalue  to use just a portion of the full range of attenuation offered by a mixer. For
              example, if a mixer has a minimum volume of -80 dB and a maximum of +20 dB, you might wish to  use
              only  60  dB  of  the  100  dB available. This might be because the sound becomes inaudible at the
              lowest setting and unbearably loud at the highest setting -- indeed, many  domestic  HiFi  systmes
              have  a  volume  copntrol range of just 60 to 80dB. Another potential use might be where the range
              specified by the mixer does not match the capabilities of the device. For example,  the  Raspberry
              Pi's  DAC  that  feeds  the built-in audio jack claims a range of 106 dB but has a useful range of
              only about 35dB. The setting allows you to specify the maximum range from highest to  lowest.  The
              range  suggested for the Raspberry Pi's built-in audio DAC, which feeds the headphone jack, is 35.
              Using it in this case gives the volume control a much more useful range of settings. If  you  omit
              this setting, the full "native" range of the mixer is used.

       "ALSA" SETTINGS
              These  settings  are  for  the ALSA back end, used to communicate with audio output devices in the
              ALSA system. (By the way, you can use tools such as alsamixer or aplay to  discover  what  devices
              are available.) Use these settings to select the output device and the mixer control to be used to
              control the output volume. You can additionally set the desired size of the output buffer and  you
              can adjust overall latency. Here are the alsa group settings:

       output_device="output_device";
              Use the output device called output_device. The default is the device called "default".

       mixer_control_name="name";
              Specify  the  name  of  the  mixer control to be used by shairport-sync to control the volume. The
              mixer control must be on the mixer device, which by default is the output device. If  you  do  not
              specify   a   mixer   control   name,   shairport-sync   will   adjust  the  volume  in  software.
              mixer_type="mixer_type"; This setting is deprecated and is  ignored.  For  your  information,  its
              functionality  has  been  automatically  incorporated  in the mixer_control_name setting -- if you
              specify a mixer name with the  mixer_control_name  setting,  it  is  assumed  that  the  mixer  is
              implemented in hardware.

       mixer_device="mixer_device";
              By  default,  the mixer is assumed to be output_device. Use this setting to specify a device other
              than the output device.

       audio_backend_latency_offset=offset;
              Set this offset, in frames, to compensate for a fixed delay in the audio back end. For example, if
              the output device delays by 100 ms, set this to -4410.

       audio_backend_buffer_desired_length=length;
              Use this to set the desired number frames to be in the output device's hardware output buffer. The
              default is 6,615 frames, or 0.15 seconds. If set too small, buffer underflow  may  occur  on  low-
              powered  machines.  If too large, the response times when using software volume control (i.e. when
              not using a mixer control to control volume) become annoying, or it may exceed the hardware buffer
              size.  It may need to be larger on low-powered machines that are also performing other tasks, such
              as processing metadata.

       "PIPE" SETTINGS
              These settings are for the PIPE backend, used to route audio to a named unix pipe. The audio is in
              raw CD audio format: PCM 16 bit little endian, 44,100 samples per second, stereo.

              Use the name setting to set the name and location of the pipe.

              There  are  two  further settings affecting timing that might be useful if the pipe reader is, for
              example, a program to play an audio stream such as aplay. The audio_backend_latency_offset affects
              precisely  when the first audio packet is sent and the audio_backend_buffer_desired_length setting
              affects the nominal output buffer size.

              These are the settings available within the pipe group:

       name="/path/to/pipe";
              Use this to specify the name and location of the pipe. The pipe will be created  and  opened  when
              shairport-sync  starts  up  and  will be closed upon shutdown. Frames of audio will be sent to the
              pipe in packets of 352 frames and will be discarded if the pipe has not have  a  reader  attached.
              The sender will wait for up to five seconds for a packet to be written before discarding it.

       audio_backend_latency_offset=offset_in_frames;
              Packets  of  audio frames are written to the pipe synchronously -- that is, they are written to at
              exactly the time they should be played. You can offset the time of initial audio  output  relative
              to  its  nominal  time  using  this  setting.  For example to send an audio stream to the pipe 100
              milliseconds before it is due to be played, set this to -4410. Default setting is 0.

       audio_backend_buffer_desired_length=buffer_length_in_frames;
              Use this setting, in frames, to set the size of the output buffer. It  works  by  determining  how
              soon  the  second and subsequent packets of audio frames are sent to the pipe. For example, if you
              send   the   first   packet   of   audio   exactly   when    it    is    due    and,    using    a
              audio_backend_buffer_desired_length  setting  of  44100, send subsequent packets of audio a second
              before they are due to be played, they will be buffered in the pipe reader's buffer, giving  it  a
              nominal  buffer  size of 44,100 frames. Note that if the pipe reader consumes audio packets faster
              or slower than they are supplied, the buffer will eventually empty or overflow  --  shairport-sync
              performs no stuffing or interpolation when writing to a pipe. Default setting is 44,100 frames.

       "STDOUT" SETTINGS
              These  settings are for the STDOUT backend, used to route audio to standard output ("stdout"). The
              audio is in raw CD audio format: PCM 16 bit little endian, 44,100 samples per second, stereo.

              There are two settings affecting timing that might be useful if the stdout reader is, for example,
              a  program  to  play  an  audio  stream  such  as  aplay. The audio_backend_latency_offset affects
              precisely when the first audio packet is sent and the audio_backend_buffer_desired_length  setting
              affects the nominal output buffer size.

              These are the settings available within the stdout group:

       audio_backend_latency_offset=offset_in_frames;
              Packets  of  audio  frames  are  written  to  stdout synchronously -- that is, they are written at
              exactly the time they should be played. You can offset the time of initial audio  output  relative
              to  its  nominal  time  using  this  setting.  For  example  to send an audio stream to stdout 100
              milliseconds before it is due to be played, set this to -4410. Default setting is 0.

       audio_backend_buffer_desired_length=buffer_length_in_frames;
              Use this setting, in frames, to set the size of the output buffer. It  works  by  determining  how
              soon  the  second  and  subsequent packets of audio frames are sent to stdout. For example, if you
              send   the   first   packet   of   audio   exactly   when    it    is    due    and,    using    a
              audio_backend_buffer_desired_length  setting  of  44100, send subsequent packets of audio a second
              before they are due to be played, they will be buffered in the stdout reader's buffer, giving it a
              nominal buffer size of 44,100 frames. Note that if the stdout reader consumes audio packets faster
              or slower than they are supplied, the buffer will eventually empty or overflow  --  shairport-sync
              performs no stuffing or interpolation when writing to stdout. Default setting is 44,100 frames.

       "AO" SETTINGS
              These settings are for the AO backend, used for the libao audio library.

              There  are  two settings affecting timing. The audio_backend_latency_offset affects precisely when
              the first audio packet is sent and the  audio_backend_buffer_desired_length  setting  affects  the
              nominal output buffer size.

              These are the settings available within the ao group:

       audio_backend_latency_offset=offset_in_frames;
              Packets of audio frames are written to the libao system synchronously -- that is, they are written
              at exactly the time they should be played. You  can  offset  the  time  of  initial  audio  output
              relative to its nominal time using this setting. For example to send an audio stream to stdout 100
              milliseconds before it is due to be played, set this to -4410. Default setting is 0.

       audio_backend_buffer_desired_length=buffer_length_in_frames;
              Use this setting, in frames, to set the size of the output buffer. It  works  by  determining  how
              soon  the  second  and  subsequent  packets  of  audio frames are sent to to the libao system. For
              example,  if  you  send  the  first  packet  of  audio  exactly  when  it  is  due  and,  using  a
              audio_backend_buffer_desired_length  setting  of  44100, send subsequent packets of audio a second
              before they are due to be played, they will be buffered in the stdout reader's buffer, giving it a
              nominal  buffer size of 44,100 frames. Note that if the libao system consumes audio packets faster
              or slower than they are supplied, the buffer will eventually empty or overflow  --  shairport-sync
              performs no stuffing or interpolation when writing to libao. Default setting is 44,100 frames.

       "METADATA" SETTINGS
              shairport-sync  can  process  metadata  provided  by the source, such as Track Number, Album Name,
              cover art, etc. and can provide additional metadata such as volume level,  pause/resume,  etc.  It
              sends  the  metadata  to  a  pipe,  by  default /tmp/shairport-sync-metadata. To process metadata,
              shairport-sync must have been compiled with metadata support included. You can check that this  is
              so by running shairport-sync -V; the identification string will contain the word metadata.

              Please  note that different sources provide different levels of metadata. Some provide a lot; some
              provide almost none.

              The metadata group of settings allow you to  enable  metadata  handling  and  to  control  certain
              aspects of it:

       enabled="choice";
              Set the choice to "yes" to enable shairport-sync to look for metadata from the audio source and to
              forward it, along with metadata generated by shairport-sync itself,  to  the  metadata  pipe.  The
              default is "no".

       include_cover_art="choice";
              Set  the  choice to "yes" to enable shairport-sync to look for cover art from the audio source and
              to include it in the feed to the metadata pipe. You must also enable  metadata  (see  above).  One
              reason  for  not  including cover art is that the images can sometimes be very large and may delay
              transmission of subsequent metadata through the pipe. The default is "no".

       pipe_name="filepathname";
              Specify the absolute path name of the pipe through which metadata should be sent  The  default  is
              /tmp/shairport-sync-metadata".

       "SESSIONCONTROL" SETTINGS
              shairport-sync  can  run  programs just before it starts to play an audio stream and just after it
              finishes. You specify them using the sessioncontrol group settings run_this_before_play_begins and
              run_this_after_play_ends.

       run_this_before_play_begins="/path/to/application and args";
              Here  you  can  specify  a  program  and its arguments that will be run just before a play session
              begins. Be careful to include the full path to the application. The application must be marked  as
              executable  and,  if  it  is  a  script, its first line must begin with the standard #!/bin/... as
              appropriate.

       run_this_after_play_ends="/path/to/application and args";
              Here you can specify a program and its arguments that will be run just after a play session  ends.
              Be  careful  to  include  the  full  path  to  the  application. The application must be marked as
              executable and, if it is a script, its first line must  begin  with  the  standard  #!/bin/...  as
              appropriate.

       wait_for_completion="choice";
              Set   choice   to  "yes"  to  make  shairport-sync  wait  until  the  programs  specified  in  the
              run_this_before_play_begins  and  run_this_after_play_ends   have   completed   execution   before
              continuing. The default is "no".

       allow_session_interruption="choice";
              If  choice is set to "yes", then another source will be able to interrupt an existing play session
              and start a new one. When set to "no" (the default),  other  devices  attempting  to  interrupt  a
              session will fail, receiving a busy signal.

       session_timeout=seconds;
              If a play session has been established and the source disappears without warning (such as a device
              going out of range of a network) then wait for seconds seconds before ending the session. Once the
              session has terminated, other devices can use it. The default is 120 seconds.

       "LATENCIES" SETTINGS
              The  latencies  settings  are  now deprecated. Do not use them for new installations. They will be
              removed from a future version of Shairport Sync.

              Latency is the exact time from a sound signal's original  timestamp  until  that  signal  actually
              "appears"  on  the  output of the audio output device, usually a Digital to Audio Converter (DAC),
              irrespective of any internal delays, processing times, etc. in the computer.

              Shairport Sync now  sets  latencies  automatically  using  information  supplied  by  the  source,
              typically either 88,200 or 99,577 frames.

              The  following  relates  to  the  old  scheme  of using fixed latencies, which ignores the latency
              information supplied by the source. There are four default latency settings. One  latency  matches
              the  latency  used by recent versions of iTunes when playing audio and another matches the latency
              used by so-called "AirPlay" devices, including iOS devices and iTunes and  Quicktime  Player  when
              they  are playing video. A third latency is used when the audio source is forked-daapd. The fourth
              latency is the default if no other latency is chosen and is used for older versions of iTunes.

              Note: If you are thinking of changing latencies to compensate for a  delay  in  the  audio  output
              device,   then   instead   of   changing   these   individual   latencies,   consider   using  the
              audio_backend_latency_offset setting in the alsa group (or the appropriate other group  if  you're
              not outputting through the alsa backend).

       itunes=latency;
              This is the latency, in frames, used for iTunes 10 or later. Default is 99,400.

       airplay=latency;
              This  is  the  latency,  in frames, used for AirPlay devices, including iOS devices and iTunes and
              Quicktime Player when they are playing video. Default is 88,200.

       forkedDaapd=latency;
              This is the latency, in frames, used for forkedDaapd sources. Default is 99,400.

       default=latency;
              This is the latency, in frames, used when the source is unrecognised. Default is 88,200.

OPTIONS

       Note: if you are setting up Shairport Sync for the first time or are updating an  existing  installation,
       you  are encouraged to use the configuration file settings described above. Most of the options described
       below simply replicate the configuration settings and are retained to provide backward compatibility with
       older installations of Shairport Sync.

       Many  of  the  options  take  sensible  default  values, so you can normally ignore most of them. See the
       EXAMPLES section for typical usages.

       The command line for shairport-sync can take two kinds of options:  regular  program  options  and  audio
       backend options. Program options are always listed first, followed by any audio backend options, preceded
       by a -- symbol.

PROGRAM OPTIONS

       These options are used by shairport-sync itself.

       -a service name | --name=service name
              Use this service name to identify this player in iTunes, etc. The default name is "Shairport  Sync
              on <hostname>".

       -A | --AirPlayLatency=latency
              Use  this  latency,  in  frames,  for audio streamed from an AirPlay device. The default is 88,200
              frames, where there are 44,100 frames to the second.

       -B program | --on-start=program
              Execute program when playback is about to begin. Specify  the  full  path  to  the  program,  e.g.
              /usr/bin/logger.  Executable  scripts  can  be  used, but they must have #!/bin/sh (or whatever is
              appropriate) in the headline.

              If you want shairport-sync to wait until the command has completed before starting to play, select
              the -w option as well.

       -c filename | --configfile=filename
              Read  configuration  settings  from  filename.  The  default  is to read them from /etc/shairport-
              sync.conf. For information about configuration settings, see  the  "Configuration  File  Settings"
              section above.

       -D | --disconnectFromOutput
              Disconnect  the  shairport-sync  daemon from the output device and exit. (Requires that the daemon
              has written its PID to an agreed file -- see the -d option).

       -d | --daemon
              Instruct shairport-sync to demonise itself. It will write its Process ID (PID) to a file,  usually
              at /var/run/shairport-sync.pid, which is used by the -k, -D and -R options to locate the daemon at
              a later time.

       -E program | --on-stop=program
              Execute  program  when  playback  has  ended.  Specify  the  full  path  to  the   program,   e.g.
              /usr/bin/logger.  Executable  scripts  can  be  used, but they must have #!/bin/sh (or whatever is
              appropriate) in the headline.

              If you want shairport-sync to wait until the command has completed before continuing,  select  the
              -w option as well.

       --forkedDaapdLatency=latency
              Use  this  latency, in frames, for audio streamed from a forked-daapd based source. The default is
              99,400 frames, where there are 44,100 frames to the second.

       --get-coverart
              This option requires the --meta-dir option to be set, and enables shairport-sync to request  cover
              art from the source and to transmit it through the metadata pipe.

              Please  note  that  cover  art  data  may  be very large, and may place too great a burden on your
              network.

       -h | --help
              Print brief help message and exit.

       -i | --iTunesLatency=latency
              Use this latency, in frames, for audio streamed from an iTunes source, where iTunes is Version  10
              or later. The default is 99,400 frames, where there are 44,100 frames to the second. If the source
              is iTunes but is earler than Version 10, the default latency is used (see  the  -L  option).  Some
              third party programs masquerade as older versions of iTunes.

       -k | --kill
              Kill  the  shairport-sync  daemon  and  exit.  (Requires that the daemon has written its PID to an
              agreed file -- see the -d option).

       -L | --latency=latency
              Use this to set the default latency, in frames, for audio coming from an  unidentified  source  or
              from  an  iTunes Version 9 or earlier source. The standard value for the default latency is 88,200
              frames, where there are 44,100 frames to the second.

       --meta-dir=directory
              Listen for metadata coming from the source and send it, along with  metadata  from  shairport-sync
              itself,  to  a  pipe  called  shairport-sync-metadata in the directory you specify. If you add the
              --get-cover-art   then   cover   art   will    be    sent    through    the    pipe    too.    See
              https://github.com/mikebrady/shairport-sync-metadata-reader for a sample metadata reader.

       -m mdnsbackend | --mdns=mdnsbackend
              Force the use of the specified mDNS backend to advertise the player on the network. The default is
              to try all mDNS backends until one works.

       -o outputbackend | --output=outputbackend
              Force the use of the specified output backend to play the audio. The default is to try  the  first
              one. (This is not used at present.)

       -p port | --port=port
              Listen for play requests on port. The default is to use port 5000.

       --password=secret
              Require the password secret to be able to connect and stream to the service.

       -R | --reconnectToOutput
              Reconnect  the  shairport-sync  daemon to the output device and exit. It may take a few seconds to
              synchronise. (Requires that the daemon has written its PID  to  an  agreed  file  --  see  the  -d
              option).

       -r threshold | --resync=threshold
              Resynchronise  if  timings differ by more than threshold frames. If the output timing differs from
              the source timing by more than the threshold, output will be muted and  a  full  resynchronisation
              will  occur.  The  default  threshold  is 2,205 frames, i.e. 50 milliseconds. Specify 0 to disable
              resynchronisation.

       --statistics
              Print some statistics in the standard output, or in the logfile if in daemon mode.

       -S mode | --stuffing=mode
              Stuff the audio stream using the mode. "Stuffing" refers to the  process  of  adding  or  removing
              frames  of  audio  to or from the stream sent to the output device to keep it exactly in synchrony
              with the player. The default mode, basic, is normally almost completely inaudible. The alternative
              mode, soxr, is even less obtrusive but requires much more processing power. For this mode, support
              for libsoxr, the SoX Resampler Library, must be selected when shairport-sync is compiled.

       -t timeout | --timeout=timeout
              Exit play mode if the stream disappears for more than timeout seconds.

              When shairport-sync plays an audio stream, it starts a play session and will return a busy  signal
              to  any  other  sources  that  attempt  to  use it. If the audio stream disappears for longer than
              timeout seconds, the play session will be  terminated.  If  you  specify  a  timeout  time  of  0,
              shairport-sync  will never signal that it is busy and will not prevent other sources from "barging
              in" on an existing play session. The default value is 120 seconds.

       --tolerance=frames
              Allow playback to be up to frames out of exact synchronization before attempting  to  correct  it.
              The  default  is  88  frames,  i.e.  2  ms.  The smaller the tolerance, the more likely it is that
              overcorrection will occur. Overcorrection is when more corrections (insertions and deletions)  are
              made  than  are  strictly  necessary  to  keep  the stream in sync. Use the --statistics option to
              monitor correction levels. Corrections should not greatly exceed net corrections.

       -V | --version
              Print version information and exit.

       -v | --verbose
              Print debug information. Repeat up to three times to get more detail.

       -w | --wait-cmd
              Wait for commands specified using -B or -E to complete before continuing execution.

AUDIO BACKEND OPTIONS

       These options are passed to the chosen audio backend. (At present, the only backend  implemented  is  for
       ALSA.)  The audio backend options are preceded by a -- symbol to introduce them and to separate them from
       any program options. In this way, option letters can be used as program options and also as audio backend
       options without ambiguity.

       In  the  ALSA  backend,  audio is sent to an output device which you can specify using the -d option. The
       output level (the "volume") is controlled using a level control associated with a mixer. By default,  the
       mixer  is  implemented in shairport-sync itself, i.e. the type of the mixer is "software". To use a level
       control on a mixer on the sound card, you must (a) specify that the mixer's type is "hardware"  with  the
       -t  option;  (b)  you must specify where the mixer is to be found using the -m option and finally (c) you
       must specify the name of the level control you are using with the -c option.

       -c controlname
              Use the level control called controlname on the hardware mixer for  controlling  volume.  This  is
              needed if the mixer type is specified, using the -t option, to be hardware. There is no default.

       -d device
              Use  the  specified  output  device.  You may specify a card, e.g. hw:0, in which case the default
              output device on the card will be chosen. Alternatively, you can specify a specific  device  on  a
              card, e.g. hw:0,0. The default is the device named default.

       -m mixer
              Use  the specified hardware mixer for volume control. Use this to specify where the mixer is to be
              found. For example, if the mixer is associated with a card, as is  often  the  case,  specify  the
              card,  e.g. hw:0. If (unusually) the mixer is associated with a specific device on a card, specify
              the device, e.g. hw:0,1. The default is the device named in the -d option, if given, or the device
              named default.

       -t devicetype
              This  option  is  deprecated  and  is  ignored.  For  your information, its functionality has been
              automatically incorporated in the -c option -- if you specify a mixer name with the -c option,  it
              is assumed that the mixer is implemented in hardware.

EXAMPLES

       Here is a slightly contrived but typical example:

       shairport-sync -d -a "Joe's Stereo" -S soxr -- -d hw:1,0 -m hw:1 -c PCM

       The  program  will run in daemon mode ( -d ), will be visible as "Joe's Stereo" ( -a "Joe's Stereo" ) and
       will use the SoX Resampler Library-based stuffing ( -S soxr ). The audio backend options following the --
       separator  specify  that  the audio will be output on output 0 of soundcard 1 ( -d hw:1,0 ) and will take
       advantage of the same sound card's mixer ( -m hw:1 ) using the level control named "PCM" ( -c "PCM" ).

       The example above is slightly contrived in order to show the use of the -m option. Typically, output 0 is
       the  default  output  of  a card, so the output device could be written -d hw:1 and then the mixer option
       would be unnecessary, giving the following, simpler, command:

       shairport-sync -d -a "Joe's Stereo" -S soxr -- -d hw:1 -c PCM

CREDITS

       Mike Brady developed Shairport Sync from the original Shairport by James Laird.

       Shairport Sync can be found at https://github.com/mikebrady/shairport-sync.

       Shairport can be found at https://github.com/abrasive/shairport.

COMMENTS

       This man page was written using xml2man(1) by Oliver Kurth.