3 MPD clients for an Armbian music server

3 MPD clients for an Armbian music server

Looking for a music playback client that runs in a terminal window? Here are three options to consider.

3 MPD clients for an Armbian music server
Image by : 

opensource.com

Last month, I described how I'd configured my CuBox-i4Pro computer as a Music Player Daemon (MPD) music server. Now that I've been using it for a little while, I have a brief update about my experience, including my search for an MPD client that lets me enjoy the music on my machine.

You can see the CuBox music server in this photo—it's the small square box to the lower right in the foreground. You can also see the digital-to-analog converter (or DAC, the silver dongle to its left), its hard drive (underneath it), and the vintage late-'70s power amp (the box whose cooling fins are visible in the upper left) that connects it to my kitchen speakers.

Since I installed the server software, a new kernel has been released for the Armbian distribution. Upgrading to this kernel immediately fouled up MPD's ability to play music—oh no! But some detective work uncovered the reason why... It turns out that the new kernel supports the HDMI interface under Advanced Linux Sound Architecture (ALSA), so my device numbering in the MPD configuration file no longer referenced my DAC!

I decided that this was a good moment to use the more specific output available from aplay -L, which informed me that the device is called hw:CARD=Schiit,DEV=0. You can see the new output stanza in my /etc/mpd.conf file in the screenshot below:

I also discovered that I had failed to tell MPD to bind to the IP address of the server, so I changed that line:

And, great news—the music server is working the way I had hoped. The only thing I was missing was a good MPD client to control it.

What I needed in a client

The server isn't running any kind of graphical user interface, so the only clients I can run directly on the server are ones that don't depend on a GUI. Perhaps surprisingly, there are quite a few MPD clients that run in a terminal window. I briefly described mpc in the previous article, as I used it to test that MPD was working. While mpc's functionality is quite complete, it's perhaps less well-suited for day-to-day music browsing and tag editing.

To perfect my audiophile setup, I tried out three other clients: ncmpcpp, Sonata, and GMPC. Here's what I learned.

Ncmpcpp

NCurses Music Player Client Plus Plus (ncmpcpp) provides a richer client experience than mpc. It uses the ncurses programming library to provide a full-screen, terminal-based music browser, and in general, its user interface is command-character driven, somewhat reminiscent of the vi text editor.

4-ncmpcpp.png

Ncmpcpp screenshot

The ncmpcpp client in "viewing the current playlist" mode.

The Arch Linux Wiki provides a good explanation of ncmpcpp's configuration and use. It is a full-featured playback client, providing great browsing capabilities and a reasonable tag editor. My only complaint is the F1 function key is used as the help key, since F1 is already spoken for by some terminal applications. While I don't expect to use this client a great deal, it's nice to have it there just in case.

Sonata

I've tried several GUI-based MPD clients over the years and the one I keep coming back to is Sonata. I think that's because it seems like a pretty straightforward extension of MPD to the desktop. That is, I feel it is designed more around what MPD offers, rather than taking some other design and trying to fit it to MPD's peculiarities.

5-sonata.png

Sonata screenshot

Sonata playing a track from an album.

Note that you can see the album cover, basic information about the track and the album (for example, track title, performing artist, album name, date, etc.), and a brief summary of the other tracks on the album.

Sonata tries to find lyrics, but I find the hit ratio isn't great, perhaps because I often curate the title, artist, etc., when online lookups don't give the correct info.

6-sonata_albumview.png

Sonata screenshot

Sonata also provides a decent album view.

Some other good things Sonata does: permits definition of streams and playlists; controls volume and crossfading (if your DAC supports that and MPD is so configured); uses profiles so you can control more than one player; looks up remote cover art and allows you to redefine art; plays a playlist in random order; provides album, artist, genre, and filesystem views of the music library; and scrobbles.

My Sonata wish-list is short: I'd like to be able to sort albums differently, say by composer, then album artist, then artist, then album; I'd like recording level meters; and I'd like to have the option of the music server serving cover art as well.

And one last minor gripe: Sonata wants to build a hidden directory of cover art, but it seems to have problems. First, it uses a hyphen as a separator between artist and album name. Second, Sonata's cache sometimes gets filled up with multiple versions of cover art definitions for the same album, which seems to confuse its ability to show an album cover in album view.

But all in all, it's a very good, simple MPD music client.

GMPC

It's been awhile since I looked at Gnome Music Player Client (GMPC), and I'm not really sure why. 

7-gmpc.png

GMPC screenshot

GMPC album view

GMPC provides a little bit more information than Sonata—for example, the file format, word length, and sample rate. It also shows a list of other albums in my music library by the same artist. I'm not sure why there are two copies of the album cover. (I guess it's time to read the documentation.)

After having played around with GMPC, I think this is what encapsulates the difference between GMPC and Sonata—GMPC has considerably more options. For example, it's possible to define tag browsers; for example I defined an "album artist—album" tag browser. 

8-gmpc_tagbrowser.png

GMPC screenshot

Using a custom tag browser in GMPC.

You can see that I've selected Amadou & Miriam, and the browser is showing me the albums (below) and the songs (to the right) by that album artist in my library. And in the left panel, you can see that I've also defined an "album browser" that wasn't there in the previous image.

I haven't fully explored the options with respect to album covers, but it seems that GMPC's default is to get the cover art from Last.fm. I'm not sure whether this is a good idea or not.

Clearly, GMPC bears more investigation, but I like what I see so far.

And the music...

Here are three quick recommendations for my fellow music lovers.

If you like Tangerine Dream, and you haven't heard Live In America 1992, have a listen to this outrageous version of "Purple Haze." The rest of the album is interesting as well. I purchased my copy from 7digital, a good Linux-friendly site (no download-ware). Unfortunately, it was missing one track, and, last I checked, 7digital had pulled the album off the site.

Canned Heat's Boogie with Canned Heat has long been one of my favorites, and when I saw it had been remastered and rereleased in high resolution, I had to get it at 7digital. (The sound quality on the CD version I have is really poor—one of those early analog-to-digital transfers done wrong.)

Finally, I've had a soft spot for The Fabulous Thunderbirds for quite some time, and their latest album, Strong Like That, really cooks. Check out "I Know I'm Losin' You Here."

What else should I try?

I know there are many other MPD clients I could try, including some for the Android ecosystem. As always, I appreciate recommendations!

About the author

Chris Hermansen - Engaged in computing since graduating from the University of British Columbia in 1978, I have been a full-time Linux user since 2005 and a full-time Solaris, SunOS and UNIX System V user before that. On the technical side of things, I have spent a great deal of my career doing data analysis; especially spatial data analysis. I have a substantial amount of programming experience in relation to data analysis, using awk, Python, PostgreSQL, PostGIS and lately Groovy. I have also built a few