- Music Library
This page allows you to configure the music player and audio device. SnakeoilOS utilises Advanced Linux Sound Architecture (ALSA) to directly access your audio device. This approach subjectively yields the best sonic quality so far. The software that already comes preinstalled are:
- X Multimedia System (XMMS): Included in SnakeoilOS because FLAC includes a reference implementation for this player. Use this player to establish your baseline on what FLAC should sound like.
- MusicPD (MPD): Includes multiple versions - 0.17, 0.18 (with dsd-rt patches), 0.19, 0.20 and experimental. These versions of MPD may sound different, or not. Why not test them out and pick the version you like best?
- Logitech Media Server (LMS): A very popular music server for squeezeboxes
- Squeezelite Software Client: Includes v1.6.4test, v1.8, and ralph-irving. Let me know if you have any other editions you want included in SnakeoilOS.
All the software players, including the ALSA sub-system has been custom compiled for SnakeoilOS. Additional music players can be installed (e.g. HQPlayer NAA, RoonBridge, RoonServer and deadbeef) to expand the capabilities of your SnakeoilOS machine.
Note that the un-activated SnakeoilOS only support one audio device. This shouldn't be a problem as you'd only need one audio output anyway.
This panel shows the current running state of SnakeoilOS.
Music playback software is split into three categories:
- Music Server: Software that is responsible for organising and queue music. Some server software can also play music content to the audio device, others require an additional music client to do this (e.g. LMS).
- Music Client: Software that talks to a music server to play music (e.g. Squeezelite).
- Remote Control: Some has additional web based remote control (e.g. LMS or MPD). When one is detected it will be shown.
Sometimes you'd see the words "Not Applicable". This is not a problem, e.g. MPD don't require a client, and as such the field will say "Not Applicable".
Fail To Start
Sometimes a piece of software will crash. When that happens playback is stop, and you'd notice a red button in this panel. This is an example of an application crash. You can click that button to look at any error messages that may help identify the cause of the problem.
Here you'd find a list of software players - categorised into servers and clients. The "Music Clients" panel only show up if required. For example, LMS requires an additional music client to run, so when you select LMS as your music server, you'd be asked to pick a client as well from the "Music Clients" panel. You can run at most one server and optinally one client per computer. Running multiple servers and clients is not currently supported.
Some software have icons at the end of it's name. The following icon (notepad with pencil) means configuration is not handled by SnakeoilOS. With these software you have to make your configuration and changes from the software's user interface.
This icon means the software is GUI based, and you can access the GUI from a remote session called VNC. For more information on how to use VNC, please refer to the chapter Logging In.
Activated editions of the SnakeoilOS allows you to enable/disable players (A checkbox allowing you to turn software on/off). This gives you the flexibility to run a 2-PC setup - one high power machine for LMS, and one low power machine for Squeezelite (or NAA).
This panel gives you a quick overview about your audio devices. If you are find no audio playing, or if the volume is too low, you can try and click the first command "Set Volume to 100%" and see if that helps. Otherwise, you can click on any of the "Add Device" button to create an entry in the configuration panel.
Note that un-activated editions of SnakeoilOS is limited to 1 audio device only.
When you click on "Add Device", it will immediately be changed to "In use". Click on this button to stop using the device - the corresponding entry will be removed from the configuration panel.
As always, remember to click the "Save" button for these changes to take effect.
A matching entry will show in this panel every time you click on an "Add Device" button in the "ALSA Status" panel.
Here's a brief description of the fields:
- Delete button: Click the trash can button to remove the entry
- Name: The name field is the name that usually appear in your player user interface. Use a descriptive name if you are using more than 1 audio device
- Streaming Mode: Select "DSD over PCM (DoP) Support" if your audio device is a DSD DAC. Select this also if you are going to use mpd-dsd-rt and add the native_dsd_type option in the extra options box. For other DACs, select PCM mode. DSD material will be converted to PCM via software and sent to the audio card. WARNING: Do not use DoP if your audio card is not a DSD DAC as damage to your system may occur.
- Options: Here you can specify additional parameters to tweak the selected software. Refer to the "Extra Options" section later in this chapter for more information.
So which player is the right choice? The short answer is, try them all. In this section we'd briefly give you a quick background of the music software that comes bundled with SnakeoilOS and attempt to subjectively describe the sonic nature of these players.
Note the subjective assessments are unauthoritative as everything is pretty much system dependent - what sounds good for me may not sound good to you and vice versa. So just read this as a guide, and at the end of the day, make up your own mind.
Some software players are best used with a companion mobile phone or tablet. Refer to the Clients section for more details.
Server: MPD (Bundled)
Short for Music Player Daemon. This is a very lightweight player that can run on the slowest machine in your shed. The MPD daemon is responsible for both music management and playback. There are five editions of MPD included in SnakeoilOS:
- v17: A very old version of MPD
- v18-dsd-rt: MPD 0.18 with dsd-rt patches applied. This supports native DSD.
- v19: A somewhat old version of MPD
- v20: The latest release of MPD
- git: The active branch (latest versions but can be unstable).
There was a time when v17 and v19 used to sound very different, but I think the gap has closed in the last few months. v17 is included for historical reference (as a comparison), use v20 if you can. Don't be deceived by the looks of MPD, it is a high quality no-frills player with exceptional attack speed.
If you are looking for simplicity and exceptional sound quality, go with MPD.
Words associated with MPD:
- pin-point accuracy
- very detailed
- very transparent
- heart pounding attack.
To put in another way - MPD delivers absolute precision when playing back. MPD will tell you a lot about the recording itself. If your audio system is up to it, MPD will turn you into a super bat! You'd pick up the tiniest noise in the recording, details you have never heard before, and didn't realise it's there until now.
Refer to the How To Play Music section on how to play music with MPD.
Server: LMS Client: Squeeezelite (Bundled)
While MPD reveals a lot about the recordings, LMS/Squeezelite seems to reveal a lot about the music. Squeezelite is a piece of computer software that converts your computer into a Squeezebox clone. These are clients and it communicates with Logitech Media Server (LMS) to cue and play music. LMS is responsible for managing your music library while squeezelite is responsible for playback. All your requests are sent to this central LMS, and from there you can control the behaviour of your squeeze players - whether they will all be sync'ed to play the same playlist, or you can setup different tracks for different players (effectively a multi-zone setup). The beauty of LMS is the big list of plugins available - e.g. Spotify.
Words I'd associate with Squeezelite+LMS combo:
This is a good combination to go with when you simply want to unwind at the end of the day, chill out and relax. More information on how to play music with squeeze is in the How To Play Music chapter.
Server: XMMS (Bundled)
Short for X MultiMedia System. XMMS really needs no introduction for people who grew up listening to computer audio with WinAmp. People who used WinAmp before will have no trouble with XMMS. This player is included in Snakeoil because libFLAC includes a reference FLAC decoder for it, and this player to me sounds pretty good. For 16 bit FLAC material anyway.
This is really an old player now and don't work with 24 bit FLAC! Use this player as the reference player to get an idea what FLAC should be.
Refer to the relevant section of How To Play Music to get a quick overview on how to use XMMS.
Server: RoonBridge (Optional)
RoonBridge works somewhat differently from other Linux software. The RoonBridge is an installation script which then downloads the actual RoonBridge software from the web site. This means your Snakeoil computer needs to be connected to the Internet else the installation will fail.
Please follow this walkthough to install RoonBridge on your computer.
Player: HQPlayer NAA (Optional)
This player will only show up when you install HQPlayer NAA manually. Go to Signalyst's website to download a copy of NAA. You can either install this manually from the shell, or via the Snakeoil tab.
Make sure you download the binary that matches your architecture (e.g. Download the i386 deb file if you are using 32 bit of Snakeoil OS), and also, the deb package for Trusty.
This forum thread (link) is a step by step guide on how to download and install the software. Please post in that thread if you have any issues.
Server: Amarok (Optional)
Server: Clementine (Optional)
Server: deadbeef (Optional)
Server: qmmp (Optional)
Server: upmpdcli (Optional)
Some players have a text box beside it, e.g. Enter extra mpd-dsd-rt options here. This means the player support extra configuration options you can finetune.
Extra Options for Squeezelite
You can put almost all the squeezelite command line in here, except -l, -z, -m, -n and -o. You can use this to really customise Squeezelite, tweak the buffers and so on. Here is the command line explanations:
-s <server>[:<port>] Connect to specified server, otherwise uses autodiscovery to find server
-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,dsd (mad,mpg for specific mp3 codec)
-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, level: info|debug|sdebug
-e <codec1>,<codec2> Explicitly exclude native support of one or more codecs; known codecs: flac,pcm,mp3,ogg,aac,dsd (mad,mpg for specific mp3 codec)
-f <logfile> Write debug to logfile
-M <modelname> Set the squeezelite player model name sent to the server (default: SqueezeLite)
-N <filename> Store player name in filename to allow server defined name changes to be shared between servers (not supported with -n)
-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
-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)
-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
Extra Options For MPD
mixer_type <hardware, software or none>
Separate each option with a ';' (semi-colon).
Extra Options For MPD DSD-RT
In addition to the above, dsd-rt supports an extra option - dsd_native_type "x", valid options are:
- dsd_native_type "0"
- dsd_native_type "2"
- dsd_native_type "3"
Where "0" means the stream is sent as unsigned 8 bits (DSD_U8), "2" means unsigned 32 bits big endian (DSD_U32_BE) and "3" unsigned 32 bits little endian (DSD_U32_LE). Please enter as listed above else mpd-dsd-rt will not start properly. You also need to enable DoP in the hardware tab (it will not enable DoP, rather it tells the scripts you want DSD).
Extra Options for upmpdcli
Opinion: MPD vs Squeezelite
Here are just some general observations based on my setup after using MPD for several years (and a few months with Squeezelite). These are personal observations and nothing more.
MPD is the clear leader in absolute resolution. You can almost resolve the shape and form of any instrument/vocal down to multiple single infinitely small points in a 3D space. However, at times the presentation can be very stressful - certain pieces of music can really tense you up and keep you on the edge of the seat. At times I actually felt exhausted and emotionally drained after a session, in a worse state compared to what I begin with.
Squeezelite+LMS is different, so far this combo always makes me feel fully recharged after a session, making me feel like I am ready to tackle on the next problem that comes my way. I never felt weared out with this yet. Perhaps it's because of the more natural timbre? The cost however is the loss of that dead-accurate pin point resolution MPD can give. While you can still "break" the sound stage apart, it is just not to the same infinitely focused level MPD can give. The difference is I never felt stressed out and worse for wear like I do with MPD. With that "lack of focus" issue, it seems WAV seems to present that problem less when compared to FLAC. So you can try that if you want (I'm still testing this myself as of this writing).
Ultimately which player you decide to use as your primary player is up to you, there are too many variables to consider to agree on a consensus. Personally I am mystified by the crash I can get after a high from MPD, something Squeezelite+LMS cannot do to me. This may suggest MPD is better, however one can also argue against the verdict of better because it involves a emotional crash.
At the end of the day, find your way to enjoy your music.