piCorePlayer
piCorePlayer is a software emulation of a Squeezebox network music player that runs exclusively on the Raspberry Pi.
piCorePlayer is designed as a headless music player, much like the Squeezebox Duet. Optionally, a keyboard and monitor or touch screen can be added if desired.
piCorePlayer uses piCore Linux, a very small embedded Linux distribution that runs in RAM. After the initial setup, it only reads the SD card. This gives you a very robust system that, like most embedded systems, is very unlikely to corrupt your SD card. This enables you can simply cut the power without the need of a complex shutdown procedure. For exception—see Warning below.
Squeezelite
Squeezelite is a small headless Squeezebox emulator for Linux using ALSA audio output (and other platforms using portaudio).
It is aimed at supporting high quality audio including USB dac based output at multiple sample rates including 44.1/48/88.2/96/176.4/192/352.8/384kHz.
- Squeezelite is always included in the piCorePlayer image.
- Originally developed and released by Adrian Smith.
- Currently maintained by Ralph Irving.
Squeezelite Help
Squeezelite v1.9.7-1237-pCP, Copyright 2012-2015 Adrian Smith, 2015-2020 Ralph Irving. See -t for license terms
Usage: squeezelite [options]
-s <server>[:<port>] Connect to specified server, otherwise uses autodiscovery to find server
-o <output device> Specify output device, default "default", - = output to stdout
-l List output devices
-a <b>:<p>:<f>:<m> Specify ALSA params to open output device, b = buffer time in ms or size in bytes, p = period count or size in bytes, f sample format (16|24|24_3|32), m = use mmap (0|1)
-a <f> Specify sample format (16|24|32) of output file when using -o - to output samples to stdout (interleaved little endian only)
-b <stream>:<output> Specify internal Stream and Output buffer sizes in Kbytes
-c <codec1>,<codec2> Restrict codecs to those specified, otherwise load all available codecs; known codecs: flac,pcm,mp3,ogg,aac,wma,alac,ops,dsd (mad,mpg for specific mp3 codec)
Codecs reported to LMS in order listed, allowing codec priority refinement.
-C <timeout> Close output device when idle after timeout seconds, default is to keep it open while player is 'on'
-d <log>=<level> Set logging level, logs: all|slimproto|stream|decode|output|ir, level: info|debug|sdebug
-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
-e <codec1>,<codec2> Explicitly exclude native support of one or more codecs; known codecs: flac,pcm,mp3,ogg,aac,wma,alac,ops,dsd (mad,mpg for specific mp3 codec)
-f <logfile> Write debug to logfile
-i [<filename>] Enable lirc remote control support (lirc config file ~/.lircrc used if filename not specified)
-m <mac addr> Set mac address, format: ab:cd:ef:12:34:56
-M <modelname> Set the squeezelite player model name sent to the server (default: SqueezeLite)
-n <name> Set the player name
-N <filename> Store player name in filename to allow server defined name changes to be shared between servers (not supported with -n)
-W Read wave and aiff format from header, ignore server parameters
-p <priority> Set real time priority of output thread (1-99)
-P <filename> Store the process id (PID) in filename
-r <rates>[:<delay>] Sample rates supported, allows output to be off when squeezelite is started; rates = <maxrate>|<minrate>-<maxrate>|<rate1>,<rate2>,<rate3>; delay = optional delay switching rates in ms
-S <Power Script> Absolute path to script to launch on power commands from LMS
-R -u [params] Resample, params = <recipe>:<flags>:<attenuation>:<precision>:<passband_end>:<stopband_start>:<phase_response>,
recipe = (v|h|m|l|q)(L|I|M)(s) [E|X], E = exception - resample only if native rate not supported, X = async - resample to max rate for device, otherwise to max sync rate
flags = num in hex,
attenuation = attenuation in dB to apply (default is -1db if not explicitly set),
precision = number of bits precision (NB. HQ = 20. VHQ = 28),
passband_end = number in percent (0dB pt. bandwidth to preserve. nyquist = 100%),
stopband_start = number in percent (Aliasing/imaging control. > passband_end),
phase_response = 0-100 (0 = minimum / 50 = linear / 100 = maximum)
-D [delay][:format] Output device supports DSD, delay = optional delay switching between PCM and DSD in ms
format = dop (default if not specified), u8, u16le, u16be, u32le or u32be.
-v Visualiser support
-O <mixer device> Specify mixer device, defaults to 'output device'
-L List volume controls for output device
-U <control> Unmute ALSA control and set to full volume (not supported with -V)
-V <control> Use ALSA control for volume adjustment, otherwise use software volume adjustment
-X Use linear volume adjustments instead of in terms of dB (only for hardware volume control)
-z Daemonize
-Z <rate> Report rate to server in helo as the maximum sample rate we can support
-t License terms
-? Display this help text
Build options: LINUX ALSA EVENTFD RESAMPLE FFMPEG OPUS VISEXPORT IR GPIO RPI DSD SSL NO_SSLSYM
More information
Lyrion Music Server (LMS)
Lyrion Music Server (LMS) is the server software that powers networked audio players from Logitech including Squeezebox, Radio, Boom, Receiver, Transporter and various third party hardware devices that use Squeezelite or Squeezeplay.
Lyrion Music Server (LMS) is Open Source Software written in Perl and it runs on pretty much any platform that Perl runs on, including Linux, Mac OSX, Solaris and Windows.
Lyrion Music Server (LMS) was previously known as Squeezebox Server, SqueezeCentre and SlimServer.
Jivelite
Jivelite is a cut down Squeezebox control application derived from Squeezebox Jive.
- Originally developed and released by Adrian Smith.
- Currently maintained by Ralph Irving.
piCorePlayer fully supports Jivelite on the Raspberry Pi’s Official 7" Touch Display.
Installation
Jivelite can be installed on piCorePlayer via the [Tweaks] page on the piCorePlayer web interface.
Jivelite [Settings] > [piCorePlayer] screen
Raspberry Pi
The Raspberry Pi (RPi) is a small and relatively cheap single board computer (SBC). First introduced in 2012, the range has regularly expanded, resulting in many models and options being available. The Raspberry Pi has proven to be very successful, selling millions every year.
This success, combined with product availability and abundant support, makes the Raspberry Pi the hardware platform of choice for piCorePlayer (pCP).
piCore
piCore is the Raspberry Pi port of Tiny Core Linux developed by Team Tiny Core. It is an independent system architected by Robert Shingledecker and now developed by a small team of developers with strong community support.
Tiny Core Linux is not a traditional distribution but a toolkit to create your own customized system. It offers not only flexibility and a small footprint, but a very recent kernel and set of applications making it ideal for custom systems, appliances as well as to learn Linux, matching Raspberry Pi perfectly. It is running entirely in RAM. There is no installation in conventional terms; extensions mounted read only, after reboot the same clean system is available. Base raw SD card image with CLI version is only 21.5 Mbyte including RPi boot loader, firmware and support files.
SD card
Recommendation
- Get the smallest SD card available, depending on price.
- Invest in quality known brand SD cards from reliable suppliers.
- Standard speed SD cards are all that is really required.
- No need for industrial quality SD cards.
piCorePlayer is very small
At the time of writing, piCorePlayer’s initial image contains 2 x 64MB partitions, so the total size is 128MB. That’s very small for Linux distribution and audio player software.
Wifi
piCorePlayer’s wifi objective is to have a wifi setup that:
- will work 99% of the time.
- is tolerant of typical user typos and formatting errors.
- has a headless option, so using a monitor and keyboard is not required.
- uses psk passphrases, so passwords are not stored as plain text.
- has a manual setup option for more advanced users. This means it is theoretical possible that any valid WPA configuration is supported.
Three wifi setup methods
piCorePlayer has 3 wifi setup methods:
Raspberry Pi 7" Touch Display
Info
For the other hundreds of displays, it has been left to the community to create the configuration scripts and offer support—see Tag: display.
More information
Infrared Remote Control
piCorePlayer supports Squeezebox and JustBoom IR remote controls. For other IR remote controls, some extra work is required the create and install the configuration files.
The Linux Kernel has basic IR support for some remote controls. Additionally, there is the lirc
product.
Squeezelite has a limited number of IR actions builtin.
Jivelite uses IR remote to control cursor movements around the Jivelite screen.
Installation
IR can be installed via the [Tweaks] > “IR remote control” page via the piCorePlayer web interface.