.TH mpd.conf 5
.SH NAME
mpd.conf \- Music Player Daemon configuration file
.SH DESCRIPTION
\fBmpd.conf\fP is the configuration file for mpd(1).  If not specified on the
command line, MPD first searches for it at \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP
then at \fB~/.mpdconf\fP then at \fB~/.mpd/mpd.conf\fP and then in
\fB/etc/mpd.conf\fP.

Lines beginning with a "#" character are comments.  All other non-empty lines
specify parameters and their values.  These lines contain the parameter name
and parameter value (surrounded by double quotes) separated by whitespace
(either tabs or spaces).  For example:

parameter "value"

The exception to this rule is the audio_output parameter, which is of the form:

audio_output {
.br
        parameter1 "value"
        parameter2 "value"
.br
}

Parameters that take a file or directory as an argument should use absolute
paths.

See \fBdocs/mpdconf.example\fP in the source tarball for an example
configuration file.

This manual is not complete, it lists only the most important options.
Please read the MPD user manual for a complete configuration guide:
<\fBhttp://www.musicpd.org/doc/user/\fP>
.SH REQUIRED PARAMETERS
.TP
.B db_file <file>
This specifies where the db file will be stored.
.TP
.B log_file <file>
This specifies where the log file should be located.
The special value "syslog" makes MPD use the local syslog daemon.
.SH OPTIONAL PARAMETERS
.TP
.B sticker_file <file>
The location of the sticker database.  This is a database which
manages dynamic information attached to songs.
.TP
.B pid_file <file>
This specifies the file to save mpd's process ID in.
.TP
.B music_directory <directory>
This specifies the directory where music is located.
If you do not configure this, you can only play streams.
.TP
.B playlist_directory <directory>
This specifies the directory where saved playlists are stored.
If you do not configure this, you cannot save playlists.
.TP
.B state_file <file>
This specifies if a state file is used and where it is located.  The state of
mpd will be saved to this file when mpd is terminated by a TERM signal or by
the "kill" command.  When mpd is restarted, it will read the state file and
restore the state of mpd (including the playlist).
.TP
.B restore_paused <yes or no>
Put MPD into pause mode instead of starting playback after startup.
.TP
.B user <username>
This specifies the user that MPD will run as, if set.  MPD should
never run as root, and you may use this option to make MPD change its
user id after initialization.  Do not use this option if you start MPD
as an unprivileged user.
.TP
.B bind_to_address <ip address or hostname or any>
This specifies which address mpd binds to and listens on.  Multiple
bind_to_address parameters may be specified.  The default is "any", which binds
to all available addresses.

You can set a port that is different from the global port setting,
e.g. "localhost:6602".  IPv6 addresses must be enclosed in square
brackets if you want to configure a port, e.g. "[::1]:6602".

