Linux has a lot of great desktop music players like Cementine, Amarok, and Rhythm Box. MPD (Music Player Deamon) is a music player that can be controlled remotely or from the command line. MPD is not a media streamer. It is only for playback on the server’s hardware. MPD can be configured per user or system-wide. We will set this up as a stand-alone music system with MPD running as a system-wide service. A Raspberry Pi with USB-attached storage is perfect for this.
Prepare the Raspberry Pi
Make a home for your music collection:
Give ownership to your ssh user so you can move your music here:
Mount your USB storage at your new location and copy your music files to it. I like rsync:
I find it useful to store music as ‘/var/lib/mpd/music/AlbumArtist/Album/Track_number – Track_name,’ but this structure isn’t imperative since MPD will use your files’ tags to group artists, albums, and genres. Be sure your collection is well tagged using a tool like beets, EasyTag, or Picard. All music does need to be below one common directory. We will stick with ‘/var/lib/mpd/music.’
Install MPD
Log into the Pi and run:
$ sudo apt-get install alsa-utils
MPD will run as user ‘mpd.’ Adjust permissions so MPD can access your music files. MPD needs execute permissions for the directories in our library and it must have write permissions for the database and playlist files. It’s easiest to do:
Configuration
Next we will configure mpd:
-----------------------------------
music_directory “/var/lib/mpd/music”
db_file “/var/lib/mpd/.mpd.db
playlist_directory “/var/lib/mpd/.playlists”
log_file “var/log/mpd/mpd.log”
pid_file “/run/mpd/pid”
state_file “/var/lib/mpd/.state”
sticker_file “var/lib/mpd/.sticker.sql”
user “mpd”
auto_update “yes”
port “6600”
bind_to_address “any”
audio_output {
device “hw:0.0”
}
mixer_type “software”
-----------------------------------
An example configuration is located at ‘/usr/share/doc/mpd/mpdconf.example.’
Restart MPD:
It may take a while, depending on the library’s size, for MPD to update its database. When manually updating the database use:
or
$ sudo -u mpd mpc up
If you are having trouble setting the audio output device, run the command below to get a list of your audio devices.:
Select a Client
Now, connect with any of a number of clients. You’ll be able to find MPD at your Pi’s ip address, port 6600. MAFA is a (paid) client for Android. It is polished and contains a lot of advanced features. ncmpcpp is a great client for the console written in C++. It’s very lightweight and has an extensive configuration file. Cantata is a full-featured graphical client for the linux desktop, written in Qt5.
MAFA
ncmpcpp
Cantata
Conclusion
There are plenty of artists not featured on Spotify or Tidal. If you’ve spent years collecting and ripping CDs you enjoy, MPD is a great way to experience your local collection of all your favorite artists. A Raspberry Pi is a very light, low-powered way to turn your flac and mp3 collection into a home sound-system.