[LINUX/MAC/WINDOWS] Active/Passive Multi Zone Audio Support
#1
Lightbulb 
XBMC interface for Active/Passive Multi-Zone (multi-rooom) Audio

Concept:

XBMC controls one/more sound cards within the same computer.
- enables that PC to connect to amp(s) that run to speakers in multiple locations.
- acts as a switcher (on/off) and volume control for each zone
- the only control interface needed to control multiple rooms/zones
- acts as multiple "source" switch, thus each zone can play different audio

Please Note: This request is NOT for streaming to other devices, that is active/active as shown below...

Image
I'm not an expert but I play one at work.
Reply
#2
OK so I've seen threads talking about iTunes and Airtunes support, and multiroom streaming, but from what I can tell none propose quite what I am about to. Support for sending multiple audio streams to different wireless speakers all controlled from xbmc.

Firstly the reasoning behind this is that whilst Airport express stations and itunes offer a very affordable solution to multiroom audio streaming what it doesn't do unfortunately is allow you to send differently audio streams to different express stations.

Obviously this feature would be disabled by default as most people wont have the hardware. However if they did the process might be something like:

SETTING UP
-------------------------------
1. Go into multiroom settings and enable multiroom support
2. Set up your zones
a) create a new zone
b) add wireless speakers to your zone
c) repeat until set up is complete
- Zones would also need to be editable
- Speakers should be able to attached to more than one zone eg kitchen and downstairs

PLAYING MUSIC
-------------------------------------
1) Browse you music as normal when you click to play a track a dialog asks you in what zone you would like to play it in

PLAYING VIDEO
-------------------------------------
When playing a video in the audio options you should be able to include zones to be used for the current playback

Airtunes and Airport express spring to mind as the priority system as that seems to be the one most in need of this feature however i think that any development should be split into frontend and backend so backends for other wireless speaker systems can be added and possibly used together.

I am very new to both C and python scripting so if this was to happen I would need a large amount of help however I am keen to get involved my self.
Reply
#3
The Airport Express as audio sink part would probably be the easy part of that concept (if and) when PulseAudio implements it, see:
http://www.pulseaudio.org/ticket/69

The hard part would the XBMC back-end and front-end. Making XBMC support multiple audio-player cores running at the same time, and a front-end GUI to setup those different zones and the the user interface to control playback to them.

You might get some ideas from LinuxMCE which I believe support that (or at least something similar) via its modified Orbiter GUI Pluto framework, see: http://www.linuxmce.org
http://wiki.linuxmce.org/index.php/History
http://wiki.linuxmce.org/index.php/Developers

You can find XBMC development resources here:
http://wiki.xbmc.org/?title=Appendix_D:_...ment_Notes

Big Grin
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#4
am i right in thinking that xbmc uses mplayer
does it use this for audio playback, i dont think it would the end of the world if this was only possible for music

unfortunately from what i can tell all the other projects mention so far offer controlling different stream to different zones

anyhow here is a rough idea of how it might work

http://www.digitalintuition.co.uk/multizone.jpg
Reply
#5
msaspence Wrote:am i right in thinking that xbmc uses mplayer
No it is a little more complicated than that under the surface, see:
http://wiki.xbmc.org/?title=Audio_Players
http://wiki.xbmc.org/?title=Video_Players
All audio/video players in XBMC works seamlessly to the end-user

Wink
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#6
are all running at all times?

or are they launched when they are the player being used?
Reply
#7
They are only loaded on-demand, they are compiled as separate dynamic link libraries (DLL) and loaded by XBMC's DLL loader.
http://wiki.xbmc.org/?title=Basic_overvi...ource_code

I do not personally know how it works at a source code level, but at least under Linux, Mac, and Windows it is easy to explain as "PAPlayer" is the only audio player and "DVDPlayer" is the only video player. On the Xbox it depends on which format and codecs are used if "DVDPlayer" or "MPlayer" are used.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#8
Lightbulb 
I think a great addition to XBMC to make it a fully fledged "Media Center" would be Multi-zone Audio control interface.

