Music Player Daemon

Last updated
Music Player Daemon
Developer(s) Max Kellermann
Initial release2003;21 years ago (2003)
Stable release
0.23.15 [1] / 20 December 2023;2 months ago (20 December 2023)
Preview release none [±]
Repository
Written in C++ (since 0.18) [2]
Operating system Unix-like (BSDs, Linux, macOS,…) Windows
Type Audio player
License GPL-2.0-or-later
Website www.musicpd.org

Music Player Daemon (MPD) is a free and open source 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.

Contents

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 Ncmpcpp1.png
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

Mobile

More

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

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, [24] one as a Xfce panel plugin, [25] and one as a Wii application, [26] 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. [27] libmpdee is an Emacs Lisp library allowing MPD to be controlled from Emacs. [28]

See also

Related Research Articles

<span class="mw-page-title-main">Ogg</span> Open container format maintained by the Xiph.Org Foundation

Ogg is a free, open container format maintained by the Xiph.Org Foundation. The authors of the Ogg format state that it is unrestricted by software patents and is designed to provide for efficient streaming and manipulation of high-quality digital multimedia. Its name is derived from "ogging", jargon from the computer game Netrek.

<span class="mw-page-title-main">Vorbis</span> Royalty-free lossy audio encoding format

Vorbis is a free and open-source software project headed by the Xiph.Org Foundation. The project produces an audio coding format and software reference encoder/decoder (codec) for lossy audio compression, libvorbis. Vorbis is most commonly used in conjunction with the Ogg container format and it is therefore often referred to as Ogg Vorbis.

<span class="mw-page-title-main">XMMS</span> Free and open source audio player

X Multimedia System (XMMS) is an audio player for Unix-like systems released under a free software license.

Musepack or MPC is an open source lossy audio codec, specifically optimized for transparent compression of stereo audio at bitrates of 160–180 kbit/s. It was formerly known as MPEGplus, MPEG+ or MP+.

<span class="mw-page-title-main">Amarok (software)</span> Free and open source music player

Amarok is a free and open-source music player, available for Unix-like, Windows, and macOS systems. Although Amarok is part of the KDE project, it is released independently of the central KDE Software Compilation release cycle. Amarok is released under the terms of the GPL-2.0-or-later.

<span class="mw-page-title-main">MusikCube</span>

musikcube is a free and open-source cross-platform, terminal-based audio player software and streaming server.

Gapless playback is the uninterrupted playback of consecutive audio tracks, such that relative time distances in the original audio source are preserved over track boundaries on playback. For this to be useful, other artifacts at track boundaries should not be severed either. Gapless playback is common with compact discs, gramophone records, or tapes, but is not always available with other formats that employ compressed digital audio. The absence of gapless playback is a source of annoyance to listeners of music where tracks are meant to segue into each other, such as some classical music, progressive rock, concept albums, electronic music, and live recordings with audience noise between tracks.

<span class="mw-page-title-main">Music on Console</span> Console audio player

Music On Console (MOC) is an ncurses-based console audio player for Linux/UNIX. It was originally written by Damian Pietras, and is currently maintained by John Fitzgerald. It is designed to be powerful and easy to use, with an interface inspired by the Midnight Commander console file manager. The default interface layout comprises a file list in the left pane with the playlist on the right. It is configurable with customizable key bindings, color schemes and interface layouts. MOC comes with several themes defined in text files, which can be modified to create new layouts. It supports ALSA, OSS or JACK outputs.

<span class="mw-page-title-main">Squeezebox (network music player)</span>

Squeezebox is a family of network music players. The original device was the SliMP3, introduced in 2001 by Slim Devices. It had an Ethernet interface and played MP3 music files from a media server. The first Squeezebox was released two years later and was followed by several more models. Slim Devices was acquired by Logitech in 2006.

<span class="mw-page-title-main">Songbird (software)</span> Music player

Songbird is a discontinued music player originally released in early 2006 with the stated mission "to incubate Songbird, the first Web player, to catalyze and champion a diverse, open Media Web".

<span class="mw-page-title-main">Audacious (software)</span> Free and open source audio player

Audacious is a free and open-source audio player software with a focus on low resource use, high audio quality, and support for a wide range of audio formats. It is designed primarily for use on POSIX-compatible Unix-like operating systems, with limited support for Microsoft Windows. Audacious was the default audio player in Ubuntu Studio in 2011–12, and was the default music player in Lubuntu until October 2018, when it was replaced with VLC.

cmus Console audio player

Cmus is a small, fast console audio player for Unix-like operating systems. cmus is distributed under the terms of the GPL-2.0-or-later and is operated exclusively through a text-based user interface, built with ncurses.

aTunes Open source audio player

aTunes is a free and open source audio player with MPlayer as its playback engine. aTunes supports MP3, Ogg Vorbis, FLAC and other formats. aTunes allows users to edit tags, organize music and rip audio CDs easily.

<span class="mw-page-title-main">Mpxplay</span>

Mpxplay is a 32-bit console audio player for MS-DOS and Windows. It supports a wide range of audio codecs, playlists, as well as containers for video formats. The MS-DOS version uses a 32-bit DOS extender.

The following comparison of audio players compares general and technical information for a number of software media player programs. For the purpose of this comparison, "audio players" are defined as any media player explicitly designed to play audio files, with limited or no support for video playback. Multi-media players designed for video playback, which can also play music, are included under comparison of video player software.

<span class="mw-page-title-main">MusicBee</span> Media player for Microsoft Windows

MusicBee is a freeware media player for playback and organization of audio files on Microsoft Windows, built using the BASS audio library.

<span class="mw-page-title-main">Quod Libet (software)</span> Free and open source audio player

Quod Libet is a cross-platform free and open-source audio player, tag editor and library organizer. The main design philosophy is that the user knows how they want to organize their music best; the software is therefore built to be fully customizable and extensible using regular expressions and boolean logic. Quod Libet is based on GTK and written in Python, and uses the Mutagen tagging library.

<span class="mw-page-title-main">Puddletag</span> Tag editor for Unix-like operating systems

Puddletag is a graphical audio file metadata editor ("tagger") for Unix-like operating systems.

<span class="mw-page-title-main">DeaDBeeF</span> Audio player

DeaDBeeF is an audio player software available for Windows, Linux and other Unix-like operating systems. An ad-supported Android version is available, but has not been updated since 2017. DeaDBeeF is free and open-source software, except on Android.

References

  1. "Release 0.23.15". 20 December 2023. Retrieved 19 January 2024.
  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 Archived 2018-10-10 at the Wayback Machine – Music Player Daemon Community Wiki
  6. Mpc, Music Player Daemon Wiki, 2013-02-28, retrieved 2022-05-25
  7. Client (2008-11-28), Ncmpc, Music Player Daemon Wiki, retrieved 2022-05-25
  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. MpdLIRC, Music Player Daemon Wiki, 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. MPDPilot – MPD client for iOS , retrieved 2024-02-23
  22. M.A.L.P. – MPD client for Android , retrieved 2024-02-23
  23. MPD Clients, musicpd.org, 2017-10-13, retrieved 2017-10-13
  24. Music Player Minion, Music Player Daemon Wiki, 2010-02-27, archived from the original on 2013-05-13, retrieved 2013-03-18
  25. xfce4-mpc-plugin, goodies.xfce.org, 2012-06-30, retrieved 2013-03-18
  26. WiiMPC, WiiBrew.org, 2009-08-10, retrieved 2013-03-18
  27. MPD Client Libraries, mpd.wikia.com, 2013-03-05, archived from the original on 2013-05-09, retrieved 2013-03-18
  28. "An Emacs lisp client library for mpd". GitHub . 10 February 2019.