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.
- Versions 1.2.0 and later of the package also include a gateway Media Server which enables browsing and playing tracks from external streaming services (initially: Google Play Music, Qobuz and Tidal). The tracks can be played by the upmpdcli instance or by any other local renderer. Update: 2016-09-19: it appears that the Tidal interface does not work any more.
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.2.2. See the release notes.
The typical setup is a home network with:
- A UPnP Media Server (e.g. MinimServer, Minidlna, Mediatomb, or some commercial product),
- A UPnP Control Point (e.g. Bubble UPnP running on a tablet or phone, Linn Kinsky on a PC/MAC, or upplay for Linux).
- upmpdcli and MPD running on some Linux device (e.g. a Raspberry Pi hooked up to your bedroom stereo).
As managed by upmpdcli, MPD does not access the audio files directly and its configured music directory may be empty. If you want to use a native MPD client, upmpdcli is not the right solution: have a look at 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, and also brings new functions such as synchronized multiroom (Songcast), and access to streaming services.
- Improved search functions for the streaming services.
- Added support for Google Play Music, Qobuz and Tidal. The view of streaming services is a bit barebones yet, I am waiting for indications of interest and comments to try and improve the features.
- The current git code supports streaming music from the Tidal service (if you have a valid account there of course). You will need to build and install the development versions of libupnpp and upmpdcli. The function is briefly described in the manual. I would be quite interested by your feedback on this feature.
- 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