1SQUEEZELITE(1) General Commands Manual SQUEEZELITE(1)
2
3
4
6 squeezelite - Lightweight headless Squeezebox emulator
7
9 squeezelite [options]
10
12 Squeezelite is a small headless Logitech Squeezebox emulator. It is
13 aimed at supporting high quality audio including USB DAC based output
14 at multiple sample rates.
15
16 The player is controlled using, and media is streamed from, a Logitech
17 Media Server instance running somewhere on the local network.
18
20 This program supports the following options:
21
22 -? Show a summary of the available command-line options.
23
24 -s <server>[:<port>]
25 Connect to the specified Logitech Media Server, otherwise uses
26 automatic discovery to find server on the local network. This
27 option should only be needed if automatic discovery does not
28 work, or the server is not on the local network segment (e.g.
29 behind a router).
30
31 -o <output device>
32 Specify the audio output device; the default value is default.
33 Use the -l option to list available output devices. - can be
34 used to output raw samples to standard output.
35
36 -l List available audio output devices to stdout and exit. These
37 device names can be passed to the -o option in order to select a
38 particular device or configuration to use for audio playback.
39
40 -a <params>
41 Specify parameters used when opening an audio output device.
42
43 For ALSA, the format <b>:<p>:<f>:<m>:<d> is used where <b> is
44 the buffer time in milliseconds (values less than 500) or size
45 in bytes (default 40ms); <p> is the period count (values less
46 than 50) or size in bytes (default 4 periods); <f> is the sample
47 format (possible values: 16, 24, 24_3 or 32); <m> is whether to
48 use mmap (possible values: 0 or 1). <d> open ALSA output device
49 twice. (possible values: 0 or 1).
50
51 For Linux PortAudio, the value <l> is simply the target latency
52 in milliseconds.
53
54 For MacOS, <l>:<r> <l> is target latency in milliseconds. <r>
55 open device in Pro Mode or Play Nice (respective values: 0 or
56 1).
57
58 For Windows, <l>:<e> <l> is target latency in milliseconds. <e>
59 use exclusive mode for WASAPI (possible values: 0 or 1).
60
61 When the output is sent to standard output, the value can be 16,
62 24 or 32, which denotes the sample size in bits. Little Endian
63 only.
64
65 -b <stream>:<output>
66 Specify internal stream and output buffer sizes in kilobytes.
67 Default is 2048:3446.
68
69 -c <codec1>,...
70 Restrict codecs to those specified, otherwise load all available
71 codecs. Use squeezelite -? to obtain the list of codecs built
72 into squeezelite.
73
74 -C <timeout>
75 Close the output device after <timeout> seconds of the player
76 being idle; the default is to always keep the device open as
77 long as the payer is "on".
78
79 -d <category>=<level>
80 Set logging level. Categories are: all, slimproto, stream,
81 decode, output or ir. Levels can be: info, debug or sdebug.
82 The option can be repeated to set different log levels for dif‐
83 ferent categories.
84
85 -e <codec1>,...
86 Explicitly exclude native support of one or more codecs. See
87 also -c, above.
88
89 -f <logfile>
90 Send logging output to a log file instead of standard output or
91 standard error.
92
93 -G <Rpi GPIO#>:<H/L>
94 Specify the BCM GPIO# to use for Amp Power Relay and if the out‐
95 put should be Active High or Low. This cannot be used with the
96 -S option.
97
98 -i [<filename>]
99 Enable LIRC remote control support. If the optional <filename>
100 is not provided, ~/.lircrc is used instead.
101
102 -m <mac addr>
103 Override the player's MAC address. The format must be colon-
104 delimited hexadecimal, for example: ab:cd:ef:12:34:56. This is
105 usually automatically detected, and should not need to be pro‐
106 vided in most circumstances.
107
108 -M <modelname>
109 Override the player's hardware model name. The default value is
110 SqueezeLite.
111
112 -n <name>
113 Set the player name. This name is used by the Logitech Media
114 Server to refer to the player by name. This option is mututally
115 exclusive with -N.
116
117 -N <filename>
118 Allow the server to set the player's name. The player name is
119 stored in the file pointed to by <filename> so that it can per‐
120 sist between restarts. This option is mututally exclusive with
121 -n.
122
123 -O <mixer device>
124 Specify mixer device, defaults to <output device>.
125
126 -p <priority>
127 Set real time priority of output thread (1-99; default 45). Not
128 applicable when using PortAudio.
129
130 -P <filename>
131 Write the process ID (PID) number to the given <filename>. This
132 may be useful when running squeezelite as a daemon.
133
134 -r <rates>[:<delay>]
135 Specify sample rates supported by the output device; this is
136 required if the output device is switched off when squeezelite
137 is started. The format is either a single maximum sample rate, a
138 range of sample rates in the format <min>-<max>, or a comma-sep‐
139 arated list of available rates. Delay is an optional time to
140 wait when switching sample rates between tracks, in millisec‐
141 onds.
142
143 -S <power script>
144 Absolute path to script to launch on power commands from LMS.
145 This cannot be used with the -G option.
146
147 -u|-R [params]
148 Enable upsampling of played audio. The argument is optional; see
149 RESAMPLING (below) for more information. The options -u and -R
150 are synonymous.
151
152 -D [delay]
153 Output device supports DSD over PCM (DoP). DSD streams will be
154 converted to DoP before output. If this option is not supplied,
155 DSD streams will be converted to PCM and resampled, so they can
156 be played on a PCM DAC. Delay is an optional time to wait when
157 switching between PCM and DoP between tracks, in milliseconds.
158
159 -v Enable visualiser support. This creates a shared memory segment
160 that contains some of the audio being played, so that an exter‐
161 nal visualiser can read and process this to create visualisa‐
162 tions.
163
164 -W Read wave and aiff format from header, ignoring server parame‐
165 ters.
166
167 -L List available volume controls for the output device. Only
168 applicable when using ALSA output.
169
170 -U <control>
171 Unmute the given ALSA <control> at daemon startup and set it to
172 full volume. Use software volume adjustment for playback. This
173 option is mutually exclusive with the -V option. Only applicable
174 when using ALSA output.
175
176 -V <control>
177 Use the given ALSA <control> for volume adjustment during play‐
178 back. This prevents the use of software volume control within
179 squeezelite. This option is mutually exclusive with the -U
180 option. If neither -U nor -V options are provided, no ALSA con‐
181 trols are adjusted while running squeezelite and software volume
182 control is used instead. Only applicable when using ALSA output.
183
184 -X Use linear volume adjustments instead of in terms of dB (only
185 for hardware volume control).
186
187 -z Cause squeezelite to run as a daemon. That is, it detaches
188 itself from the terminal and runs in the background.
189
190 -Z <rate>
191 Report rate to server in helo as the maximum sample rate we can
192 support.
193
194 -t Display version and license information.
195
197 Audio can be resampled or upsampled before being sent to the output
198 device. This can be enabled simply by passing the -u option to
199 squeezelite, but further configuration can be given as an argument to
200 the option.
201
202 Resampling is performed using the SoX Resampler library; the documenta‐
203 tion for that library and the SoX rate effect many be helpful when con‐
204 figuring upsampling for squeezelite.
205
206 The format of the argument is <recipe>:<flags>:<attenuation>:<preci‐
207 sion>:<passband_end>:<stopband_start>:<phase_response>
208
209 recipe
210 This part of the argument string is made up of a number of single-char‐
211 acter flags: [v|h|m|l|q][L|I|M][s][E|X]. The default value is hL.
212
213 v, h, m, l or q
214 are mutually exclusive and correspond to very high, high,
215 medium, low or quick quality.
216
217 L, I or M
218 correspond to linear, intermediate or minimum phase.
219
220 s changes resampling bandwidth from the default 95% (based on the
221 3dB point) to 99%.
222
223 E exception - avoids resampling if the output device supports the
224 playback sample rate natively.
225
226 X resamples to the maximum sample rate for the output device
227 ("asynchronous" resampling).
228
229 Examples
230 -u vLs would use very high quality setting, linear phase filter
231 and steep cut-off.
232 -u hM would specify high quality, with the minimum phase filter.
233 -u hMX would specify high quality, with the minimum phase filter
234 and async upsampling to max device rate.
235
236 flags
237 The second optional argument to -u allows the user to specify the fol‐
238 lowing arguments (taken from the soxr.h header file), in hex:
239
240 #define SOXR_ROLLOFF_SMALL 0u /* <= 0.01 dB */
241 #define SOXR_ROLLOFF_MEDIUM 1u /* <= 0.35 dB */
242 #define SOXR_ROLLOFF_NONE 2u /* For Chebyshev bandwidth. */
243
244 #define SOXR_MAINTAIN_3DB_PT 4u /* Reserved for internal use. */
245 #define SOXR_HI_PREC_CLOCK 8u /* Increase 'irrational' ratio accu‐
246 racy. */
247 #define SOXR_DOUBLE_PRECISION 16u /* Use D.P. calcs even if precision
248 <= 20. */
249 #define SOXR_VR 32u /* Experimental, variable-rate
250 resampling. */
251
252 Examples
253 -u :2 would specify SOXR_ROLLOFF_NONE.
254
255 NB: In the example above the first option, <quality>, has not
256 been specified so would default to hL. Therefore, specifying -u
257 :2 is equivalent to having specified -u hL:2.
258
259 attenuation
260 Internally, data is passed to the SoX resample process as 32 bit inte‐
261 gers and output from the SoX resample process as 32 bit integers. Why
262 does this matter? There is the possibility that integer samples, once
263 resampled may be clipped (i.e. exceed the maximum value). By default,
264 if you do not specify an attenuation value, it will default to -1db. A
265 value of 0 on the command line, i.e. -u ::0 will disable the default
266 -1db attenuation being applied.
267
268 NB: Clipped samples will be logged. Keep an eye on the log file.
269
270 Examples
271 -u ::6 specifies to apply -6db (ie. halve the volume) prior to
272 the resampling process.
273
274 precision
275 The internal 'bit' precision used in the re-sampling calculations (ie.
276 quality).
277
278 NB: HQ = 20, VHQ = 28.
279
280 Examples
281 -u :::28 specifies 28-bit precision.
282
283 passband_end
284 A percentage value between 0 and 100, where 100 is the Nyquist fre‐
285 quency. The default if not explicitly set is 91.3.
286
287 Examples
288 -u ::::98 specifies passband ends at 98 percent of the Nyquist
289 frequency.
290
291 stopband_start
292 A percentage value between 0 and 100, where 100 is the Nyquist fre‐
293 quency. The default if not explicitly set is 100.
294
295 Examples
296 -u :::::100 specifies that the stopband starts at the Nyquist
297 frequency.
298
299 phase_response
300 A value between 0-100, where 0 is equivalent to the recipe M flag for
301 minimum phase, 25 is equivalent to the recipe I flag for intermediate
302 phase and 50 is equivalent to the recipe L flag for linear phase.
303
304 Examples
305 -u ::::::50 specifies linear phase.
306
308 http://wiki.slimdevices.com/index.php/Squeezelite
309
310 http://wiki.slimdevices.com/index.php/Logitech_Media_Server
311
312 sox(1) for further information about resampling.
313
314
315
316Debian Project 2020-07-16 SQUEEZELITE(1)