To bind to a Unix domain socket, specify an absolute path or a path starting
with a tilde (~).  For a system-wide MPD, we suggest the path
"\fB/var/run/mpd/socket\fP".
.TP
.B port <port>
This specifies the port that mpd listens on.  The default is 6600.
.TP
.B log_level <default, secure, or verbose>
This specifies how verbose logs are.  "default" is minimal logging, "secure"
reports from what address a connection is opened, and when it is closed, and
"verbose" records excessive amounts of information for debugging purposes.  The
default is "default".
.TP
.B follow_outside_symlinks <yes or no>
Control if MPD will follow symbolic links pointing outside the music dir.
You must recreate the database after changing this option.
The default is "yes".
.TP
.B follow_inside_symlinks <yes or no>
Control if MPD will follow symbolic links pointing inside the music dir,
potentially adding duplicates to the database.
You must recreate the database after changing this option.
The default is "yes".
.TP
.B zeroconf_enabled <yes or no>
If yes, and MPD has been compiled with support for Avahi or Bonjour, service
information will be published with Zeroconf.  The default is yes.
.TP
.B zeroconf_name <name>
If Zeroconf is enabled, this is the service name to publish.  This name should
be unique to your local network, but name collisions will be properly dealt
with.  The default is "Music Player".
.TP
.B password <password@permissions>
This specifies a password for access to mpd.  The format is
"password@permissions" where permissions is a comma delimited list composed
of "read", "add", "control", and/or "admin".  "read" allows for reading of the
database, displaying the current playlist, and current status of mpd.  "add"
allows for adding songs and loading playlists.  "control" allows for all other
player and playlist manipulations.  "admin" allows the db to be updated and for
the client to kill mpd.  An example value is "somePassword@read,add".  Multiple
password parameters may be specified.
.TP
.B default_permissions <permissions>
This specifies the permissions of a client that has not been authenticated
using a password.  The format of permissions is specified in the description of
the "password" config parameter.  If no passwords are specified, the default is
"read,add,control,admin", otherwise it is "" (no permissions).
.TP
.B audio_output
See \fBDESCRIPTION\fP and the various \fBAUDIO OUTPUT PARAMETERS\fP sections
for the format of this parameter.  Multiple audio_output sections may be
specified.  If no audio_output section is specified, then MPD will scan for a
usable audio output.
.TP
.B replaygain <off or album or track or auto>
If specified, mpd will adjust the volume of songs played using ReplayGain tags
(see <\fBhttp://www.replaygain.org/\fP>).  Setting this to "album" will adjust
volume using the album's ReplayGain tags, while setting it to "track" will
adjust it using the track ReplayGain tags.  "auto" uses the track ReplayGain
tags if random play is activated otherwise the album ReplayGain tags. Currently
only FLAC, Ogg Vorbis, Musepack, and MP3 (through ID3v2 ReplayGain tags, not
APEv2) are supported.
.TP
.B replaygain_preamp <\-15 to 15>
This is the gain (in dB) applied to songs with ReplayGain tags.
.TP
.B volume_normalization <yes or no>
If yes, mpd will normalize the volume of songs as they play.  The default is no.
.TP
.B audio_buffer_size <size in KiB>
This specifies the size of the audio buffer in kibibytes.  The default is 4096,
large enough for nearly 12 seconds of CD-quality audio.
.TP
.B buffer_before_play <0-100%>
This specifies how much of the audio buffer should be filled before playing a
song.  Try increasing this if you hear skipping when manually changing songs.
The default is 10%, a little over 1 second of CD-quality audio with the default
buffer size.
.TP
.B http_proxy_host <hostname>
This setting is deprecated.  Use the "proxy" setting in the "curl"
input block.  See MPD user manual for details.
.TP
.B connection_timeout <seconds>
If a client does not send any new data in this time period, the connection is
closed.  The default is 60.
.TP
.B max_connections <number>
This specifies the maximum number of clients that can be connected to mpd.  The
default is 5.
.TP
.B max_playlist_length <number>
This specifies the maximum number of songs that can be in the playlist.  The
default is 16384.
.TP
.B max_command_list_size <size in KiB>
This specifies the maximum size a command list can be.  The default is 2048.
.TP
.B max_output_buffer_size <size in KiB>
This specifies the maximum size of the output buffer to a client.  The default
is 8192.
.TP
.B filesystem_charset <charset>
This specifies the character set used for the filesystem.  A list of supported
character sets can be obtained by running "iconv \-l".  The default is
determined from the locale when the db was originally created.
.TP
.B id3v1_encoding <charset>
This specifies the character set which ID3v1 tags are encoded in.  A list of
supported character sets can be obtained by running "iconv \-l".  The default is
to let libid3tag convert them (from ISO-8859-1, as the standard specifies) and
do no additional conversion.
.TP
.B gapless_mp3_playback <yes or no>
This specifies whether to support gapless playback of MP3s which have the
necessary headers.  Useful if your MP3s have headers with incorrect
information.  If you have such MP3s, it is highly recommended that you fix them
using vbrfix (available from <http://www.willwap.co.uk/Programs/vbrfix.php>)
instead of disabling gapless MP3 playback.  The default is to support gapless
MP3 playback.
.TP
.B save_absolute_paths_in_playlists <yes or no>
This specifies whether relative or absolute paths for song filenames are used
when saving playlists.  The default is "no".
.TP
.B metadata_to_use <tags>
This specifies the tag types that will be scanned for and made available to
clients.  Note that you must recreate (not update) your database for changes to
this parameter to take effect.  Possible values are artist, album, title,
track, name, genre, date, composer, performer, comment, disc,
musicbrainz_artistid, musicbrainz_albumid, musicbrainz_albumartistid,
musicbrainz_trackid.  Multiple tags may be specified as a comma separated list.
An example value is "artist,album,title,track".  The special value "none" may
be used alone to disable all metadata.  The default is to use all known tag
types except for comments and those starting with "musicbrainz".
.TP
.B auto_update <yes or no>
This specifies the whether to support automatic update of music database when
files are changed in music_directory. The default is to disable autoupdate
of database.
.TP
.B auto_update_depth <N>
Limit the depth of the directories being watched, 0 means only watch
the music directory itself.  There is no limit by default.
.TP
.B despotify_user <name>
This specifies the user to use when logging in to Spotify using the despotify plugins.
.TP
.B despotify_password <name>
This specifies the password to use when logging in to Spotify using the despotify plugins.
.TP
.B despotify_high_bitrate <yes or no>
This specifies if the requested bitrate for Spotify should be high or not. Higher sounds
better but requires more processing and higher bandwidth. Default is yes.
.TP
.SH REQUIRED AUDIO OUTPUT PARAMETERS
.TP
.B type <type>
This specifies the audio output type.  See the list of supported outputs in mpd
\-\-version for possible values.
.TP
.B name <name>
This specifies a unique name for the audio output.
.SH OPTIONAL AUDIO OUTPUT PARAMETERS
.TP
.B format <sample_rate:bits:channels>
This specifies the sample rate, bits per sample, and number of channels of
audio that is sent to the audio output device.  See documentation for the
\fBaudio_output_format\fP parameter for more details.  The default is to use
whatever audio format is passed to the audio output.
Any of the three attributes may be an asterisk to specify that this
attribute should not be enforced
.TP
.B replay_gain_handler <software, mixer or none>
Specifies how replay gain is applied.  The default is "software",
which uses an internal software volume control.  "mixer" uses the
configured (hardware) mixer control.  "none" disables replay gain on
this audio output.
.SH OPTIONAL ALSA OUTPUT PARAMETERS
.TP
.B device <dev>
This specifies the device to use for audio output.  The default is "default".
.TP
.B mixer_type <hardware, software or none>
Specifies which mixer should be used for this audio output: the
hardware mixer (available for ALSA, OSS and PulseAudio), the software
mixer or no mixer ("none").  By default, the hardware mixer is used
for devices which support it, and none for the others.
.TP
.B mixer_device <mixer dev>
This specifies which mixer to use.  The default is "default".  To use
the second sound card in a system, use "hw:1".
.TP
.B mixer_control <mixer ctrl>
This specifies which mixer control to use (sometimes referred to as
the "device").  The default is "PCM".  Use "amixer scontrols" to see
the list of possible controls.
.TP
.B mixer_index <mixer index>
A number identifying the index of the named mixer control.  This is
probably only useful if your alsa device has more than one
identically\-named mixer control.  The default is "0".  Use "amixer
scontrols" to see the list of controls with their indexes.
.TP
.B use_mmap <yes or no>
Setting this allows you to use memory-mapped I/O.  Certain hardware setups may
benefit from this, but most do not.  Most users do not need to set this.  The
default is to not use memory-mapped I/O.
.TP
.B auto_resample <yes or no>
Setting this to "no" disables ALSA's software resampling, if the
hardware does not support a specific sample rate.  This lets MPD do
the resampling.  "yes" is the default and allows ALSA to resample.
.TP
.B auto_channels <yes or no>
Setting this to "no" disables ALSA's channel conversion, if the
hardware does not support a specific number of channels.  Default: "yes".
.TP
.B auto_format <yes or no>
Setting this to "no" disables ALSA's sample format conversion, if the
hardware does not support a specific sample format.  Default: "yes".
.TP
.B buffer_time <time in microseconds>
This sets the length of the hardware sample buffer in microseconds.  Increasing
it may help to reduce or eliminate skipping on certain setups.  Most users do
not need to change this.  The default is 500000 microseconds (0.5 seconds).
.TP
.B period_time <time in microseconds>
This sets the time between hardware sample transfers in microseconds.
Increasing this can reduce CPU usage while lowering it can reduce underrun
errors on bandwidth-limited devices.  Some users have reported good results
with this set to 50000, but not all devices support values this high.  Most
users do not need to change this.  The default is 256000000 / sample_rate(kHz),
or 5804 microseconds for CD-quality audio.
.SH FILES
.TP
.BI ~/.mpdconf
User configuration file.
.TP
.BI /etc/mpd.conf
Global configuration file.
.SH SEE ALSO
mpd(1), mpc(1)