MPD
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.
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"
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"
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"
}