Provided by: squeezelite-pulseaudio_1.9.9-1414+git20221121.dbe69eb-1build1_amd64 bug

NAME

       squeezelite - Lightweight headless Squeezebox emulator

SYNOPSIS

       squeezelite [options]

DESCRIPTION

       Squeezelite  is  a  small headless Logitech Squeezebox emulator. It is aimed at supporting
       high quality audio including USB DAC based output at multiple sample rates.

       The player is controlled using, and media  is  streamed  from,  a  Logitech  Media  Server
       instance running somewhere on the local network.

OPTIONS

       This program supports the following options:

       -?     Show a summary of the available command-line options.

       -s <server>[:<port>]
              Connect  to the specified Logitech Media Server, otherwise uses automatic discovery
              to find server on the local network. This option should only be needed if automatic
              discovery  does  not  work, or the server is not on the local network segment (e.g.
              behind a router).

       -o <output device>
              Specify the audio output device; the default value is default.  Use the  -l  option
              to  list available output devices.  - can be used to output raw samples to standard
              output.

       -l     List available audio output devices to stdout and exit. These device names  can  be
              passed  to the -o option in order to select a particular device or configuration to
              use for audio playback.

       -a <params>
              Specify parameters used when opening an audio output device.

              For ALSA, the format <b>:<p>:<f>:<m>:<d> is used where <b> is the  buffer  time  in
              milliseconds  (values  less  than  500) or size in bytes (default 40ms); <p> is the
              period count (values less than 50) or size in bytes (default 4 periods); <f> is the
              sample  format  (possible  values:  16, 24, 24_3 or 32); <m> is whether to use mmap
              (possible values: 0 or 1).  <d> open ALSA output device twice. (possible values:  0
              or 1).

              For Linux PortAudio, the value <l> is simply the target latency in milliseconds.

              For  MacOS,  <l>:<r> <l> is target latency in milliseconds.  <r> open device in Pro
              Mode or Play Nice (respective values: 0 or 1).

              For Windows, <l>:<e> <l> is target latency in milliseconds.  <e> use exclusive mode
              for WASAPI (possible values: 0 or 1).

              When  the  output  is sent to standard output, the value can be 16, 24 or 32, which
              denotes the sample size in bits. Little Endian only.

       -b <stream>:<output>
              Specify internal stream and output buffer sizes in kilobytes. Default is 2048:3446.

       -c <codec1>,...
              Restrict codecs to those  specified,  otherwise  load  all  available  codecs.  Use
              squeezelite -?  to obtain the list of codecs built into squeezelite.

       -C <timeout>
              Close  the  output  device  after  <timeout>  seconds of the player being idle; the
              default is to always keep the device open as long as the payer is "on".

       -d <category>=<level>
              Set logging level. Categories are: all, slimproto, stream, decode,  output  or  ir.
              Levels  can be: info, debug or sdebug.  The option can be repeated to set different
              log levels for different categories.

       -e <codec1>,...
              Explicitly exclude native support of one or more codecs. See also -c, above.

       -f <logfile>
              Send logging output to a log file instead of standard output or standard error.

       -G <Rpi GPIO#>:<H/L>
              Specify the BCM GPIO# to use for Amp Power Relay and if the output should be Active
              High or Low. This cannot be used with the -S option.

       -i [<filename>]
              Enable  LIRC  remote  control  support. If the optional <filename> is not provided,
              ~/.lircrc is used instead.

       -m <mac addr>
              Override the player's MAC address. The format must be colon-delimited  hexadecimal,
              for  example: ab:cd:ef:12:34:56. This is usually automatically detected, and should
              not need to be provided in most circumstances.

       -M <modelname>
              Override the player's hardware model name. The default value is SqueezeLite.

       -n <name>
              Set the player name. This name is used by the Logitech Media Server to refer to the
              player by name. This option is mututally exclusive with -N.

       -N <filename>
              Allow  the  server  to set the player's name. The player name is stored in the file
              pointed to by <filename> so that it can persist between restarts.  This  option  is
              mututally exclusive with -n.

       -O <mixer device>
              Specify mixer device, defaults to <output device>.

       -p <priority>
              Set  real  time  priority of output thread (1-99; default 45).  Not applicable when
              using PortAudio.

       -P <filename>
              Write the process ID (PID) number to the given <filename>.  This may be useful when
              running squeezelite as a daemon.

       -r <rates>[:<delay>]
              Specify sample rates supported by the output device; this is required if the output
              device is switched off when squeezelite is started. The format is either  a  single
              maximum sample rate, a range of sample rates in the format <min>-<max>, or a comma-
              separated list of available rates. Delay is an optional time to wait when switching
              sample rates between tracks, in milliseconds.

       -S <power script>
              Absolute  path  to script to launch on power commands from LMS. This cannot be used
              with the -G option.

       -u|-R [params]
              Enable upsampling of played audio. The argument is optional; see RESAMPLING (below)
              for more information. The options -u and -R are synonymous.

       -D [delay]
              Output  device  supports  DSD  over PCM (DoP). DSD streams will be converted to DoP
              before output. If this option is not supplied, DSD streams will be converted to PCM
              and  resampled,  so  they  can be played on a PCM DAC. Delay is an optional time to
              wait when switching between PCM and DoP between tracks, in milliseconds.

       -v     Enable visualiser support. This creates a shared memory segment that contains  some
              of the audio being played, so that an external visualiser can read and process this
              to create visualisations.

       -W     Read wave and aiff format from header, ignoring server parameters.

       -L     List available volume controls for the output device. Only  applicable  when  using
              ALSA output.

       -U <control>
              Unmute  the  given  ALSA <control> at daemon startup and set it to full volume. Use
              software volume adjustment for playback. This option is mutually exclusive with the
              -V option. Only applicable when using ALSA output.

       -V <control>
              Use  the  given ALSA <control> for volume adjustment during playback. This prevents
              the use of software volume control within  squeezelite.  This  option  is  mutually
              exclusive  with  the  -U option. If neither -U nor -V options are provided, no ALSA
              controls are adjusted while running squeezelite and software volume control is used
              instead. Only applicable when using ALSA output.

       -X     Use  linear  volume adjustments instead of in terms of dB (only for hardware volume
              control).

       -z     Cause squeezelite to run as a daemon. That is, it detaches itself from the terminal
              and runs in the background.

       -Z <rate>
              Report rate to server in helo as the maximum sample rate we can support.

       -t     Display version and license information.

