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 extremely useful such as music_directory so 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 is dedicated to Pulseaudio so I can actually hear my music. Its configuration is simple, really.

audio_output {
  type  "pulse"
  name  "pulse audio"

Another one is created, but this time for 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


Created: 2023-02-06 Mon 00:28