Music Player Daemon
Encyclopedia
Music Player Daemon
Daemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

(MPD) is a music
Music
Music is an art form whose medium is sound and silence. Its common elements are pitch , rhythm , dynamics, and the sonic qualities of timbre and texture...

 player server.

Design

MPD simply runs in the background playing music from its playlist
Playlist
In its most general form, a playlist is simply a list of songs. They can be played in sequential or shuffled order. The term has several specialized meanings in the realms of radio broadcasting and personal computers.-In radio:...

. 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 serve a similar role.

MPD uses a flat file database
Flat file database
A flat file database describes any of various means to encode a database model as a single file .- Overview :...

 to maintain the basic music file information when it is not running. Once the daemon is started, the database is kept completely in-memory and no hard disk
Hard disk
A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...

 access is necessary to look up or search for local audio files. Usually, music files must be below the music root directory
Root directory
In computer file systems, the root directory is the first or top-most directory in a hierarchy. It can be likened to the root of a tree — the starting point where all branches originate.-Metaphor:...

 and are only added to the database when the update command is sent to the server. Playback of arbitrary files is only allowed for local clients which are connected to the server via Unix Domain Sockets. 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 architecture provides several advantages over all-inclusive music players. Clients may communicate with the server remotely over an intranet
Intranet
An intranet is a computer network that uses Internet Protocol technology to securely share any part of an organization's information or network operating system within that organization. The term is used in contrast to internet, a network between organizations, and instead refers to a network...

 or over the Internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

. The server can be a headless computer located anywhere on the network. Music playback can continue seamlessly when not using X
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 or restarting X
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

. 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, even running simultaneously remotely or under different user accounts.

