How To Play Music Overview
A quick overview on how to play music with the bundled software on Snakeoil.
Forgot to finish this part of the manual. Please check back later for proper content.
So which player is the right choice?
The short answer is, try them all. In this chapter we'd briefly give you a quick background of the music software that comes bundled with Snakeoil OS 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. Please refer to each player's dedicated chapter for more details.
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 worn 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.
Now it's time to add music to your Snakeoil computer! There are two ways to play music off Snakeoil:
- From another computer (e.g. a NAS)
- From files stored on a SSD/HDD inside your Snakeoil computer
Please review the Music Library and verify you have setup the storage correctly. Skip this section and start your music client of choice if you are playing music from a NAS (option 1).
Read on if you need to copy music to your Snakeoil computer for local music playback.
For local music playback you need to setup your Snakeoil as a simple NAS in your home network. From a Windows computer, start Windows Explorer and enter your Snakeoil's machine_name or ip_address in the address text box like so:
You should see two network shares - music and playlists. Copy all your music files to the music share, this is the location where most software players (e.g. MPD, Squeezelite) will look for when searching for music content.
Network copying from other systems (e.g. Mac) will be similar.
Copying a large music library over the network will take some time. We recommend doing this copy operation using the high speed wire connection. If you have a very big music library to transfer (> 1 TB), you can cut down the copying time significantly by removing the HDD/SDD and connect it to your music source computer using a USB 3.0 dock. Once copied you can reinstall the music HDD/SDD back into the Snakeoil machine. The file system types supported by Snakeoil are XFS, EXT4 and NTFS.
Use the M3U format for your playlists as that seems to be the best supported format for the various players provided by Snakeoil. Make sure the music files in your playlist begins with /media/music/.
Copy your playlists to the playlists share folder of your Snakeoil machine and most players should pick it up automatically.
Supported File Formats
The formats differ according to the players. In general Snakeoil OS can play the music files as long as the software player can support the format. For best results, stick to the 3 biggest formats: WAV, FLAC and DSF/DSD.
Short for Music Player Daemon, MPD is a very lightweight player that can run on the slowest computer you have kept unused in the shed/storeroom.
MPD handles both music management and playback and does not require a secondary client to work. MPD is designed to run from a headless computer. In other words, you are running MPD off a computer that is not connected to a keyboard or a mouse.
You control MPD using secondary devices like your mobile phone, a tablet or another computer. This secondary device is a like your TV remote control, only better. More on this at the end of this article.
Four editions of MPD are bundled in Snakeoil OS:
- 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 older version
- v20: Old version
- v21: The latest version
Each release of MPD may impart a different sonic signature, so pick the version that sounds best to you. 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. Do not be deceived by the simplicity of MPD, it is a high quality no-frills player and is the player adopted by many high end commercial products, including Bryston, SoTM and Chord.
If you are looking for simplicity and exceptional sound quality, go with MPD. Sonic signature that can be associated with MPD includes:
- pin-point accuracy
- very detailed
- very transparent
- heart pounding attack
- exceptional attack speed
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, minute details you may never realise it's there until now.
MPD supports DoP or native DSD when playing back DSD material. Modern versions of MPD (0.20+) will auto-detect DSD compatibility if you have a native DSD DAC, try setting the hardware to "Native (PCM/DSD)" and let MPD handle the DSD detection - this will do native DSD streaming.
MPD-dsd-rt supports native DSD, refer to the dsd_native_type configuration option below on how to set this up.
You can specify the following configuration options to tweak MPD. Separate each option with a ';' (semi-colon).
Use this if you want to enable volume control in MPD (this is disabled by default).
Applies to all versions of MPD. Snakeoil disables volume control by default. The assumption is to run the Snakeoil PC through an analogue pre-amplifier. if your intention is to bypass external volume control. add the following option to use MPD's mechanism for volume control.
MPD Option Settings Comments mixer_type hardware Use the hahrdware audio volume control (if available) software Use ALSA to adjust volume control none Disable MPD volume control. (Default)
Native DSD Hack (MPD DSD-RT only)
The follow option applies to MPD DSD-RT only. It will not work on other MPD version. You also need to enable DoP in the hardware tab.
MPD Option Settings Comments dsd_native_type 0 Stream DSD music in unsigned 8 bits (DSD_U8) 2 Stream DSD music in unsigned 32 bits big endian (DSD_U32_BE) 3 Stream DSD music in unsigned 32 bits little endian (DSD_U32_LE)
Snakeoil 1.1.5 (Blind Testing) and onwards supports the Tidal plugin. Available in activated editioni for now, this configuration only works with MPD 0.21.8 and above.
MPD Option Settings Comments tidal_token [string] The Tidal application token. Since Tidal is unwilling to assign a token to MPD, this needs to be reverse-engineered from another (approved) Tidal client. tidal_username [string] Your Tidal user name tidal_passwd [string] Your Tidal password tidal_quality HI_RES Highest resolution. MQA? LOSSLESS Bit perfect? HIGH High quality lossy? LOW Low quality lossy?
Snakeoil 1.1.5 (Blind Testing) and onwards supports the Qobuz plugin. Available in activated editioni for now, this configuration only works with MPD 0.21.8 and above.
MPD Option Settings Comments qobuz_id [string] The Qobuz application id. (See Application authentication) qobuz_secret [string] The Qobuz application secret. (See User authentication) qobuz_username [string] The Qobuz user name. qobuz_passwd [string] The Qobuz password. qobuz_quality 5 For MP3 320. (See Qobuz format identifier) 6 For FLAC Lossless 7 For FLAC Hi-Res 24 bit =< 96kHz 27 for FLAC Hi-Res 24 bit >96 kHz & =< 192 kHz
On Screen Display (OSD)
Applies to Raspberry Pi only. This will enable the OLED on screen display. Refer to this thread for more information
MPD Option Settings Comments mpd_oled [none] Enable OLED OSD
MPD Client - ympd
Remote apps are a personal choice so really you have to find one that suits your workflow best.
Snakeoil OS firmware 1.0.9 onwards includes a web client call ympd. To launch ympd, go to the 'Music Players', and click the label ympd in Audio State:
This will launch a new browser tab like so:
ympd - Database Scan
If you are running MPD for the very first time, you need to run a music. This step will add all your music in your music library to the MPD database.
To start scanning, this click the "Settings" button, followed by the "Update DB" button.
Your first scan may take a long time (It takes around 20 minutes to parse my 45,000 library), so please be patient. If you quit MPD while the database is scanning you may be required to do a scan again. Note that each version of MPD has it's own database. So you will need to run a scan for every version you want to run.
ympd - browse music
Click on "Browse Database" at the top navigation bar to get to this view:
Your playlists and music library are displayed in this single view. Your music files are organised as what is called the 'folder view'. i.e. how your music file is stored in your file system will be displayed as such in this view.
Click the '+' button associated with a folder to add a folder to the queue. Click on the playlist to add its contents to the queue. Here's an example of using the browser and dive deep into one of the folders. You can navigate around your folder structure quickly by clicking one of the links as marked.
ympd - queue
Click on the "Queue" button in the navigation menu to see this view. This is more commonly known as the playlist, and here is the list of music that the MPD has played, is playing, or about to play. Unlike other MPD clients, the order of the playlist can't be changed.
ympd - dirble
Dirble is created to make internet radio modern again and is focusing on giving that good experience of finding your new favourite radio station. It is a directory listing radio stations found on the Internet.
Unfortunately because of the design of the API, you'd need to install a browser extension to disable CORS. Disabling CORS is not ideal as it allows hackers to compromise your computer using a technique called 'cross site scripting'. Eventually Dirble will provide the right headers to make this work. Until then advanced users can install a browser extension to disable CORS if they like. Note that you are doing this at your own risk.
MPD Client - Folder Art
MPD has a very low footprint, this minimal overhead means things like album cover art is not supported. To work around this limitation - cover art is supported via the Snakeoil OS Web server instead. To get this to work you need to create JPG file for each folder. Unfortunately this means your albums have to be organised in folder logic (i.e. songs from the same album has to be organised in one folder, and in this folder a JPG covert art).
The covert art file is commonly named folder.jpg (and is case sensitive). This is an example of MPDroid displaying the cover art using this method:
To set this up in MPDroid, go to Settings → Cover art settings. Tick the option 'Download local cover art' to enable two options, 'Path to music' and 'Covert filename'.
Once the checkbox is set, tap 'Path to music' and set it like so, replace [ip_address] with the the IP address of your Snakeoil machine:
And in covert 'Cover filename', set it to 'folder.jpg'. Note this name is case sensitive. Also you are free to use another name if you prefer.
Once you have make this settings, exit the settings and go back to MPDroid playback. Your cover art should start to appear.
You can use this same idea to configure other MPD clients to use the local cover art. There are more advanced MPD clients with the ability to query the Internet to download the cover art. Unfortunately querying the Internet can be hit and miss (false results). Were possible use a local cover art where possible.
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.
The Squeezelite player turns your computer into a Squeezebox clone. Allowing you to play music managed by a Logitech Media Server (LMS) on your network. Snakeoil comes with LMS pre-installed but registered users has the option of disabling the bundled LMS if they already have one running in the network (e.g. from a NAS).
LMS by default applies software volume control. The first thing you need to do (which Snakeoil can't automate) is to change the settings for all your installed players. People who rely on software volume control should ignore this step.
Disable Software Volume ControlClick LMS Web link as shown to start the client:
And you should see this screen.
The audio device added should appear in the top right corner (e.g. QLS). Click on the "Settings" button at the lower right to begin adjusting the software volume control settings.
A new web tab would pop up. Do not change the media and playlist folders as that's where all the music will be located. The other fields can be adjusted to your needs.
Click the word "player", then click the drop down box where it says "Basic" and select the item "Audio".
Make sure the selection highlighted by the ugly arrows are set as per the picture. Setting this feature is very important as it gives you a fair ground to compare this against all other players in Snakeoil. i.e. have all players output in bitperfect, then and only then can you even begin to make an assessment on which player you want to use as your primary player.
Click on the "apply" in the far bottom right to save your changes.
Playing Back DSD
With DSD materials you can choose to either play it as DoP (if your DAC supports it), or have LMS convert DSD to PCM and send the PCM bitstream to your DAC. This is an example of a audio device that don't do DSD:
If you set your audio device like the above you will need to make one more change to LMS. Go to the "advanced" tab, and click on the drop down box, and go to the "File Types" options, like so:
Scroll down the list until you see the entries DFF and DSF. Adjust the settings like so to have LMS convert DSD material into PCM.
When you changed to another DAC that supports DSD, you'd have to modify the hardware settings to enable DoP support, and then revisit this filetypes page and set DFF/DSF back like so:
Hopefully a future version of Snakeoil will automate this.
Playing music using LMS web interface
If you've just installed Snakeoil, and added your music library, give it a few minutes for LMS to scan the directories and add it to the database. Once the files are read and tagged, you can use the surprisingly useful web interface as your remote control:
LMS gives you many ways to look up your music, be it by Folder names, artists, composers and so on. Once added to the queue, the tracks will be shown to your right, refer to the first picture.
Hover your mouse over any icon to discover it's role.
Playing music via a smartphone App
There are many smartphone apps that work with LMS. I'm in the Android ecosystem, and have been using Squeezer for a while now. It gives the same functionalities as the LMS web pages, but in a smaller footprint so it's more like a remote control. Similiar apps are available on Apple too, Squeezepad seems to be a popular choice.
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 fine tune.
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
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.
XMMS is a graphical player and will be loaded in a virtual desktop. You can view this virtual desktop with a VNC client (the same way if you did the install). Refer to the VNC section of the Logging In chapter if you havn't done this before. Your VNC session will look like this:
Read the XMMS user manual on how to use this classic piece of software. Please be aware this player don't support DFF/DSF, or > 16 bit music.
Content Coming Soon
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.
HQPlayer only works on computers that suppor SSE4.2. This means you cannot run this software on typical Atom boards like the Jetway NF9C. The CPU processing required by HQPlayer far exceeds what Atoms can provide anyway.
So if you intend to use HQPlayer with Snakeoil, please use more beefy hardware, e.g. i7, or Xeons.
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.
Content Coming Soon.
Content Coming Soon.
Content Coming Soon.
Content Coming Soon.
Content Coming Soon.
Content Coming Soon
Content Coming Soon.