Awesome Music Player Daemon (MPD) π€©πΆπΎ
The MPD ecosystem is a mechanism that allows you to remote control a central music machine using multiple independent clients.
graph TD
A(Client A) -- MPD --> S
B(Client B) -- MPD --> S
subgraph Server
S[MPD frontend] --> AB@{ shape: lean-r, label: "Audio output backend" }
S --> M[(π Music files)]
end
AB --> LS[πͺ Speaker]
Actually MPD is the name of the reference implementation of the server which is the origin of the MPD protocol.
Protocol
The MPD command protocol exchanges line-based text records between client and server over TCP. Once the client is connected to the server, they conduct a conversation until the client closes the connection. The conversation flow is always initiated by the client.
Server
Music Play Daemon (MPD)
Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.
Mopidy
Mopidy is an extensible music server written in Python. It plays music from local disk, Spotify, SoundCloud, internet radio, and more, controlled from any MPD or web client on your phone, tablet, or computer.
Clients
Web
myMPD
myMPD is a standalone and mobile friendly web mpd client with a tiny footprint and advanced features.
hympd
Simple MPD web interface
Desktop / GUI
unison (Windows)
MPD daemon client focused on shortcuts
Ymuse (Linux)
Easy, functional, and snappy client for Music Player Daemon.
swmpc (macOS, iOS)
swmpc is a fast, elegant MPD client built exclusively for macOS & iOS. A clean, native interface that feels right at home on your Apple devices.
Euphonica (Linux)
An MPD client with delusions of grandeur, made with Rust, GTK and Libadwaita.
Android
M.A.L.P.
M.A.L.P. - Android MPD Client
MPDroid
MPDroid is a MPD client for Android.
- https://github.com/hurzl/dmix
- Notice: This is a fork which is making MPDroid compile on modern android versions!
Terminal
mpc
mpc is a command-line client for the Music Player Daemon.
NCurses Music Player Client (Plus Plus)
Featureful ncurses based MPD client inspired by ncmpc
Rusty Music Player Client
A beautiful and configurable TUI client for MPD
Integrations
gPodder
gPodder is a simple, open source podcast client.
It allows you to send the podcast stream URL to an MPD server using the MPC CLI client:
mpc insert "$url"
Libraries
- C: https://github.com/MusicPlayerDaemon/libmpdclient
- Python:
- python-mpd2: https://github.com/Mic92/python-mpd2
- python-musicpd: https://gitlab.com/kaliko/python-musicpd
- Java: https://github.com/finnyb/javampd
See also this list of client libraries: https://www.musicpd.org/libs
Other software
beets
music library manager and MusicBrainz tagger
whipper
Whipper is an audio CD ripper aiming for accuracy over speed. Its features are modeled to compare with Exact Audio Copy on Windows.
Most Possible Unattended Rip (MPUR)
This project allows you to quickly rip a large collection of audio CD's only with the minimum of manual intervention: insert CD - remove CD
3rd party docs
- Arch wiki: https://wiki.archlinux.org/title/Music_Player_Daemon
- Tips and tricks: https://wiki.archlinux.org/title/Music_Player_Daemon/Tips_and_tricks
- Troubleshooting: https://wiki.archlinux.org/title/Music_Player_Daemon/Troubleshooting
Community
- Reddit: https://www.reddit.com/r/mpd
- MPD server discussion board: https://github.com/MusicPlayerDaemon/MPD/discussions
Music in general
24bit96 | USB HiFi und Hi-Res Musik
All about Hi-Res Audio with the Computer and Free High Resolution Music
Other audio related protocols
Snapcast
Snapcast is a multiroom client-server audio player, where all clients are time synchronized with the server to play perfectly synced audio. It's not a standalone player, but an extension that turns your existing audio player into a Sonos-like multiroom solution.
Subsonic
Subsonic lets you store your music on one central machine and play it from other machines, cell phones, via a web interface, or various other applications.