Features

  • Plays Ogg Vorbis, FLAC
    FLAC
    FLAC is a codec which allows digital audio to be losslessly compressed such that file size is reduced without any information being lost...

    , WavPack
    WavPack
    WavPack is a free, open source lossless audio compression format developed by David Bryant.-Features:WavPack compression can compress 8-, 16-, 24-, and 32-bit fixed-point, and 32-bit floating point audio files in the .WAV file format. It also supports surround sound streams and high frequency...

    , MP2
    MPEG-1 Audio Layer II
    MPEG-1 Audio Layer II or MPEG-2 Audio Layer II is a lossy audio compression format defined by ISO/IEC 11172-3 alongside MPEG-1 Audio Layer I and MPEG-1 Audio Layer III...

    , MP3
    MP3
    MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is a patented digital audio encoding format using a form of lossy data compression...

    , MP4
    MPEG-4 Part 14
    MPEG-4 Part 14 or MP4 is a multimedia container format standard specified as a part of MPEG-4. It is most commonly used to store digital video and digital audio streams, especially those defined by MPEG, but can also be used to store other data such as subtitles and still images...

    /AAC
    Advanced Audio Coding
    Advanced Audio Coding is a standardized, lossy compression and encoding scheme for digital audio. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at similar bit rates....

    , MOD
    MOD (file format)
    MOD is a computer file format used primarily to represent music, and was the first module file format. MOD files use the “.MOD” file extension, except on the Amiga where the original trackers instead use a “mod.” prefix scheme, e.g. “mod.echoing”...

    , Musepack
    Musepack
    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...

    , wav
    WAV
    Waveform Audio File Format , is a Microsoft and IBM audio file format standard for storing an audio bitstream on PCs...

    e files and any other files supported by FFmpeg
    FFmpeg
    FFmpeg is a free software project that produces libraries and programs for handling multimedia data. The most notable parts of FFmpeg are libavcodec, an audio/video codec library used by several other projects, libavformat, an audio/video container mux and demux library, and the ffmpeg command line...

    .
  • Remotely control MPD over a network (IPv4
    IPv4
    Internet Protocol version 4 is the fourth revision in the development of the Internet Protocol and the first version of the protocol to be widely deployed. Together with IPv6, it is at the core of standards-based internetworking methods of the Internet...

     and IPv6
    IPv6
    Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...

     supported).
  • Play FLAC, OggFLAC, MP3 and Ogg Vorbis HTTP streams
    Streaming media
    Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a streaming provider.The term "presented" is used in this article in a general sense that includes audio or video playback. The name refers to the delivery method of the medium rather...

    .
  • Reads and caches metadata information (ID3
    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....

    : ID3v1 and ID3v2), Vorbis Comments, and MP4 Metadata.
  • Metadata information can be searched.
  • Buffer
    Buffer (computer science)
    In computer science, a buffer is a region of a physical memory storage used to temporarily hold data while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device or just before it is sent to an output device...

     support for playback (prevents skipping due to high load or network latency).
  • Gapless playback
    Gapless playback
    Gapless playback is the uninterrupted playback of consecutive audio tracks without intervening silence or clicks at the point of the track change. Gapless playback is common with compact discs, gramophone records, or tapes, but is not always available with other formats that employ compressed...

    .
  • Crossfading
    Fade (audio engineering)
    In audio engineering, a fade is a gradual increase or decrease in the level of an audio signal. The term can also be used for film cinematography or theater lighting, in much the same way ....

     support.
  • Seeking support.
  • Save, load, and manage playlists (in M3U
    M3U
    M3U is a computer file format that stores multimedia playlists. It is supported by many applications.An M3U file is a plain text file that specifies the locations of one or more media files. Each line carries one specification...

     format).
  • Volume control (OSS
    Open Sound System
    The Open Sound System is an interface for making and capturing sound in Unix or Unix-like operating systems. It is based on standard Unix devices...

    , ALSA, Pulseaudio
    PulseAudio
    PulseAudio is a cross-platform, networked sound server commonly used on the Linux-based and FreeBSD operating systems.PulseAudio runs under Microsoft Windows, Mac OS X, and POSIX-compliant platforms, such as Linux and FreeBSD...

     and software mixers).
  • Native Zeroconf
    Zeroconf
    Zero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....

     support.
  • libsamplerate and native sample rate conversion
    Sample rate conversion
    Sample rate conversion is the process of converting a signal from one sampling rate to another, while changing the information carried by the signal as little as possible...

    .
  • Native support for PulseAudio
    PulseAudio
    PulseAudio is a cross-platform, networked sound server commonly used on the Linux-based and FreeBSD operating systems.PulseAudio runs under Microsoft Windows, Mac OS X, and POSIX-compliant platforms, such as Linux and FreeBSD...

    , ALSA, OSS
    Open Sound System
    The Open Sound System is an interface for making and capturing sound in Unix or Unix-like operating systems. It is based on standard Unix devices...

    , MVP
    Hauppauge MediaMVP
    The Hauppauge MediaMVP is a network media player. It consists of a hardware unit with remote control, along with software for a Windows PC. Out of the box, it is capable of playing video and audio, displaying pictures, and "tuning in" to Internet radio stations. Alternative software is also...

    , JACK
    JACK Audio Connection Kit
    JACK is a professional sound server daemon that provides real-time, low latency connections for both audio and MIDI data between applications that implement its API...

    , Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

    , and Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

    .
  • Tested on Linux
    Linux
    Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

    , FreeBSD
    FreeBSD
    FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

    , OpenBSD
    OpenBSD
    OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...

    , NetBSD
    NetBSD
    NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

    , Solaris, Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

    , Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

     and HP-UX
    HP-UX
    HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...

    .
  • Can be used as a source for an Icecast
    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 Moffitt and Barath Raghavan to provide an open source...

     stream, in Ogg Vorbis and MP3
    MP3
    MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is a patented digital audio encoding format using a form of lossy data compression...

    . Other formats can be converted to Ogg/MP3 on the fly before output to the stream server.
  • Contains a built-in HTTP streaming 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.

Clients

MPD has a variety of front-ends which communicate with the server using a custom protocol over a TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

 connection. Clients usually implement different types of interfaces. mpc (part of the MPD project) is a simple command line interface to most of the server's functions. ncmpc is a more fully featured ncurses
