Re: Direction, tips, advice on building a multi zone sound server (multi zone DLNA renderer) based on rygel ?
- From: Andrej Falout <andrej falout org>
- To: Steve <linuxguy123 gmail com>
- Cc: rygel-list gnome org
- Subject: Re: Direction, tips, advice on building a multi zone sound server (multi zone DLNA renderer) based on rygel ?
- Date: Fri, 22 Mar 2013 13:42:45 +1300
I've been working on a multizone/multichannel server for a while now...
Basic audio functionality goes something like this:
1) On boot, I enumerate all local audio devices, and depending on user configuration create
"players" for them, one player for device (multichannel) or one player per stereo pair/jack (multizone - analogue and HDMI, but not SPDIF which remains stereo PCM). Same happens when an pluggable device (USB, FireWire) is connected/disconnected (via UDEV call)
2) At the same time, local network sinks are created for AirPlay (ShairPort), DLNA (Rygel) and BlueTooth A2DP (Pulse) - for each local audio device/jack enumerated in step 1) They are advertised with name of the server plus name of the device/jack and as such appear in renderer/sink/destination of appropriate applications/devices (iTunes,DLNA control points, Bluetooth devices that can stream to other A2DP devices)
3) Every 5 minutes I run a scan for new/removed network audio devices (RAOP/AirPlay, BlueTooth A2DP, DLNA) and create/remove players for them. Logitech Squeezebox and Sonos devices are supported too.
An "player" constitutes of an MPD instance and corresponding squeezempd instance, registered with local or remote Logitech Media Server - that provides full player control, including serving as an interface for many available remote controller options (iPhone, Android, hardware remotes from Logitech and Philips...)
Above is an subset of the full functionality which include DLNA server, DAAP (iTunes) server, video player/PVR/live TV (XBMC) including TV tuner client/server (MythTV) BitTorrent client (Transmission) etc etc, all tied up together under singe (and quite primitive but working) web interface.
The easiest way to achieve what you describe that I know of, would be to use SBS (LMS) that has built-in UPnP support to the extent that it works as UPnP-AV server and exposes each of it's players as UPnP renderers that are controlled from any UPnP/DLNA CP. Simply create one squeezempd/MPD instance for each of your sound cards and that should do what you had described.
However, given the limitations of DLNA streaming architecture (Gappless playback, limited formats support in standard, limited choice of control points, control point must remain running to play next track/playlist, general stability issues depending on particular implementation/product) you may want to consider if you really want to make DLNA a backbone for such setup.
Also, with 8 zones, you might find it more practical to reverse the streaming direction, and to have the 8 sinks (destinations) in the destination (room) and not on the server itself, and simply stream to them from the server. This is what I do, having two Apple Airports Express sinks, two DLNA sinks (Onkyo receivers) and a kitchen SqueezeBox "radio", Bluetooht headphones, plus one Intel Atom based box that runs only players serving as host to a audiophile USB DAC, and as output for an outdoor amp/speakers - all connected to a box that runs full set of servers, stores my music collection, acts as 2 channel TV tuner server/pvr etc etc
Note that in above description the DLNA "stream-to" functionality based on Rygel is still not working for me - it works with some DLNA devices/applications, but not mine unfortunately (Onkyo, Samsung) but hopefully with help of kind people on this list we might get this working too :-)
Andrej
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]