Music Player Daemon (MPD) is a
free and
open
Open or OPEN may refer to:
Music
* Open (band), Australian pop/rock band
* The Open (band), English indie rock band
* ''Open'' (Blues Image album), 1969
* ''Open'' (Gotthard album), 1999
* ''Open'' (Cowboy Junkies album), 2001
* ''Open'' (Y ...
music
Music is generally defined as the The arts, art of arranging sound to create some combination of Musical form, form, harmony, melody, rhythm or otherwise Musical expression, expressive content. Exact definition of music, definitions of mu ...
player
server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuabl ...
program is needed. The MPD distribution includes mpc, a simple
command line
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
client.
MPD is used in proprietary audio hardware. The MPD project maintains a list of vendors, some of which
infringe the GPL.
Design
MPD simply runs in the background playing music from its
playlist
A playlist is a list of video or audio files that can be played back on a media player either sequentially or in a shuffled order. In its most general form, an audio playlist is simply a list of songs, but sometimes a loop. The term has sev ...
. 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
A flat-file database is a database stored in a file called a flat file. Records follow a uniform format, and there are no structures for indexing or recognizing relationships between records. The file is simple. A flat file can be a plain ...
to maintain the basic music file information when it is not running. Once the
daemon
Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and mythology and of later Hellenistic religion and philosophy.
The wo ...
has been started, the database is kept completely in-
memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered ...
and no
hard disk
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with mag ...
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
A Unix domain socket aka UDS or IPC socket ( inter-process communication socket) is a data communications endpoint for exchanging data between processes executing on the same host operating system. It is also referred to by its address family AF_U ...
. 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.
The
client–server model
The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate ov ...
provides several advantages over all-inclusive music players. Clients may communicate with the server remotely over an
intranet or over the
Internet
The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a ''internetworking, network of networks'' that consists ...
. 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
* Plays
Ogg Vorbis
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. Vorbis is most commonly used in conjun ...
,
FLAC
FLAC (; Free Lossless Audio Codec) is an audio coding format for lossless compression of digital audio, developed by the Xiph.Org Foundation, and is also the name of the free software project producing the FLAC tools, the reference software p ...
,
Opus
''Opus'' (pl. ''opera'') is a Latin word meaning " work". Italian equivalents are ''opera'' (singular) and ''opere'' (pl.).
Opus or OPUS may refer to:
Arts and entertainment Music
* Opus number, (abbr. Op.) specifying order of (usually) publicati ...
,
WavPack
WavPack is a free and open-source lossless audio compression format and application implementing the format. It is unique in the way that it supports hybrid audio compression alongside normal compression which is similar to how FLAC works. ...
,
MP2,
MP3
MP3 (formally MPEG-1 Audio Layer III or MPEG-2 Audio Layer III) is a coding format for digital audio developed largely by the Fraunhofer Society in Germany, with support from other digital scientists in the United States and elsewhere. Orig ...
,
MP4/
AAC
AAC may refer to:
Aviation
* Advanced Aircraft, a company from Carlsbad, California
* Alaskan Air Command, a radar network
* American Aeronautical Corporation, a company from Port Washington, New York
* American Aviation, a company from Cleveland, ...
,
MOD,
Musepack
Musepack or MPC is an open source lossy audio codec, specifically optimized for transparent compression of stereo audio at bitrates of 160–180 (manual set allows bitrates up to 320) kbit/s. It was formerly known as MPEGplus, MPEG+ or MP+. ...
,
wave files and any other files supported by
FFmpeg
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of ...
.
* Remotely control MPD over a network (
IPv4
Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. IPv4 was the first version d ...
and
IPv6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. I ...
supported).
* Plays FLAC, OggFLAC, MP3 and Ogg Vorbis HTTP
streams
A stream is a continuous body of surface water flowing within the bed and banks of a channel. Depending on its location or certain characteristics, a stream may be referred to by a variety of local or regional names. Long large streams ...
.
* Reads and caches metadata information (
ID3
ID3 is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself.
There are tw ...
: ID3v1 and ID3v2), Vorbis Comments, and MP4 Metadata.
* Metadata information can be searched.
*
Buffer support for playback (prevents skipping due to high load or network latency).
*
Gapless playback 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 (than timing-related o ...
.
*
Crossfading support.
* Seeking support.
* Save, load, and manage playlists (in
M3U format).
* Native
Zeroconf
Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require ma ...
support.
* libsamplerate and native
sample rate conversion
Sample-rate conversion, sampling-frequency conversion or resampling is the process of changing the sampling rate or sampling frequency of a discrete signal to obtain a new discrete representation of the underlying continuous signal. Application ar ...
.
* Support for
ALSA,
PulseAudio
PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris oper ...
,
OSS
OSS or Oss may refer to:
Places
* Oss, a city and municipality in the Netherlands
* Osh Airport, IATA code OSS
People with the name
* Oss (surname), a surname
Arts and entertainment
* ''O.S.S.'' (film), a 1946 World War II spy film about O ...
,
MVP,
JACK
Jack may refer to:
Places
* Jack, Alabama, US, an unincorporated community
* Jack, Missouri, US, an unincorporated community
* Jack County, Texas, a county in Texas, USA
People and fictional characters
* Jack (given name), a male given name, ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
, and
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
.
* Can be used as a source for an
Icecast
Icecast is a streaming media project released as free software maintained by the Xiph.Org Foundation. It also refers specifically to the server program which is part of the project. Icecast was created in December 1998/January 1999 by Jack M ...
stream, in Ogg Vorbis and
MP3
MP3 (formally MPEG-1 Audio Layer III or MPEG-2 Audio Layer III) is a coding format for digital audio developed largely by the Fraunhofer Society in Germany, with support from other digital scientists in the United States and elsewhere. Orig ...
. Other formats can be converted to Ogg/MP3 on the fly before output to the stream server.
* Built-in
HTTP streaming
Push technology or server push is a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull/get, where the request for the transmission of informa ...
server, 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

MPD has a variety of
front-ends which communicate with the server using a custom protocol over a
TCP connection. Clients usually implement different types of interfaces.
Console
* mpc (part of the MPD project) is a simple
command line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
to most of the server's functions.
* ncmpc (part of the MPD project) is a more fully featured
ncurses
ncurses (new curses) is a programming library providing an application programming interface (API) that allows the programmer to write text-based user interfaces (TUI) in a terminal-independent manner. It is a toolkit for developing " GUI-li ...
client similar in concept to
MOC.
* ncmpcpp is another ncurses client that clones 's functionality, but includes new features, such as a tag editor.
* Practical Music Search is another ncurses client with a
Vim
Vim means enthusiasm and vigor. It may also refer to:
* Vim (cleaning product)
* Vim Comedy Company, a movie studio
* Vim Records
* Vimentin, a protein
* "Vim", a song by Machine Head on the album ''Through the Ashes of Empires''
* Vim (text ed ...
-like interface.
* fmui is a terminal user interface created with fzf and mpc.
Web Clients
* Bragi-MPD full 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 projec
MPD.jsallowing easy creation of new clients.
* netjukebox is a web-based media jukebox for MPD, VideoLAN and Winamp/httpQ.
* O!MPD is a responsive, rich client based on PHP and MySQL
Graphical
* Ario is
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and prop ...
-based and uses
tabs in its interface.
* Cantata runs on Windows, macOS and Linux, and uses
Qt 5 to manage the library or playlists, with extras like tags editor, lyrics and cover fetching from Internet, and support for
mass storage
In computing, mass storage refers to the storage of large amounts of data in a persisting and machine-readable fashion. In general, the term is used as large in relation to contemporaneous hard disk drives, but it has been used large in relati ...
devices. Cantata gained some traction from being made the standard audio player of Linux distribution
Kubuntu
Kubuntu ( ) is an official flavor of the Ubuntu operating system that uses the KDE Plasma Desktop instead of the GNOME desktop environment. As part of the Ubuntu project, Kubuntu uses the same underlying systems. Kubuntu shares the same reposi ...
in October 2017 at the expense of audio player
Amarok.
* Gimmix provides a simple interface with a very small memory footprint.
* gmpc is 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.
* 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.
* mpdlirc interfaces MPD via an
infrared
Infrared (IR), sometimes called infrared light, is electromagnetic radiation (EMR) with wavelengths longer than those of visible light. It is therefore invisible to the human eye. IR is generally understood to encompass wavelengths from aroun ...
remote control
In electronics, a remote control (also known as a remote or clicker) is an electronic device used to operate another device from a distance, usually wirelessly. In consumer electronics, a remote control can be used to operate devices such as ...
.
* Qmobilempd provides a Qt4 client especially for mobile devices like Symbian.
* Qmpdplasmoid provides a client directly embedded into the KDE desktop.
* Sonata uses GTK+ to provide a
GUI for playing files and managing playlists.
More
For a more complete list, see the Clients MPD Wiki.
Simple clients can script the program to issue commands to the server. Some clients provide an
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
or
AJAX
Ajax may refer to:
Greek mythology and tragedy
* Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea
* Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris
* ''Ajax'' (play), by the ancient Gree ...
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
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
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and ...
add-on, one as a
Xfce panel plugin, and one as a
Wii application, and one as
Windows Store applicationfor Windows 8/Windows RT.
Libraries
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
exist to interface with MPD from many
programming languages
A programming language is a system of notation for writing computer program, computer programs. Most programming languages are text-based formal languages, but they may also be visual programming language, graphical. They are a kind of computer ...
, including
C,
Python,
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
,
Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
,
Lua
Lua or LUA may refer to:
Science and technology
* Lua (programming language)
* Latvia University of Agriculture
* Last universal ancestor, in evolution
Ethnicity and language
* Lua people, of Laos
* Lawa people, of Thailand sometimes referred t ...
and
Haskell
Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
. is an
Emacs Lisp
Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs (a text editor family most commonly associated with GNU Emacs and XEmacs). It is used for implementing most of the editing functionality built into Em ...
library allowing MPD to be controlled from
Emacs
Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, ...
.
See also
* XMMS2
*
MusikCube
musikcube is a free and open-source cross-platform, terminal-based audio player software and streaming server.
Features
musikcube is based on a modular plug-in architecture, and uses plug-ins written in C++. Plug-ins provide core functionality fo ...
*
Music on Console
References
External links
*
{{Media player (application software), free
Audio player software for Linux
Audio software that uses GTK
Audio software that uses Qt
Audio software with JACK support
Client/server media players
Free audio software
Free media players
Free software programmed in C
Linux media players
Software that uses ncurses
2003 software