Ncurses
ncurses is a programming library that provides an API which allows the programmer to write text user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator...

 client similar in concept to MOC
Music on Console
Music On Console is an ncurses-based console audio player for Linux/UNIX written by Damian Pietras. It is designed to be powerful and easy to use, with a command structure and window layout inspired by the Midnight Commander console file manager...

. ncmpcpp is another ncurses client that clones ncmpc's functionality, but includes new features, such as a tag editor. Sonata uses GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 to provide a graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 for playing files and managing playlists. GMPC also uses GTK+, but implements a different style of UI with many search options and plugin support. QMPDClient uses Qt4 and also allows playlist management, with extras like lyrics and album covers. Qmobilempd provides a QT4 client especially for mobile devices like Symbian. Qmpdplasmoid provides a client directly embedded into the KDE desktop. Ario uses tabs
Tab (GUI)
In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...

 in its interface. Gimmix provides a simple interface with a very small memory footprint. mpdlirc interfaces MPD via an infrared
Infrared
Infrared light is electromagnetic radiation with a wavelength longer than that of visible light, measured from the nominal edge of visible red light at 0.74 micrometres , and extending conventionally to 300 µm...

 remote control
Remote control
A remote control is a component of an electronics device, most commonly a television set, used for operating the television device wirelessly from a short line-of-sight distance.The remote control is usually contracted to remote...

. Simple clients can script the mpc program to issue commands to the server. Some clients run within a web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

 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, one as a XFCE
Xfce
Xfce is a free software desktop environment for Unix and other Unix-like platforms, such as Linux, Solaris, and BSD – though recent compatibility issues have arisen with regard to BSD Unix platforms...

 taskbar
Taskbar
In computing, a taskbar is a bar displayed on a full edge of a GUI desktop that is used to launch and monitor running applications. Microsoft incorporated a taskbar in Windows 95 and it has been a defining aspect of Microsoft Windows's graphical user interface ever since. Some desktop environments,...

 plugin, and even one as a Wii application. Libraries exist to interface with MPD from many programming languages, including C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

, and Lua.

Gnome Music Player Client

Gnome Music Player Client or GMPC is a GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 music player
Audio player (software)
An audio player is a kind of media player for playing back digital audio, including optical discs such as CDs, SACDs, DVD-Audio, HDCD, audio files and streaming audio....

 client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....

 for the Music Player Daemon. Despite its name, it does not depend on any GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

 libraries. It is developed by Qball Cow and released under the GPL. It uses a one window/two pane interface similar to clients such as iTunes
ITunes
iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad....

 or Exaile
Exaile
Exaile is a music player that was originally conceived to be similar in style and function to KDE's Amarok 1.4, but use the GTK+ widget toolkit rather than Qt...

 with a sidebar containing files, playlists and various search options, and a main song list which incorporates the playlist and search results. Unusually for an MPD client, it has a plugin API allowing for three varieties of plugin: Browser Extension which can integrate itself in the playlist manager, adding options to an existing browser, or completely implement a new browser; No Gui Extension which doesn't show up anywhere in the GUI. They are meant to provide extra configuration options, or to implement notification; and a Metadata Provider plugin, which can provide GMPC with cover art.

See also

  • XMMS2
    XMMS2
    XMMS2 is a new generation of the XMMS audio player. It is a new design, written from scratch, separate from the XMMS codebase...

  • Music On Console
    Music on Console
    Music On Console is an ncurses-based console audio player for Linux/UNIX written by Damian Pietras. It is designed to be powerful and easy to use, with a command structure and window layout inspired by the Midnight Commander console file manager...

  • Firefly Media Server
    Firefly Media Server
    Firefly Media Server is an open-source media server for the Roku SoundBridge and iTunes. It serves media files using Roku Server Protocol and Digital Audio Access Protocol .-Features:Its features include:...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK