An UPnP Audio Media Renderer based on MPD
upmpdcli is a UPnP Media Renderer front-end for MPD, the Music Player Daemon. It supports UPnP gapless track transitions and the OpenHome ohMedia services (including a Radio service to listen to Internet streams). With a complementary application, it also supports a Linn Songcast Receiver and Sender.
The Songcast Receiver function allows you to implement a well-synchronized multi-room system to which any audio (Spotify, etc.) playing on a Windows or Mac system can be forwarded. The upmpdcli Sender/Receiver function allows multiroom playing from Linux, including of an external input source.
upmpdcli is open-source, free and licensed under the GPL. It is written in C++ and uses the libupnp (1.6) and libmpdclient libraries. As it has few and widely distributed dependancies, it is reasonably simple to install.
The latest released version is 1.1.0. See the release notes.
The typical setup is a home network with:
- A UPnP Media Server (e.g. MinimServer, Minidlna, Mediatomb, or some commercial device),
- A UPnP Control Point (e.g. Bubble UPnP running on a tablet or phone, Linn Kinsky on a PC/MAC, or upplay for Linux).
- MPD running on some Linux device (e.g. Raspberry PI hooked up to your bedroom stereo).
- upmpdcli running on the same host. It will be automatically discovered by the UPnP control point.
As managed by upmpdcli, MPD does not access the audio files directly and its configured music directory may be empty. It fetches them from the Media Server through HTTP, using the standard curl input plugin, and does not need a local tags database (it may have one though, and remains available for normal interaction with standard MPD clients). If you want to use a native MPD client, upmpdcli is not what you want. See the alternative approaches for MPD/UPnP integration.
What's the point ? If you are running a UPnP network with multiple devices, you may prefer using a single control application (UPnP-based) for everything. MPD is a very capable and robust music-playing application, which runs well on small computers (e.g. Raspberry PI or other "plug" type computers). However it needs a specific control application. upmpdcli lets you control your MPD-based players with your UPnP control point.
Because it is written in C++, built on libupnp, and using the well-proven MPD for the actual hard work, upmpdcli is reliable, lightweight, and effortlessy supports gapless playing. It also supports the OpenHome ohMedia interface, which is currently the nicest way to control network audio.
- upmpdcli goes 1.1 and provides a Radio OpenHome Source. I think that the functions and the program itself are now stable enough to get out of the 0.x zone. See the release notes.
- As a new year present to Last.FM users, a small program to monitor any UPnP renderer and do the scrobble thing. Nothing to do with upmpdcli really, but it uses libupnpp...
- Release 0.13.1 fixes the mpd "single" mode bug and supports the new sc2mpd sender/receiver mode.
- Release 0.12.0 uses a new feature in libupnpp 0.12.0 to suppress error messages which appeared with 0.11 when UPnP AV was turned off.
- Release 0.11.2 adds an upnpav configuration variable which allows turning off UPnP AV services to keep a pure OpenHome renderer. Doing this fixes Linn Kinsky issues.
- Release 0.11 includes support for setting up multi-room audio systems with Songcast
- A recent commit to sc2mpd seems to fix 24 bits Songcast sound for me. See the sc2mpd documentation for more information. Note: if you want to use this from a Mac, you will need mpd 0.19 configured with --disable-audiofile.
- libupnpp version 0.10.0 is released. Only the control side is enhanced to help supporting pure OpenHome renderers. This is used by upplay and has no consequence for upmpdcli. The packaged versions of upmpdcli keep using libupnpp 0.9.0 which can be installed along with 0.10.0 (packaged as libupnpp1).
- Older news
Please use the Disqus comments for praise, insults, or for tips which may help others. Use the Github issue tracker for problem reports and enhancement suggestions. Use E-mail if you run into trouble, I'll be glad to help: jf at dockes dot org.comments powered by Disqus