Jump to content

Music Player Daemon

From Wikipedia, the free encyclopedia
Music Player Daemon
Developer(s)Max Kellermann
Initial release2003;21 years ago(2003)
Stable release
0.23.15[1] / 20 December 2023;6 months ago(20 December 2023)
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 afreeandopen sourcemusicplayerserver.It plays audio files, organizes playlists and maintains a music database. In order to interact with it, aclientprogram is needed. The MPD distribution includesmpc,a simplecommand lineclient.

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

Design[edit]

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

MPD uses aflat file databaseto maintain the basic music file information when it is not running. Once thedaemonhas been started, the database is kept completely in-memoryand nohard diskaccess 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 aUnix 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]

Theclient–server modelprovides several advantages over all-inclusive music players. Clients may communicate with the server remotely over anintranetor over theInternet.The server can be aheadless computerlocated anywhere on the network. Music playback can continue seamlessly when not usingXor 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[edit]

  • PlaysOgg Vorbis,FLAC,Opus,WavPack,MP2,MP3,MP4/AAC,MOD,Musepack,wavefiles and any other files supported byFFmpeg.
  • Remotely control MPD over a network (IPv4andIPv6supported).
  • Plays FLAC, OggFLAC, MP3 and Ogg Vorbis HTTPstreams.
  • Reads and caches metadata information (ID3:ID3v1 and ID3v2), Vorbis Comments, and MP4 Metadata.
  • Metadata information can be searched.
  • Buffersupport for playback (prevents skipping due to high load or network latency).
  • Gapless playback.
  • Crossfadingsupport.
  • Seeking support.
  • Save, load, and manage playlists (inM3Uformat).
  • NativeZeroconfsupport.
  • libsamplerate and nativesample rate conversion.
  • Support forALSA,PulseAudio,PipeWire,OSS,MVP,JACK,Windows,andmacOS.
  • Can be used as a source for anIcecaststream, in Ogg Vorbis andMP3.Other formats can be converted to Ogg/MP3 on the fly before output to the stream server.
  • Built-inHTTP streamingserver, capable of producing Ogg Vorbis and MP3 streams of a chosen quality on-the-fly.
  • Independent of a GUI. Music will continue playing whether a front-end is open or not, and will continue playing even if the X server is killed.
  • Plays music files inside compressed.zip archives.

Clients[edit]

ncmpcpp

MPD has a variety offront-endswhich communicate with the server using a custom protocol[5]over aTCPconnection. Clients usually implement different types of interfaces.

Console[edit]

  • mpc(part of the MPD project) is a simplecommand line interfaceto most of the server's functions.[6][7]
  • ncmpc(part of the MPD project) is a more fully featuredncursesclient similar in concept toMOC.[8][9]
  • ncmpcppis another ncurses client that clonesncmpc's functionality, but includes new features, such as a tag editor.[10]
  • Practical Music Searchis another ncurses client with aVim-like interface.[11]
  • fmuiis a terminal user interface created with fzf and mpc.[12]

Web Clients[edit]

  • Bragi-MPDfull featured, mobile friendly, fully client side, HTML5 web-client capable of controlling multiple instances and multiple outputs per MPD instance. Its non-UI functionality is maintained in a separate projectMPD.jsallowing easy creation of new clients.
  • netjukeboxis a web-based media jukebox for MPD, VideoLAN and Winamp/httpQ.[13]
  • O!MPDis a responsive, rich client based on PHP and MySQL

Graphical[edit]

  • ArioisGTK+-based and usestabsin its interface.[14]
  • Cantataruns on Windows, macOS and Linux, and usesQt5 to manage the library or playlists, with extras like tags editor, lyrics and cover fetching from Internet, and support formass storagedevices.[15]Cantata gained some traction from being made the standard audio player of Linux distributionKubuntuin October 2017 at the expense of audio playerAmarok.[16][circular reference]
  • Gimmixprovides a simple interface with a very small memory footprint.[17]
  • gmpcis the oldest maintained gtk+-2 (gtk+-3 development version) client, it provides many different ways of exploring the music collection and rich metadata like lyrics, covers, artist/album information, artist/album/backdrop images, similar artists and more. The client aims to be rich in features, but still lightweight enough to have constantly running on low end hardware.[18]
  • Intelligent Music Player Client(IMPC) uses GTK+ 3.0 and supports loading related information (articles, covers, images) with actually playing song and it learns to classify related content.
  • mpdlircinterfaces MPD via aninfraredremote control.[19]
  • Qmobilempdprovides a Qt4 client especially for mobile devices like Symbian.[20]
  • Qmpdplasmoidprovides a client directly embedded into the KDE desktop.[21]
  • Sonatauses GTK+ to provide aGUIfor playing files and managing playlists.[22]

