bionic (7) shairport-sync.7.gz

Provided by: shairport-sync_3.1.7-1build1_amd64 bug

NAME

       shairport-sync - Synchronised Audio Player for iTunes / AirPlay

SYNOPSIS

       shairport-sync  [-djvw]  [-a  name] [-A latency] [-B command] [-c configurationfile] [-E command] [--get-
       cover-art]  [--logOutputLevel]  [-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 -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  (available  on  Linux  and  FreeBSD)  , to a "sndio" output device (available on OpenBSD,
       FreeBSD and Linux) or to a PulseAudio output stream (available on Linux).

       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 to play the same source without getting out of phase with one another,  enabling,
       for example, simultaneous multi-room operation.

       shairport-sync  can  be  compiled  to stream audio, without synchronisation, to a pipe, to stdout or to a
       libao output device (an "AO" device). It can also be compiled to stream metadata to a pipe or socket.

       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 usually shairport-
       sync.conf and is generally located in the System Configuration Directory,  which  is  normally  the  /etc
       directory in Linux or the /usr/local/etc directory in BSD unixes. You may need to have root privileges to
       modify it.

       (Note: Shairport Sync may have been  compiled  to  use  a  different  configuration  directory.  You  can
       determine  which  by performing the command $ shairport-sync -V. One of the items in the output string is
       the value of the sysconfdir, i.e. the System Configuration Directory.)

       Within the configuration file, 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";

       output_backend = "alsa";

       };

       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  specified.  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 shairport-sync.conf.sample, within the System Configuration Directory -- /etc in Linux, /usr/local/etc
       in BSD unixes.

       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  following  substitutions  are  allowed: %h for the computer's hostname, %H for the computer's
              hostname with the first letter capitalised (ASCII only), %v for the shairport-sync version number,
              e.g.  "3.0.1"  and  %V for the shairport-sync version string, e.g. "3.0.1-OpenSSL-Avahi-ALSA-soxr-
              metadata-sysconfdir:/etc".

              The default is "%H", which is replaced by the hostname with the first letter capitalised.

       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. Perform the command shairport-sync -h to get a  list  of  available  audio
              backends  --  the  default  is  the first on this list. Only the "alsa", "sndio" and "pa" backends
              support 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  previous  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_tolerance_in_seconds=seconds;
              Allow  playback  to  drift up to seconds out of exact synchronization before attempting to correct
              it. The default is 0.002 seconds, i.e. 2 milliseconds. 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. This
              setting replaces the deprecated drift setting.

       resync_threshold_in_seconds=threshold;
              Resynchronise if timings differ by more than threshold seconds. 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 0.050 seconds, i.e. 50 milliseconds. Specify 0.0  to  disable
              resynchronisation. This setting replaces the deprecated resync_threshold setting.

       log_verbosity=0;
              Use  this  to specify how much debugging information should be output or logged. The value 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_max_db=dBvalue;
              Specify the maximum output level to be used with the hardware mixer, if used. If no hardware mixed
              is used, this setting speciies the maximum setting permissible in the software mixer, which has an
              attenuation of from 0.0 dB down to -96.3 dB.

       volume_range_db=dBvalue;
              Use this dBvalue to reduce or increase the attenuation range, in decibels, between the minimum and
              maximum volume.

              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 systems
              have a volume control 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 30 dB. 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 30. Using it in this case gives the  volume
              control a much more useful range of settings.

              As  a third example, you can actually extend the range provided by a mixer. Many cheaper DACs have
              hardware mixers that offer a restricted attenuation range. If you specify a volume  range  greater
              than  the  range  of  the mixer, software attenuation and hardware attenuation will be combined to
              give the specified range.

              If you omit this setting, the native range of the mixer is used.

       regtype="regTypeString";
              Use  this  advanced  setting  to  set  the  service  type  and  transport  to  be  advertised   by
              Zeroconf/Bonjour. Default is "_raop._tcp".

       playback_mode="mode";
              The  mode  can  be  "stereo",  "mono",  "reverse  stereo", "both left" or "both right". Default is
              "stereo".

       interface="name";
              Use this advanced setting if you want to confine Shairport Sync to the named interface.  Leave  it
              commented out to get the default bahaviour.

       alac_decoder="decodername";
              This  can  be  "hammerton"  or  "apple".  This  advanced setting allows you to choose the original
              Shairport decoder by David Hammerton or the Apple Lossless Audio Codec (ALAC) decoder  written  by
              Apple.  Shairport  Sync must have been compiled with the configuration setting "--with-apple-alac"
              and the Apple ALAC decoder library must be present for this to work.

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

       audio_backend_buffer_desired_length_in_seconds=length_in_seconds;
              Use this length_in_seconds to set the desired length of the queue of audio frames in the backend's
              output buffer.

              The default is 0.15 seconds for the ALSA backend, 0.35 seconds for the PA backend and  one  second
              for all other backends.

              If this value is set too small, underflow may occur on low-powered machines. If set too large, the
              response times to the volume control may become excessive, or it may exceed the  backend's  buffer
              size.  It may need to be larger on low-powered machines that are also performing other tasks, such
              as processing metadata.

       audio_backend_silent_lead_in_time=lead_in_time_in_seconds;
              This is an advanced setting. Use the lead_in_time_in_seconds to set  the  desired  length  of  the
              period of silence (a "silent lead-in") played before a play session begins.

              The purpose of this silent lead-in is to give the backend sufficient time to prepare for operation
              and to make an estimate (and, importantly, to correct the estimate) of the exact time at which  to
              begin  playing audio to achieve initial synchronisation. The value can be from 0.0 up to a maximum
              of either 4.0 seconds. The actual duration will be close to the setting but  can  not  exceed  the
              latency set by the client, usually 2 seconds or a little more.

              If the value chosen is too short for synchronised backends such as the ALSA, sndio or PA backends,
              then audio will not be synchronised correctly at the start of play.  The  default  is  to  have  a
              silent lead-in of approximately the same time as the latency set by the client.

       run_this_when_volume_is_set="/full/path/to/application/and/args";
              Here  you  can  specify  a  program  and  its arguments that will be run when the volume is set or
              changed. 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.

              The desired AirPlay volume is appended to the end of the command line – leave a space if you  want
              it treated as an extra argument. AirPlay volume goes from 0.0 to -30.0 and -144.0 means "mute".

       "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_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.

       output_rate=frame rate;
              Use this setting to specify the frame rate to output to the  ALSA  device.  Allowable  values  are
              44100  (default),  88200,  176400  and  352800.  The device must have the capability to accept the
              format you specify. There is no particular reason to use  anything  other  than  44100  if  it  is
              available.

       output_format="format";
              Use  this  setting  to  specify  the  format  that should be used to send data to the ALSA device.
              Allowable values are "U8", "S8", "S16", "S24", "S24_3LE", "S24_3BE" or "S32". The device must have
              the capability to accept the format you specify.

              "S" means signed; "U" means unsigned; BE means big-endian and LE means little-endian. Except where
              stated (using *LE or *BE), endianness matches that of the processor. The default is "S16".

              If you are using a hardware mixer, the best setting is S16, as audio will pass  through  Shairport
              Sync  unmodifed  except for interpolation. If you are using the software mixer, use 32- or 24-bit,
              if your device is capable of it, to get the lowest possible levels of dither.

       disable_synchronization="no";
              This is an advanced setting and is for debugging only. Set to "yes"  to  disable  synchronization.
              Default  is "no". If you use it to disable synchronisation, then sooner or later you'll experience
              audio glitches due to audio buffer overflow or underflow.

       period_size=number;
              Use this optional advanced setting to set the alsa period size near to this value.

       buffer_size=number;
              Use this optional advanced setting to set the alsa buffer size near to this value.

       use_mmap_if_available="yes";
              Use this optional advanced setting to control whether MMAP-based output  is  used  to  communicate
              with the DAC. Default is "yes".

       mute_using_playback_switch="yes";
              This  is  an  advanced  setting  and  the default is "yes", which means that hardware mute will be
              implemented using a feature called a 'playback switch', where one is available; set it to "no"  to
              prevent the playback switch being used.

              The     motivation    for    this    is    to    avoid    using    the    alsa    function    call
              "snd_mixer_selem_set_playback_switch_all", which is incorrectly implemented on certain soundcards,
              including the emulated card in VMWare Fusion 8.5.

       "SNDIO" SETTINGS
              These  settings  are  for the SNDIO back end, used to communicate with audio output devices in the
              SNDIO system.

       device="snd/0";
              Use this optional setting to specify the name of the output device, e.g. "snd/0". The  default  is
              to use the SNDIO system's default.

       rate=44100;
              Use  this optional setting to specify the output rate in frames per second. Valid rates are 44100,
              88200, 176400 or 352800. The output device  must  have  the  capability  to  accept  data  at  the
              specified rate. The default is 44100.

       format="S16";
              Use  this  optional  setting to specify the output format. Allowable values are "U8", "S8", "S16",
              "S24", "S24_3LE", "S24_3BE" or "S32". The device must have the capability to accept the format you
              specify.

              "S" means signed; "U" means unsigned; BE means big-endian and LE means little-endian. Except where
              stated (using *LE or *BE), endianness matches that of the processor. The default is "S16".

              Since the SNDIO backend does not  use  a  hardware  mixer  for  volume  control,  dither  will  be
              introduced  into  the  output  if  it is less than full volume. Thus, (unless you are ignoring the
              volume control setting), consider using 32- or 24-bit output if your device is capable of  it,  to
              get the lowest possible levels of dither.

              Please note that 32- or 24-bit has not been extensively tested on SNDIO.

       round=value;
              Use  this optional advanced setting to specify the period size of the SNDIO channel. If omitted, a
              SNDIO system default value will be used.

       bufsiz=value;
              Use this optional advanced setting to specify the buffer size of the SNDIO channel. If omitted,  a
              SNDIO system default value will be used.

       "PA" SETTINGS
              These settings are for the new PulseAudio backend.

       application_name="Shairport Sync";
              Use this to set the name to appear in the Sounds "Applications" tab when Shairport Sync is active.
              The default is the name "Shairport Sync".

       "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, interleaved stereo.

       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.

       "STDOUT" SETTINGS
              There are no settings for the STDOUT backend.

       "AO" SETTINGS
              There are no configuration file settings for the AO backend.

       "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 the command $ 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.

       socket_address="hostnameOrIP";
              If  hostnameOrIP  is set to a host name or and IP address, UDP packets containing metadata will be
              sent to this address. May be a multicast address. Additionally, socket-port must be  non-zero  and
              enabled must be set to "yes".

       socket_port=port;
              If socket_address is set, use port to specify the port to send UDP packets to. Must not be zero.

       socket_msglength=65000;
              The  maximum  packet  size for any UDP metadata. This must be between 500 or 65000. The default is
              500.

       "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,   run_this_after_play_ends   and   run_this_when_volume_is_set   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.