Successful multi-zone control includes...

1) GUI interface to control all zones
2) Complete command set available via http
3) Ability to send different audio streams to each zone
4) Ability to use each 'channel' of a sound card as a single/separate zone
... e.g. a 5.1 built-in sound card could run 6 separate zones
I'm not an expert but I play one at work.
Reply
#9
I should have elaborated/clarified I'm looking for Multi-Zone Audio, not Distributed (Streaming)...

Multi-Zone Audio vs Distributed (Streaming)

Multi-Zone = Zone Unit distributes audio directly to speakers in multiple locations. Single Unit is controlled from multiple locations but is essentially controlling a single unit/interface.

Distributed (aka Streaming) = Distribution Unit (usually with no local control) sends audio to multiple Receivers which, in turn control each zone separately.

Ideally... my HTPC is the 'zone unit' and only system. I'd like to use the HTPC to run/control all zones via the internal sound card. Then control it via a web interface and XBMC (both on HTPC)

I'd be using my Windows Mobile phone's WiFi to run the web site to control the web interface on the HTPC and set each zone to different music and/or different volume levels.
I'm not an expert but I play one at work.
Reply
#10
I noticed PulseAudio now has support for AirPort Express... I'm hoping that a dev takes interest and we can start down the road to multi-zone audio support in XBMC! Big Grin
I'm not an expert but I play one at work.
Reply
#11
Hi,

Some suppliers provide demonstration facility which will gives u the opportunity to try out different combinations of equipment before you make your decision. But great effect in multiroom audio systems.
Reply
#12
Is any dev working on this?

some multi-zone interface example layouts...

Image

Image
I'm not an expert but I play one at work.
Reply
#13
Hi.
I really like XBMC, but I extremely miss multi zone support. Is there some progress in it?
Thank you
Reply
#14
Instead of starting with the full-fledged multi-zone support, I think there are some low-hanging fruits for XBMC to catch, basically acting as a front-end to Pulseaudio.

Scenario 1: XBMC chooses to play what is currently being played on another computer in the network, through PulseAudio. This can already be done outside XBMC using the PulseAudio GUI, but I want to use my IR remote control to do it, and not exit XBMC.

Scenario 2: The sound from XBMC is distributed throughout the network using PulseAudio. This is already also possible using PulseAudio as of today, but requires PulseAudio GUI interaction if not previously set up as default in PulseAudio (I am not sure whether this scenario should involve any code changes to XBMC at all).
Reply
#15
berland Wrote:Instead of starting with the full-fledged multi-zone support, I think there are some low-hanging fruits for XBMC to catch, basically acting as a front-end to Pulseaudio.

Scenario 1: XBMC chooses to play what is currently being played on another computer in the network, through PulseAudio. This can already be done outside XBMC using the PulseAudio GUI, but I want to use my IR remote control to do it, and not exit XBMC.

Scenario 2: The sound from XBMC is distributed throughout the network using PulseAudio. This is already also possible using PulseAudio as of today, but requires PulseAudio GUI interaction if not previously set up as default in PulseAudio (I am not sure whether this scenario should involve any code changes to XBMC at all).

1 is possible but not from gui as you say, however you don't need to do it from pulseaudio gui, you can do it in advancedsettings aswell.

2. You can choose host in advancedsettings here aswell and not only use default, But for full blown integration it requires changes, I have the code for doing the discovery of new sinkls however the code for gui is not. So it's mostly a matter on how to implement it good in GUI, if users wants to be asked it on every start or one for all. So mostly it's decision making on how to make it easy and intuitive to use.

So if you or anyone else here have ideas please share. Just note that it needs to work perfect for users without multizone sound, as that's still the bigger user group Smile

Cheers,
Tobias.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply

Logout Mark Read Team Forum Stats Members Help
[LINUX/MAC/WINDOWS] Active/Passive Multi Zone Audio Support2