Mobile[edit]

  • MPDPilotis modern, friendly MPD client for iOS.[23]
  • M.A.L.P.is a fast and easy to use MPD client for Android.[24]

More[edit]

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

Simple clients can script thempcprogram to issue commands to the server. Some clients provide anHTMLorAJAXuser interfaceand 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 aFirefoxadd-on,[26]one as aXfcepanel plugin,[27]and one as aWii application,[28]and one as aWindows Store applicationfor Windows 8/Windows RT.

Librariesexist to interface with MPD from manyprogramming languages,includingC,Python,Ruby,Perl,LuaandHaskell.[29]libmpdeeis anEmacs Lisplibrary allowing MPD to be controlled fromEmacs.[30]

See also[edit]

References[edit]

  1. ^"Release 0.23.15".20 December 2023.Retrieved19 January2024.
  2. ^"MPD 0.18 released - Music Player Daemon".
  3. ^Commercial Products running MPD,www.musicpd.org, 2018-02-13,retrieved2018-02-15
  4. ^Tag editing patches,nomius.blogspot.com, 2008-01-02,retrieved2013-03-18
  5. ^Protocol ReferenceArchived2018-10-10 at theWayback Machine– Music Player Daemon Community Wiki
  6. ^Music Player Daemon (2023-12-21),mpc,MusicPD website,retrieved2024-04-02
  7. ^Mpc,Music Player Daemon Wiki, 2013-02-28,retrieved2022-05-25
  8. ^Music Player Daemon (2023-08-04),ncmpc,MusicPD website,retrieved2024-04-02
  9. ^Client (2008-11-28),Ncmpc,Music Player Daemon Wiki,retrieved2022-05-25
  10. ^ncmpcpp MPD client,ncmpcpp.rybczak.net,retrieved2013-03-18
  11. ^Practical Music Search
  12. ^fzf mpd user interface,8 May 2021
  13. ^netjukebox - the flexible media share
  14. ^Ario,Ario-player.sourceforge.net,retrieved2013-03-18
  15. ^Cantata – Qt5 Graphical MPD Client for Linux, Windows, macOS, Haiku,github.com,retrieved2018-03-14
  16. ^Kubuntu#Releases
  17. ^Gimmix,archived fromthe originalon 2017-01-02,retrieved2015-09-29
  18. ^Gnome Music Player Client,gmpclient.org,retrieved2013-11-13
  19. ^MpdLIRC,Music Player Daemon Wiki, archived fromthe originalon 2013-05-13,retrieved2013-03-18
  20. ^qmobilempd – MPD (musicpd) client,retrieved2013-03-18
  21. ^mpdqml plasmoid,kde-look.org,retrieved2013-03-18
  22. ^Sonata Music Client for MPD,archived fromthe originalon 2017-01-02,retrieved2015-09-29
  23. ^MPDPilot – MPD client for iOS,retrieved2024-02-23
  24. ^M.A.L.P. – MPD client for Android,retrieved2024-02-23
  25. ^MPD Clients,musicpd.org, 2017-10-13,retrieved2017-10-13
  26. ^Music Player Minion,Music Player Daemon Wiki, 2010-02-27, archived fromthe originalon 2013-05-13,retrieved2013-03-18
  27. ^xfce4-mpc-plugin,goodies.xfce.org, 2012-06-30,retrieved2013-03-18
  28. ^WiiMPC,WiiBrew.org, 2009-08-10,retrieved2013-03-18
  29. ^MPD Client Libraries,mpd.wikia.com, 2013-03-05, archived fromthe originalon 2013-05-09,retrieved2013-03-18
  30. ^"An Emacs lisp client library for mpd".GitHub.10 February 2019.

External links[edit]