MPD is Just Awesome

Image: The official MPD logo.
Image: The MPD logo. Basic. To the point. Just like MPD.

I really stressed over titling this article this way. "Awesome" has become another perfectly useful term to find itself tossed into the refuse pile of formerly 'cool' terms. That's so sad.

Awesome is one of the best words I can think of to describe MPD. I'm sorry, but it is.

Music Player Daemon (MPD) was born in 2003 to its developer, Max Kellermann. Nineteen years later, it's still being maintained. Not too shabby. I've used MPD for well over a decade now on multiple machines, and I feel it is my responsibility, nay, it is my honor to post a note here to sing its praises.

MPD is a command line app that runs completely in the background, invisible to the naked eye. I have seen instructions for compiling the source for Windows, but MPD is at heart a Linux app.

It has a lot of options and configuration possibilities, but it basically does one thing, and does it well. It serves up music. It does it quietly without any fanfare, consistently, reliably and flawlessly.

MPD runs as a service on the computer of your choice. I have MPD running on one of the earlier models of Raspberry Pi, an i7 machine and a really old i3 in my shop. It'll run on nearly any hardware. It needs to be able to find the music, so either you set it up on the computer that has the music on it, or you provide a way for it to get to the music. As long as it can see the music files, all is well.

MPD can output the music in a vast array of ways. Local sound card, HTTP service, and streaming to the cloud are only a few of the output options. There is just so much to know about this little daemon.

There are many ways to interface with an MPD server. There are a number of clients that work great, some are more commercial, but there are a ton of open source clients that let you get the job done. There are graphical clients and command line clients. They all work great.

Image: Cantata, a graphical mpd client.
Image: This is not MPD. This is Cantata, a graphical MPD client.

Right now I'm working on a Dell laptop running Kubuntu, and I'm listening to music played by MPD running on another computer on the other side of the room. I can control the playback and volume from my phone, this laptop, and any other computer on my network. No fuss, no muss, no cloud. If the internet disappeared tomorrow, it would have no effect on my ability to use MPD to listen to my music.

Image: npmpcpp, a graphical mpd client.
Image: This is not MPD. This is ncmpcpp, a commandline client.

MPD is pretty widely supported in programming languages. There are modules that interface with MPD for Python, PHP, C and C++, and Java. I wrote a Python script for displaying the current song playing on the MPD server in my living room. It actually displays that information on three displays in the house. It works great. Easy peasey.

Image: maximummpd, a graphical mpd client.
Image: This is not MPD. This is Maximum MPD, an Android client.

I really feel sorry for all those people who just don't get MPD. People seem happy to rely on the whims of the ether and commercial product developers. Not me. If I can have it local, that's always my preference. If I can have it FOSS, that's as good as it gets. When you depend on others to daily provide the things you want, sooner or later, well . . . you know.

I just wanted to share my joy about a faithful friend, something that's been there for me through good times and bad. A thing that just works. A thing that never lets me down. A thing like that needs cheerleaders.

Cheers, MPD! Cheers, Max Kellermann! Cheers, all you other supporting developers! You and your product are awesome.

MPD, as far as I'm concerned, is a Thing That Works!

link to home page