The main reason why I bought the Raspberry Pi was to use it as a music or media player. My hardware setup is: Raspberry Pi model B, 256 MB, wired connection, HDMI goes to a device that splits the signal to VGA and optical S/PDIF audio. The VGA signal goes to a projector, and the S/PDIF goes to my receiver. I use a PC to set it up, but the Pi is otherwise headless. I use an Android phone, or occasionally an iPad, to control it. I have a large collection – 1450 albums, and they are on a harddisk connected to my Asus router. I access my files through SAMBA.
There are now quite many good solutions to use the Pi as a music player. When googling around for music server/player projects on the Pi, I find new solutions every time. Lately I have tried out many of them. That is more out of curiosity or fun than out of need, because the first programs I tried works perfectly fine. I know next to nothing about Linux, so I depend on programs that are easy to set up, or they must have good step-by-step instructions.
The first program I installed was XBMC. I have tried all three variants. All of them work fine, and they are very easy to set up. Even my SAMBA share was easy to connect – the program sees all my network shares, so I just had to click to connect it. XBMC is also the most advanced media player program you can get for the Pi. It has a host of plugins for almost everything that is media related – TV/movie channels, audio plugins for Spotify, radios, Grooveshark, etc. plus for pictures, weather and other things. It is meant primarily to connect to a TV. But it can also be used as a headless music player. I use Yatze as my Android app to control it. Yatze adds some extra features, like streaming to Chromecast or your phone. The library is quite good, as it supports “album artist” tags, plus the latest additions to the library. But it takes a while to scan the library, and usually the program crashes half way through. XBMC also supports a lot of audio codecs. So you are not stuck with just mp3 or flac. One great advantage with XBMC is that it supports multichannel ac3 or dts files that can be decoded by the receiver. So I can play back my DVD-audio 5.1 channel rips. I haven’t tried the Spotify or Grooveshark plugins. The Wimp (the music service) plugin is quite new. I wasn’t so impressed by this, but it might improve.
When I first installed XBMC (Openelec), it provided gapless playback. But then this was broken (it’s back now). That’s why I tried another solution – Squeezeplug. Squeezeplug is also quite easy to set up, but it has to be done through Putty, and the library is setup through a web interface. In addition you need an account at MySqueezebox.com. There you can add additional services like web radios, Spotify, Deezer, Wimp etc. I have a Wimp subscription. To my surprise Wimp playback will also be gapless. This is a feature you don’t have on the mobile apps, unless you have the premium subscription (at twice the price) with lossless and gapless. But that is not available on Squeezebox anyway. I also tried the Deezer plugin, but it seemed to support only the “radio” function – they decide what you should listen to. Later versions of Squeezelite support USB DACs. But I got problems with stability, and reverted back to version 6. I don’t need USB DACs anyway, since I use HDMI.
There are three more recent distributions that look promising, and offer easy setup and are “ready-to-play-out-of-the box”. They are Pi Musicbox, Volumio and RuneAudio. These projects are a bit similar. They all are controlled through a web interface rather than apps, they have support for USB DACs, and they encourage users to make DIY projects for hardware (add displays, hardware buttons etc.)
I first tried Pi Musicbox. This offers Spotify, Soundcloud, Google Music, webradio etc. The guide says to install the image, connect it through the web interface and “wait for a while”. I waited, but probably not long enough. All I got was the web interface and a “connecting to Musicbox” message. I googled a bit and saw that others had the same problem, but I couldn’t find a solution. So I gave up.
Raspify was another Pi music player project aimed at audiophiles. Now it has forked into two different projects: Volumio and RuneAudio. I first tried Volumio. I tried to connect it to my SAMBA share, but it failed. Then I plugged in a USB stick. Then it could scan my files and make a library. The library was a bit messy, and very slow to show up. But the main problem was that I couldn’t get a sound out of it.
RuneAudio, however, did as promised. It worked “out-of-the-box”, and was controlled from a nice web interface. It didn’t really have a library; I just got the folder structure from my SAMBA share. I also tried to control it from MPDroid on my phone. But that was a mess, because it didn’t support album artist tags. So the folder view was a lot tidier.
It’s early days for all these projects. Bugs will be ruled out and features will be added. So I have no idea which one will be the most attractive in the end.
One project that was recommended in this forum was a combination of Minimserver and PeteManchester Mediaplayer. This is far from being a plug-and-play project. It took me quite a while to set it up. The setup instructions are incomplete, and sometimes erroneous. So I had to google a bit to fill in the missing parts – as mentioned, I am not very familiar with Linux. But it was worth it! The Minimserver is the most advanced server solution for music, especially if you have classical music in your collection. This is because it has library support for composer, conductor and orchestra, plus you can configure how it reads other tags. It has a nice little utility program, MinimWatch, to control it from a PC. You can update it from here and do a few other things. PeteManchester Mediaplayer is also an advanced mediaplayer with many possibilities. It supports radio and SongCast, plus it has some plugins for hardware projects (add hardware buttons via GPIO, or displays). It also supports Airplay. The player can be configured through a web interface. As for controller, Kinsky is recommended. And it is needed if you want to use the built-in radio. But a much better control point is BubbleUPnP on Android. BubbleUPnP opens a host of new possibilities – too many to mention here. But they include lyrics support (needs another app), artist info via Last.FM (the official app crashed for me, so I couldn’t test it). Plus BubbleUPnP can play from cloud drives, and stream from Google Music. It stuttered for me when I tried to play flac files, but played flawlessly with MP3. Because the mediaplayer supports airplay, you can play Spotify etc. from an Apple product, if you have it. If you use BubbleUPnP on an Android phone, you can have the same through a plugin, but that requires that you root your phone. I don’t dare to do that.
Encouraged by using the great BubbleUPnP app, I also wanted to try out the BubbleUPnP server. This is not a standalone server – it needs another UPnP/DLNA server. Since my router has it’s own UPnP server software, I could try to set up the BubbleUPP server on my Pi. I found instructions to set up the server plus GMediaRenderer as player. I tried this yesterday, but it is another project that takes some time to set up for me, since the instructions I found are a bit incomplete. I have to investigate more to get automatic startup, and I haven’t had time to try to stream BubbleUPnP via internet yet. But this is one of the most attractive features of using the BubbleUPnP server. It can also transcode audio files on the fly. I’d like to test how it performs with flac files from cloud services.
The conclusion is: there are lots of music players to choose from, and most work very well. SD cards are cheap, and it takes just a minute to swap to a different system. And that is fun!