
It's time for better music
Access to music has long been an issue in the house, and it's been a very long time since we've had a traditional stereo to listen to music on. We've had a smattering of under-counter CD player/radios, Bluetooth speakers, headphones and earbuds coupled with tablets, phones, and iPods, and computer-connected-but-not-audiophile speakers for listening while working. I still remember the awesome sounds of my Polk 4A speakers - purchased at a US military PX in England, traveled with me through college, became part of my office stereo, but sadly left behind when I exited Netsville.
Music - both how we acquire it and how we listen to it - has changed immensely in the last 15 years. My wife still longs for the old days of flipping through CDs, playing the album you want to listen to, and reading through the cover notes. In our house, we now have a mix of content - two big cardboard moving boxes full of CDs (all ripped using iTunes to AAC, which probably gives an idea of how long ago that was done), a sizeable selection of AAC files and MP3s acquired via iTunes, Amazon, and Google Play, and streaming services.
So for the holidays this year, I set out to create a music system that was wife-friendly, sounded decent, and could play all of the music we had and expandable to what we had yet to get. As with most of my projects, I didn't want to spend a lot of money on getting it done - if I didn't mind spending the money, I would have simply purchased a Sonos system and been done with it.
It made sense, after some initial searching, so do something with a Raspberry Pi. That started the solve the cost issue, because I owned a few of them (an original B+, a 2B, and a Zero W) that weren't being used for anything specific and could be repurposed. I looked around at some different software projects and found the following: MoOde Audio, Volumio, Max2Play, Mopidy, PiMusicBox, Rune, and PiCorePlayer.
I copied over most of my music files from my iTunes library over to a new share on the Synology. I temporarily set up a new user account for each of the software projects that I wanted to test. So I tested, and here are the basic notes I made while doing the testing:
- MoOde Audio: I tried this on the Pi Zero W as my first test, pairing it to the TV's soundbar and subwoofer over Bluetooth. The web interface was a little slow on the Zero. BT plugin is free. The auto-shuffle option adds new songs to the playlist automatically to keep the music playing, which I like. It can also use Bluetooth for incoming sound (paying from a phone or tablet). Supports Squeezelite.
- Volumio: Bluetooth capable but is a manual plugin. Nice interface. Web streaming fails/errors when playing is stopped and then started again.
- Max2Play: €9.99/yr for access to premium plugins, like Bluetooth, Spotify, and read-only SD card protection. "Meh" web interface.
- Mopidy: All manual install. Spotify and Google Play Music via plugins. Control via a web browser or MPD client.
- PiMusicBox: Uses Mopidy. Spotify Premium, Google Music (All Access), or SoundCloud account for streaming. Web interface and MPD client support. It doesn't have an auto-playlist or random song option.
- Rune: Appears to be a dead project and hasn't been updated in a while. The web interface is very similar to Volumio.
- PiCorePlayer: Web interface is for managing the firmware, but not for playing music. Uses Squeezelite and requires remote apps to control the player. Logitech Media Server (LMS) software can be installed on the Pi (single click automated install) but was very slow on the Pi units that I had to test with. When I installed LMS on the Synology it was a lot faster.
In the back of my mind, as I was looking at the software, I considered some of the different installation and operation options each provided. A few of the big choices were:
- Do I want to do (or have the future ability for) multi-room audio and sync the played audio between rooms (PiCorePlayer, MoOde Audio) or would I only ever want to have the music played in a single room (Volumio, Max2Play, Rune)?
- Is a web interface OK for controlling the music player? Local control on the Pi itself (with a touchscreen)? What about apps to control it from a tablet or phone?
- Is Bluetooth support (for incoming music) helpful, or not important?
- Where do I want to store all of the music?
- Is there Apple Music support, or does it make more sense to use Spotify?
After much deliberation and a bit of testing, I settled on PiCorePlayer. It was lightweight in that I only needed a very small SD card, could run well on everything from the Zero on up, and it is set up to run in RAM and write very little to the SD card which prevents power loss data corruption. I already had LMS installed on the Synology, so I spent a little more time figuring out the various plugins (and disabling ones that I'd never use).
For testing, I had been using my phone with Squeezer installed, and it works well. Based on what I've read online from other users, I may switch to the paid app Orange Squeeze. Now that I was moving away from testing I needed a good controller. I wanted to have a device that was inexpensive, could sit in a dock (preferably) and available for anyone to walk up to, change the volume, switch tracks, pause, play, etc. I found a great article that talked about using an Amazon Fire tablet and the Fully Kiosk app. The timing was perfect, and I purchased a current-generation Amazon Fire HD 8 tablet on Black Friday for $50. I found the Amazon Fire dock on eBay for about $20.
The Fully Kiosk app isn't perfect on the Fire tablet, and I'll be emailing their support soon. Some of the issues that I have are that when I'm using an app in single app mode, once the screen dims then it won't brighten up again. The other issue is when the screen turns off (I have the screen turn off at night) and wakes again, the screen is locked. The latter is certainly a FireOS problem, and I wouldn't be surprised if the former issue is as well. For the price of the tablet and dock, I'm not complaining though.
Now to the sound part... I ordered a pair of powered bookshelf speakers and, based on the online reviews, crossed my fingers that it would be good enough for background music as well as turning it up a bit louder every once in a while. I looked around a bit but came back to the Edifier R980T speakers after they went on sale for just under $50 (after taxes). I also wanted a little better sound than what the Pi puts out through its audio jack, and decided on the HiFiBerry DAC+ along with one of their universal black plastic cases.
The sound is OK most of the time, but I ended up installing the 10-band EQ in PiCorePlayer to try and make it sound a little better. It's mostly OK, but not great. I am surprised by the bass that these little speakers can put out, and no doubt the front-port helps with that. I decided that I didn't love them enough to be the primary speakers in the living room, however, and I am currently testing another setup with a Fosi Audio TB10A class D amplifier. I acquired a pair of used Polk RT3 speakers and a used Polk powered 10" sub. I have these all set together in the basement for the time being while I do a little more testing, but overall I'm very happy with the sound quality.
I'm still working out a few details here and there. I did end the Apple Music subscription we had and started a 90-day Spotify Family trial. This means that everyone in the family can have their own playlists and music preferences and send their music to the player. It isn't casting, which is great! Instead, you open the Spotify app on your phone, select a playlist, and then select the Spotify Connect output device. Each users' app just acts as a remote control, and the music goes right from Spotify to the LMS. That means the phone can go to sleep or be turned off and the music keeps playing. The remote control Fire tablet can still pause the music and change the volume. Perfect!
Overall I'm very happy with the progress, even though it isn't complete. It meant a December with holiday music played throughout the house that sounded a whole lot better than a little Bluetooth speaker or listening on the TV. My next task is getting all of the music better organized than iTunes had it and either downloading or embedded the cover art. Stay tuned...
Equipment and software used:
- Synology DS416play with Logitech Media Server (LMS) installed.
- Raspberry Pi 2 Model B with HiFiBerry DAC+ and piCorePlayer.
- Edifier R980T speakers.
- Amazon Fire HD 8" 16GB Tablet with the Show Mode Charging Dock and Squeezer app.