OPTIONS

       This section is about the command-line options available in shairport-sync.

       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 command-line
       options described below simply replicate the configuration settings and are retained to provide  backward
       compatibility with older installations of shairport-sync.

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

       There are two kinds of command-line options for shairport-sync: 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 command-line 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 following substitutions are allowed: %h for the computer's hostname,  %H  for  the  computer's
              hostname with the first letter capitalised (ASCII only), %v for the shairport-sync version number,
              e.g. "3.0.1" and %V for the shairport-sync version  string,  e.g.  "3.0.1-OpenSSL-Avahi-ALSA-soxr-
              metadata-sysconfdir:/etc".

              The default is "%H", which is replaced by the hostname with the first letter capitalised.

       -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  the  shairport-
              sync.conf  in  the  System Configuration Directory -- /etc in Linux, /usr/local/etc in BSD unixes.
              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).

              Please  note that this feature is deprecated and will be removed in a future version of shairport-
              sync.

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

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

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

       -j     Instruct  shairport-sync  to demonise itself. Unlike the -d option, it will not write a Process ID
              (PID) to a file -- it will just (hence the "j") demonise itself.

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

       --logOutputLevel
              Use this to log the volume level when the volume is changed. It may be useful if you are trying to
              determine a suitable value for the maximum volume level. Not available  as  a  configuration  file
              setting.

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

              Please  note that this feature is deprecated and will be removed in a future version of shairport-
              sync.

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

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

              Please  note that this feature is deprecated and will be removed in a future version of shairport-
              sync.

       -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.  This  setting  is  deprecated  and  will  be  removed  in  a future version of
              shairport-sync.

       --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. This setting  is
              deprecated and will be removed in a future version of shairport-sync.

       -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 command-line options are passed to the chosen audio backend. 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 in software. To use a hardware level control on a mixer on
       the sound card, specify the name of the mixer control with the -c option. If the mixer is not  associated
       with the output device, then you need to specify where the mixer is to be found with the -m 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 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.