SQUEEZELITE(1)
π SQUEEZELITE(1) π
General Commands Manual Β· the squeezelite glow-up page, part 1
β¨ NAME β¨
squeezelite β bestie, it's a Lightweight headless Squeezebox emulator π
πΈ SYNOPSIS πΈ
squeezelite [options]
π¦ DESCRIPTION π¦
Squeezelite is a small, headless Logitech Squeezebox emulator. It's literally built to serve high quality audio, including USB DAC based output at multiple sample rates β¨
The player gets controlled by, and media is streamed from, a Lyrion Music Server instance running somewhere on your local network. That's the whole vibe. π
π OPTIONS π
This program supports the following options, and bestie there are a LOT of them, so hydrate:
-?β Show a lil summary of all the command-line options available. π«Ά-s <server>[:<port>]β Connect to the Lyrion Music Server you name here. If you don't, it uses automatic discovery to find a server on the local network instead. You should only really need this one if automatic discovery is being flaky, or if the server isn't on your local network segment (like, say, it's hiding behind a router π).-o <output device>β Specify the audio output device; the default value isdefault. Run the-loption to list the output devices you've got. And fun fact: you can use-to output raw samples straight to standard output. β-lβ List available audio output devices to stdout and then exit. These device names are exactly what you feed to the-ooption to pick a particular device or configuration for audio playback. Go get 'em. π-a <params>β Specify parameters used when opening an audio output device. This one's a whole saga depending on your platform:- For ALSA, the format is
<b>:<p>:<f>:<m>:<d>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_3or32)<m>is whether to use mmap (possible values:0or1)<d>open ALSA output device twice (possible values:0or1)
- For Linux PortAudio, the value
<l>is simply the target latency in milliseconds. - For MacOS,
<l>:<r>β<l>is target latency in milliseconds, and<r>opens the device in Pro Mode or Play Nice (respective values:0or1). - For Windows,
<l>:<e>β<l>is target latency in milliseconds, and<e>uses exclusive mode for WASAPI (possible values:0or1). - When the output is sent to standard output, the value can be
16,24or32, which denotes the sample size in bits. Little Endian only, no exceptions bestie.
- For ALSA, the format is
-b <stream>:<output>β Specify internal stream and output buffer sizes in kilobytes. Default is2048:3445. π¦-c <codec1>,...β Restrict codecs to only the ones you list here, otherwise it loads all available codecs. Pro tip: runsqueezelite -?to get the list of codecs built into squeezelite. π§-C <timeout>β Close the output device after<timeout>seconds of the player being idle. Default behaviour is to always keep the device open as long as the player is "on". (The original spells it "payer" there, we love a typo, iconic. π)-d <category>=<level>β Set the logging level. Categories are:all,slimproto,stream,decode,outputorir. Levels can be:info,debugorsdebug. And you can repeat this option to set different log levels for different categories. β¨-e <codec1>,...β Explicitly exclude native support of one or more codecs. See also-cabove. Byeee codec. π-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 whether the output should be Active High or Low. > This cannot be used with the-Soption. π-i [<filename>]β Enable LIRC remote control support. If you don't hand over the optional<filename>, it uses~/.lircrcinstead. πΉοΈ-m <mac addr>β Override the player's MAC address. Format has to be colon-delimited hexadecimal, like for example:ab:cd:ef:12:34:56. This is usually automatically detected, so honestly you shouldn't need to provide it in most circumstances. π-M <modelname>β Override the player's hardware model name. The default value isSqueezeLite. π-n <name>β Set the player name. The Lyrion Music Server uses this name to refer to the player. > This option is mutually exclusive with-N.-N <filename>β Let the server set the player's name. The player name gets stored in the file pointed to by<filename>so 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; default45). 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-Goption. π-u|-R [params]β Enable upsampling of played audio. The argument is optional; see RESAMPLING (below) for more information. The options-uand-Rare synonymous. β¨-D [delay][:format]β Output device supports DSD over PCM (DoP) or native.delayto add when switching between PCM and DSD in milliseconds (optional).formatisdop(default),u8,u16le,u16be,u32leoru32beas required by the attached DAC. ποΈ-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. So aesthetic. π¨-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-Voption. 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-Uoption. If neither-Unor-Voptions 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. main character energy, gone but never forgotten. π-Z <rate>β Report rate to server in helo as the maximum sample rate we can support. π-tβ Display version and license information. π
...and bestie, there's MORE. part 2 incoming, don't go anywhere π
π RESAMPLING π
Okay bestie, this is the glow-up section. Your audio can be resampled or upsampled before it ever gets sent to the output device. Wanna turn it on? Just pass -u to squeezelite and boom, you're resampling. But if you want to customize it, you hand -u an argument and go full mad scientist. π
The actual resampling is done by the SoX Resampler library. If you wanna get deep with configuring upsampling for squeezelite, the docs for that library and the SoX rate effect are your besties here. No cap.
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 bunch 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
These are mutually exclusive, meaning you pick one, bestie. They correspond to very high, high, medium, low or quick quality.
π¦ L, I or M
These correspond to linear, intermediate or minimum phase.
πΈ s
This changes the resampling bandwidth from the default 95% (based on the 3dB point) to 99%.
β E
Exception β this avoids resampling if the output device supports the playback sample rate natively. So chill.
π₯ X
This resamples to the maximum sample rate for the output device (aka "asynchronous" resampling).
π Examples
-u vLswould use very high quality setting, linear phase filter and steep cut-off.-u hMwould specify high quality, with the minimum phase filter.-u hMXwould specify high quality, with the minimum phase filter and async upsampling to max device rate.
π§ flags π§
The second optional argument to -u lets you specify the following arguments (taken straight 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 :2would specifySOXR_ROLLOFF_NONE.
NB: In the example above the first option,<quality>, has not been specified so would default tohL. Therefore, specifying-u :2is equivalent to having specified-u hL:2.
π attenuation π
Okay so here's the tea. 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? Because there's a possibility that integer samples, once resampled, may be clipped (i.e. exceed the maximum value). π
By default, if you don't specify an attenuation value, it defaults 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, bestie. π
π Examples
-u ::6specifies to apply-6db(ie. halve the volume) prior to the resampling process.
π§ precision π§
This is the internal 'bit' precision used in the re-sampling calculations (ie. quality).
NB: HQ =20, VHQ =28.
π Examples
-u :::28specifies 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 ::::98specifies 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 :::::100specifies 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 ::::::50specifies linear phase.
π SEE ALSO π
https://wiki.lyrion.org/index.php/Squeezelitehttps://docs.picoreplayer.org/components/squeezelitehttps://lyrion.org/
And that's a wrap, gorgeous π«Ά this page came to you from the Debian Project, dated 2026-03-01, and it's literally called SQUEEZELITE(1). Go resample something iconic. Periodt. π
β¨
π¦ where this page comes from
- ubuntu stonking: squeezelite-pa 2.0.0-1577+git20260612.d0d1740-1build1 Β· GPL-3.0-or-later
- Copyright 2013-4 Chris Boot <bootc@debian.org>
- Copyright 2015-26 Ralph Irving <ralph_irving@hotmail.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms