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

FreeBSD Manual Pages

  
 
  

home | help
SQUEEZELITE(1)		     General Commands Manual		  SQUEEZELITE(1)

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 Lyrion  Music
     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 Lyrion Music Server, otherwise uses auto-
	    matic 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 (possi-
	    ble values: 16, 24, 24_3 or 32); <m> is whether to use mmap  (possi-
	    ble  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. De-
	    fault is 2048:3445.

     -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 <GPIO Chip>:<GPIO#>:<H/L>
	    Specify  the kernel gpio chip number.  Specify the GPIO Line# 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-delim-
	    ited  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 Lyrion Music Server to
	    refer to the player by name. This option is mutually 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 mutually 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 ap-
	    plicable 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  re-
	    quired  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 RE-
	    SAMPLING (below) for more information. The options	-u  and  -R  are
	    synonymous.

     -D [delay]
	    Output  device supports DSD over PCM (DoP). DSD streams will be con-
	    verted 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  switch-
	    ing 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 visu-
	    aliser 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	applica-
	    ble 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 sup-
	    port.

     -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>:<preci-
     sion>:<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  ("asyn-
	    chronous" 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 spec-
     ify an attenuation value, it will default to -1db. A value of 0 on the com-
     mand  line, i.e. -u ::0 will disable the default -1db attenuation being ap-
     plied.

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

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

   phase_response
     A value between 0-100, where 0 is equivalent to the recipe M flag for mini-
     mum 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

     https://lyrion.org/

     sox(1)
	    for further information about resampling.

Debian Project			   2024-04-03			  SQUEEZELITE(1)

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

home | help