This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (May 2021) (Learn how and when to remove this template message)
Music Player Daemon
Developer(s)Max Kellermann
Initial release2003; 19 years ago (2003)
Stable release
0.23.5[1] / 1 December 2021; 53 days ago (1 December 2021)
Preview releasenone [±]
Repository
Written inC++ (since 0.18)[2]
Operating systemUnix-like (BSDs, Linux, macOS,…) Windows
TypeAudio player
LicenseGPL-2.0-or-later
Websitewww.musicpd.org

Music Player Daemon (MPD) is a free and open music player server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a client program is needed. The MPD distribution includes mpc, a simple command line client.

MPD is used in proprietary audio hardware. The MPD project maintains a list of vendors, some of which infringe the GPL.[3]

Design

MPD simply runs in the background playing music from its playlist. Client programs communicate with MPD to manipulate playback, the playlist, and the database. It is not a full-featured music player program such as Amarok, but its clients can serve such role.

MPD uses a flat file database to maintain the basic music file information when it is not running. Once the daemon has been started, the database is kept completely in-memory and no hard disk access is necessary to look up or search for local audio files. Generally, music files must be located in a sub-directory of the music directory and are only added to the database when the update command is sent to the server. Playback of arbitrary files is allowed but only for local clients which are connected to the server via a Unix Domain Socket. MPD does not provide a built-in tag editor; this functionality is handled by clients or external programs, though 3rd party patches do exist to add this functionality to the server.[4]

The client–server model provides several advantages over all-inclusive music players. Clients may communicate with the server remotely over an intranet or over the Internet. The server can be a headless computer located anywhere on the network. Music playback can continue seamlessly when not using X or restarting X. Different clients can be used for different purposes – a lightweight client left open all the time for controlling playback with a more fully featured client used for intensive database searches. Several clients can use the same database, running simultaneously, remotely or under different user accounts.

Features

Clients

ncmpcpp
ncmpcpp

MPD has a variety of front-ends which communicate with the server using a custom protocol[5] over a TCP connection. Clients usually implement different types of interfaces.

Console

Web Clients

Graphical

More

For a more complete list, see the Clients MPD Wiki.[21]

Simple clients can script the mpc program to issue commands to the server. Some clients provide an HTML or AJAX user interface and can be located on the same computer as the server, requiring only a browser be installed on the client machine. There is a client implemented as a Firefox add-on,[22] one as a Xfce panel plugin,[23] and one as a Wii application,[24] and one as a Windows Store application for Windows 8/Windows RT.

Libraries exist to interface with MPD from many programming languages, including C, Python, Ruby, Perl, Lua and Haskell.[25] libmpdee is an Emacs Lisp library allowing MPD to be controlled from Emacs.[26]

See also

References

  1. ^ https://github.com/MusicPlayerDaemon/MPD/releases/tag/v0.23.5; publication date: 1 December 2021; retrieved: 4 January 2022.
  2. ^ "MPD 0.18 released - Music Player Daemon".
  3. ^ Commercial Products running MPD, www.musicpd.org, 2018-02-13, retrieved 2018-02-15
  4. ^ Tag editing patches, nomius.blogspot.com, 2008-01-02, retrieved 2013-03-18
  5. ^ Protocol Reference – Music Player Daemon Community Wiki
  6. ^ Client:Mpc - Music Player Daemon Community Wiki, mpd.wikia.com, 2013-02-28, retrieved 2013-03-18
  7. ^ Client (2008-11-28), Client:Ncmpc - Music Player Daemon Community Wiki, mpd.wikia.com, retrieved 2013-03-18
  8. ^ ncmpcpp MPD client, ncmpcpp.rybczak.net, retrieved 2013-03-18
  9. ^ Practical Music Search
  10. ^ fzf mpd user interface, 8 May 2021
  11. ^ netjukebox - the flexible media share
  12. ^ Ario, Ario-player.sourceforge.net, retrieved 2013-03-18
  13. ^ Cantata – Qt5 Graphical MPD Client for Linux, Windows, macOS, Haiku, github.com, retrieved 2018-03-14
  14. ^ Kubuntu#Releases
  15. ^ Gimmix, archived from the original on 2017-01-02, retrieved 2015-09-29
  16. ^ Gnome Music Player Client, gmpclient.org, retrieved 2013-11-13
  17. ^ Client:MpdLIRC - Music Player Daemon Community Wiki, mpd.wikia.com, archived from the original on 2013-05-13, retrieved 2013-03-18
  18. ^ qmobilempd – MPD (musicpd) client, retrieved 2013-03-18
  19. ^ mpdqml plasmoid, kde-look.org, retrieved 2013-03-18
  20. ^ Sonata Music Client for MPD, archived from the original on 2017-01-02, retrieved 2015-09-29
  21. ^ MPD Clients, musicpd.org, 2017-10-13, retrieved 2017-10-13
  22. ^ Music Player Minion, mpd.wikia.com, 2010-02-27, archived from the original on 2013-05-13, retrieved 2013-03-18
  23. ^ xfce4-mpc-plugin, goodies.xfce.org, 2012-06-30, retrieved 2013-03-18
  24. ^ WiiMPC, WiiBrew.org, 2009-08-10, retrieved 2013-03-18
  25. ^ MPD Client Libraries, mpd.wikia.com, 2013-03-05, retrieved 2013-03-18
  26. ^ "An Emacs lisp client library for mpd". GitHub. 10 February 2019.