MPD Configuration

Table of Contents

1. Introduction

As its name indicates, the Music Player Daemon — or MPD for short — is a daemon that manages music files on a computer and plays them. It can be manipulated by various front-end applications, such as the command-line utility mpc, TUI ncmpcpp, or GUI cantata. In my case, I use mainly ncmpcpp and Emacs’ EMMS.

On my computer, MPD runs as a user daemon, as seen in my bootstrap file here.

2. Required Parameters

MPD requires a few compulsory parameters that we will see below.

Parameter name Value Comment
follow_outside_symlinks yes Whether to follow symlinks pointing outside the music directory
follow_inside_symlinks yes Whether to follow symlinks pointing inside the music directory
db_file ~/.config/mpd/database Location of MPD’s database
sticker_file ~/.config/mpd/sticker.sql Location of the sticker database (dynamic information attached to songs)
log_file ~/.config/mpd/log Location of MPD’s log file
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
db_file "~/.config/mpd/database"
sticker_file "~/.config/mpd/sticker.sql"
log_file "~/.config/mpd/log"

3. Optional Parameters

While these values are not strictly necessary, some are still useful such as music_directory: we don’t have to manually add our music to MPD each time we run it.

Parameter Value Comment
music_directory ~/Music Location of the music directory
playlist_directory ~/Music/playlists Location of MPD playlists
pid_file ~/.config/mpd/pid Location of MPD’s PID
state_file ~/.config/mpd/state File where the state of MPD is saved when killed
bind_to_address localhost Limit MPD to the localhost address
auto_update yes No need to manually update MPD’s database with mpc update
music_directory "~/Music"
playlist_directory "~/Music/playlists"
pid_file "~/.config/mpd/pid"
state_file "~/.config/mpd/state"
bind_to_address "localhost"
auto_update "yes"

4. Audio outputs

Two audio outputs will be defined. The first one sets Pulseaudio up so I can actually hear my music. Its configuration is simple, really.

audio_output {
  type  "pulse"
  name  "pulse audio"
}

Another one sets up the visualizer of ncmpcpp. It is not necessary to create this one if you don’t plan on using this feature.

audio_output {
  type "fifo"
  name "my_fifo"
  path "/tmp/mpd.fifo"
  format "44100:16:2"
}

Author: Lucien Cartier-Tilet

Email: lucien@phundrak.com

Created: 2023-05-28 Sun 14:32