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

FreeBSD Manual Pages


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

       squeezelite - Lightweight headless Squeezebox emulator

       squeezelite [options]

       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.

       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> 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 for-
	      mat (possible values: 16,	24, 24_3 or 32); <m> is	whether	to use
	      mmap (possible values: 0 or 1).  For  PortAudio,	the  value  is
	      simply  the  target  latency in milliseconds. When the output is
	      sent to standard output, the value can be	16, 24	or  32,	 which
	      denotes the sample size in bits.

       -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	 -h 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,  de-
	      code,  output or ir.  Levels can be: info, debug or sdebug.  The
	      option can be repeated to	set different log levels for different

       -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 out-
	      put 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-de-
	      limited  hexadecimal,  for  example:  ab:cd:ef:12:34:56. This is
	      usually automatically detected, and should not need to  be  pro-
	      vided in most circumstances.

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

       -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 per-
	      sist between restarts. This option is mututally  exclusive  with

       -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 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-sep-
	      arated  list  of	available  rates. Delay	is an optional time to
	      wait when	switching sample rates between	tracks,	 in  millisec-

       -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	exter-
	      nal visualiser can read and process this	to  create  visualisa-

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

       -L     List available volume controls for the output device.  Only  ap-
	      plicable 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	 play-
	      back.  This  prevents  the use of	software volume	control	within
	      squeezelite. This	option is mutually exclusive with the  -U  op-
	      tion.  If	 neither  -U nor -V options are	provided, no ALSA con-
	      trols 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  it-
	      self from	the terminal and runs in the background.

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

       -t     Display version and license information.

       Audio can be resampled or upsampled before being	sent to	the output de-
       vice.  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 documenta-
       tion for	that library and the SoX rate effect many be helpful when con-
       figuring	upsampling for squeezelite.

       The  format  of	the argument is	<recipe>:<flags>:<attenuation>:<preci-

       This part of the	argument string	is made	up of a	number of single-char-
       acter 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).

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

       The  second optional argument to	-u allows the user to specify the fol-
       lowing 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 accu-
       racy. */
       #define	SOXR_DOUBLE_PRECISION 16u  /* Use D.P. calcs even if precision
       <= 20. */
       #define SOXR_VR		     32u  /* Experimental,  variable-rate  re-
       sampling. */

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

       Internally,  data is passed to the SoX resample process as 32 bit inte-
       gers 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.

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

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

       NB: HQ =	20, VHQ	= 28.

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

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

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

       A  percentage  value  between  0	and 100, where 100 is the Nyquist fre-
       quency. The default if not explicitly set is 100.

	      -u :::::100 specifies that the stopband starts  at  the  Nyquist

       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.

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


       sox(1) for further information about resampling.

Debian Project			  2018-05-23			SQUEEZELITE(1)


Want to link to this manual page? Use this URL:

home | help