RESAMPLING

       Audio  can  be  resampled or upsampled before being sent to the output device. This can be
       enabled simply by passing the -u option to squeezelite, but further configuration  can  be
       given as an argument to the option.

       Resampling  is  performed  using  the  SoX  Resampler  library; the documentation for that
       library and  the  SoX  rate  effect  many  be  helpful  when  configuring  upsampling  for
       squeezelite.

       The              format             of             the             argument             is
       <recipe>:<flags>:<attenuation>:<precision>:<passband_end>:<stopband_start>:<phase_response>

   recipe
       This  part  of  the  argument  string  is  made  up of a number of single-character flags:
       [v|h|m|l|q][L|I|M][s][E|X]. The default value is hL.

       v, h, m, l or q
              are mutually exclusive and correspond to very high,  high,  medium,  low  or  quick
              quality.

       L, I or M
              correspond to linear, intermediate or minimum phase.

       s      changes resampling bandwidth from the default 95% (based on the 3dB point) to 99%.

       E      exception  -  avoids  resampling  if the output device supports the playback sample
              rate natively.

       X      resamples to  the  maximum  sample  rate  for  the  output  device  ("asynchronous"
              resampling).

       Examples
              -u vLs would use very high quality setting, linear phase filter and steep cut-off.
              -u hM would specify high quality, with the minimum phase filter.
              -u  hMX  would  specify  high  quality,  with  the  minimum  phase filter and async
              upsampling to max device rate.

   flags
       The second optional argument to -u allows the user  to  specify  the  following  arguments
       (taken from the soxr.h header file), in hex:

       #define SOXR_ROLLOFF_SMALL     0u  /* <= 0.01 dB */
       #define SOXR_ROLLOFF_MEDIUM    1u  /* <= 0.35 dB */
       #define SOXR_ROLLOFF_NONE      2u  /* For Chebyshev bandwidth. */

       #define SOXR_MAINTAIN_3DB_PT   4u  /* Reserved for internal use. */
       #define SOXR_HI_PREC_CLOCK     8u  /* Increase 'irrational' ratio accuracy. */
       #define SOXR_DOUBLE_PRECISION 16u  /* Use D.P. calcs even if precision <= 20. */
       #define SOXR_VR               32u  /* Experimental, variable-rate resampling. */

       Examples
              -u :2 would specify SOXR_ROLLOFF_NONE.

              NB:  In  the  example  above the first option, <quality>, has not been specified so
              would default to hL. Therefore, specifying -u :2 is equivalent to having  specified
              -u hL:2.

   attenuation
       Internally,  data is passed to the SoX resample process as 32 bit integers and output from
       the SoX resample process as  32  bit  integers.  Why  does  this  matter?   There  is  the
       possibility  that  integer samples, once resampled may be clipped (i.e. exceed the maximum
       value). By default, if you do not specify an attenuation value, it will default to -1db. A
       value  of  0  on  the  command line, i.e. -u ::0 will disable the default -1db attenuation
       being applied.

       NB: Clipped samples will be logged. Keep an eye on the log file.

       Examples
              -u ::6 specifies to apply -6db (ie. halve  the  volume)  prior  to  the  resampling
              process.

   precision
       The internal 'bit' precision used in the re-sampling calculations (ie. quality).

       NB: HQ = 20, VHQ = 28.

       Examples
              -u :::28 specifies 28-bit precision.

   passband_end
       A  percentage  value between 0 and 100, where 100 is the Nyquist frequency. The default if
       not explicitly set is 91.3.

       Examples
              -u ::::98 specifies passband ends at 98 percent of the Nyquist frequency.

   stopband_start
       A percentage value between 0 and 100, where 100 is the Nyquist frequency. The  default  if
       not explicitly set is 100.

       Examples
              -u :::::100 specifies that the stopband starts at the Nyquist frequency.

   phase_response
       A value between 0-100, where 0 is equivalent to the recipe M flag for minimum phase, 25 is
       equivalent to the recipe I flag for intermediate phase and 50 is equivalent to the  recipe
       L flag for linear phase.

       Examples
              -u ::::::50 specifies linear phase.

SEE ALSO

       http://wiki.slimdevices.com/index.php/Squeezelite

       http://wiki.slimdevices.com/index.php/Logitech_Media_Server

       sox(1) for further information about resampling.