MPD

MPD (Music Player Daemon) is a flexible, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.

Installation
Install. Following minimal USE flags set is needed to be able to play most known audio file formats, and to listen to audio streams. For more features review the USE flags.

Note that a number of these flags are added by the desktop profile.

Configuration
After finished installation MPD should be working with the Gentoo shipped default configuration.

Basic configuration
Below an example of a simple configuration:

At this point MPD should be able to run as a system daemon with its own user called, which is the default setting of MPD.

Service
You can now start MPD:

To start MPD at boot time, add it your default runlevel:

PulseAudio (optional)
If MPD was build with PulseAudio support ( USE flag), add a dedicated audio_output section to your :

Built-in HTTP streaming server (optional)
If MPD was build with  USE flag, add a dedicated audio_output section to your :

Replace  with   or a specific interface IP. Bind to address  means here: stream on all local found IP interfaces. You could change it to a specific interface IP address like e.g.  then the streaming server is bound to that interface IP only.

Running as a specific user (optional)
Sometimes it may be handy to run MPD as a specific user.

Start with copying to. There are some changes that you will have to change in order to run MPD as a user, most importantly and, also make sure the various path settings are correct:

Make sure your user has read access to the directory you specify in music_directory.

Bluetooth Headset (optional)
Setup a bluetooth headset first, according to the Bluetooth Headset article.

ALSA (non-PulseAudio) setup with BlueZ 5
Put a user level file in MPD's $HOME directory, which is  by default. MPD will be able to control the volume of the headset.

To be able to switch between the Bluetooth headset and the default sound card, add these lines to the audio_output section in :

MPD might crash when switching output _while_ playing (if so, pause before switching).

If you experience some issues while trying to play AAC or other files, like:

Then add this line to your audio_output :

ALSA (non-PulseAudio) setup with BlueZ 4 (deprecated)
Put a user level file in MPD's $HOME directory, which is  by default. The following example creates an extra "Bluetooth" slider in any mixer application, and enables MPD to control the volume of the headset:

To be able to switch between the Bluetooth headset and the default sound card, add these lines to the audio_output section in :

MPD might go crazy when switching output _while_ playing, and fill its log (if so, pause before switching).

If you experience some issues while trying to play AAC or other files, like:

Then add this line to your audio_output :

Clients

 * Sorted List of MPD clients

Commandline/Console

 * — A commandline client for Music Player Daemon (media-sound/mpd) (useful for key-bindings)
 * — An ncurses client for the Music Player Daemon (MPD)
 * — An ncurses mpd client, ncmpc clone with some new features, written in C++
 * — Practical Music Search, another ncurses based mpd client with vi like keys, written in Golang
 * — An ncurses based mpd client with vi like key bindings
 * Ampc — Asynchronous Music Player Controller for Emacs
 * clerk — mpd client, based on rofi/fzf, written in Perl
 * vimus — An MPD client with vim-like key bindings, written in Haskell

Web

 * ympd — MPD Web GUI - written in C, utilizing Websockets and Bootstrap/JS

Scrobblers
Scrobblers are clients that submit to Audioscrobbler — compatible services (eg. libre.fm or last.fm)

Troubleshooting
For general troubleshooting refer to the MPD user manual troubleshooting section

External resources

 * MPD Forum
 * MPD on Sourceforge
 * MPD at Arch Wiki