[LINUX/MAC/WINDOWS] Active/Passive Multi Zone Audio Support
#16
Hey topfs2, that is great news. Definitely something I would use myself Wink If you allow control of multizone audio through the webserver, we could work in some controls for the iPhone Remote as well!
Reply
#17
Multizone Audio 4 XBMC sounds nice.
One question: Would this allow to attach one ore more 5.1 USB Audio Adapters to the XBMC PC and control for every 5.1 Audio Adapter up to 3 different channels/zones, as one 5.1 Adapter has 3 different output sockets?
Is this possible with Pulsaudio or XBMC? That would be awesome!
Reply
#18
It there any possibility of XBMC being setup to use two different audio outputs.

At the moment I use the HDMI of the motherboard to output Video and Audio to my amplifier for Movie and Music duties in my lounge...

However, Id like to be able to run a second music zone (as my amp allows for this) but I would need to output the "Zone 2" audio from a secondary output in order for the amp to use it.

I know my machine supports using more than one output at once as I am able to run Windows Media Player and Xbmc at once playing either different music sources, or using ideintical playlists and having the same source in both rooms....any assistance on this would be appreciated if it would even be possible.

Thanks in advance.

I Love my XBMC
Reply
#19
jouster Wrote:It there any possibility of XBMC being setup to use two different audio outputs.

Just bumping this thread because I too would like to know whether this is possible. Basically, I'd like to set up XBMC to output movies to one soundcard, and music to another.

Simultaneously, if possible. :p
Reply
#20
bumping this back up since it has been a long while...
I'm not an expert but I play one at work.
Reply
#21
I think it would be awesome as well but it seems the devs really have their hands full lately. Gimmie gimmie gimmie! Smile PVR integration is going to be awesome when polished. Maybe something like this can be considered for future dev work.

But from the comments above, it sounds like one big roadblock is figuring out a nice clean way to layout multizone audio controls within xbmc such that it does not screw up the experience for people with only one zone (the vast majority). Making it useable with a remote will probably be a PITA! Combining this with a touchscreen skin (like YATSE) would make an awesome replacement for the uberexpensive retail consumer audio distribution touchscreen systems.

The screenshot above is an example, but I'm sure others will agree that it looks unwieldy. So perhaps those who want this worked on could toss some ideas around here as to the best way to handle this in GUI, and then at some point we can find out how hard it is to tie into multiple audioplayer cores. Probably either a separate section altogether in the menu for multizone, or a configuration that disables multizone menus completely in the audio library for users with a single zone? An
Reply
#22
osli,
An easy to use UI is not difficult... many apps do this well today. On page 2 I posted two UIs, one from Xlobby and the other from mControl inside Windows Media Center... and there are MANY others that are nicely done also.

I don't agree that they are difficult to use... if my wife, a massage therapist, can use it anyone can. It is pretty simple... choose zone, choose music - done. Everyone will have their own opinion of what is best, this is why anyone can skin it anyway they want Wink
I'm not an expert but I play one at work.
Reply
#23
Sorry to say but those screens on page 2 are both awful. If multi zone stuff even have the slightest chance of making it into trunk the GUI needs to be alot better.

Multizone stuff is a tricky subject and I have yet to see a proper GUI for it, even had an assignment in school were everyone was supposed to design it and noone succeded (100+ computer science students) in any way good enough to be used in xbmc.

If anyone could sketch or make up a workflow which would be good for xbmc, kindof doubt it will happen, then it might be worth the time. Still its far easier to just get the prices down per xbmc box and use one for each tv (or even have xbmc in the tv) which would work better than one that controls multiple tv's and audio.
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
#24
@ Livin -- Agreed. I forget how powerful xbmc's skinning engine is.

Well, we can keep hoping that as current big ticket items move further along the dev train things like this might come more into consideration.

The whole problem (well, aside from limited devs doing this in their free time for free Smile ), is that it seems a law of nature that as you make software more capable it gets "less good" at the stuff it used to be good at, whether by design or not. I think in the end users don't really care who wrote the code behind the functions or whether they had to pay for bits or pieces of it, so long as it "look seamless". Which is why I think the direction the devs went for PVR was brilliant... don't rewrite years of hard work on PVR capturing and databasing, just write a front end that can access and leverage that hard work. And the new add-on framework might make that idea more accessible to many others that don't have the time to tackle xbmc's core code but might attempt to write a plugin that extends functionality. Hell, even just tie in to existing software as we've already seen with people writing stuff for web content, mythtv, mediaportal, etc. The problem in this case is that your audio collection is housed by xbmc, not an external program (like jriver mediacenter or whatever), so multizone support would perhaps be a little more integral to the xbmc core than an add-on.
Reply
#25
topfs2 Wrote:Sorry to say but those screens on page 2 are both awful. If multi zone stuff even have the slightest chance of making it into trunk the GUI needs to be alot better.
Yeah, I think they are terrible too. I'll browse around and see how other software handles it and see what comes to mind. I'm a helluva lot better at abstract higher level control stuff like this than nitty gritty code implementation. Which means I'm still probably terrible at that too! Laugh

Quote:If anyone could sketch or make up a workflow which would be good for xbmc, kindof doubt it will happen, then it might be worth the time. Still its far easier to just get the prices down per xbmc box and use one for each tv (or even have xbmc in the tv) which would work better than one that controls multiple tv's and audio.
Yeah, I get your point and think that for the average person you are probably right on target. A multizone solution would probably cater more toward the higher budget crowd that might be looking for something like a slick crestron system but would rather it tie as cleanly as possible into their existing media database, home theater frontend, pvr stuff, etc. I realize that type of user might be much more likely to just pay high dollar for a custom installer to come put whatever uber expensive hardware is necessary in his home than to consider DIY options using opensource software and off the shelf hardware. I'm sure there are a few like me that will be in that position one day, but catering to a few is probably not high on devs priority list.

In any case, for an example of why someone might not just want multiple xbmc boxes locally, I'll give you a hypothethical "I'm dreaming" xbmc implementation (and some of this really will be dreaming)...

Say you have a house with 4 or so normal TV's, home theater, whatever. You also have distributed audio throughout the house (in ceiling or in wall speakers in most rooms). You could put xbmc on the tv's, but they won't do much for rooms with speakers and no display devices (perhaps kitchen, a living area, dining room, outside patio, pool area, front porch, garage, whatever). You could install some sort of xbmc with integrated dispay for each of those locations, but say you have 12 rooms... do you really want 12 xbmc installations and have to walk around the house to change audio selections in various rooms? What if you want the same song to play everywhere, or a couple of different songs to play in a couple of different groupings of rooms? You could install a crestron, russound, or whatever system to control the distributed audio (and they do it nicely), or perhaps a dumb receiver and distribution amp, but will they talk to xbmc? Why would you want them to? Well, xbmc already hosts the media datase and library. Would that have to be duplicated for a crestron or similar system? Even if they could read from the same library (fileserver), you'd have two different interfaces for your media... one to play music through your house, one to either watch videos or listen to music in certain rooms with displays. And your theater would probably have both interfaces. Ugh.

So here's the dream (please bear with me)... You have your fileserver with media library, another server running tv capture/pvr backend, and xbmc clients at each tv/display location. Great, we're headed there with xbmc now. But imagine in say each end of the house, perhaps the kitchen and a far hallway or garage, you have two other xbmc clients running on touchscreen displays. Maybe one sitting on a kitchen countertop, another mounted flush inwall in a hallway or garage. From these touchscreen xbmc installations I can pull up any media and send it to any room or groupings (zones the user configures). If I want soft classical music in the nursery, nothing in surrounding rooms, and heavy metal in the garage where I'm tinkering with an old car, it's just a few finger touches away. My wife in the other end of the house thinks the music in the nursery is still too loud, so she turns it off or turns it down just as easily. She then flips over to weather on the home screen to see the forcast for tomorrow, and then a quick look at the facebook plugin to see if she has any new messages. But that's not the end of my dream. It's getting late and I'm still out working in the garage. The kids should be asleep... it's past their bedtime and lights should be out. I wonder if they still have the TV on? I could simply walk upstairs to check it out, but isntead I pull up the xbmc on the wall over there and see that there is nothing playing in any of the kids' rooms. I leave them alone - they're being good. I do notice however that I left a movie running in the theater with the projector on... don't want that bulb to burn out too quickly so I shut that all down with a button press and get back to work. Now the doorbell rings and I know my wife is in the shower, so I take a look at the snapshot from the front door camera. Nothing there. Huh. I pull up the CCTV loop that is so easily accessible since my cameras all write to the same PVR/TV backend server that captures TV, and see that it is some kids who rang the doorbell and ran off. That reminds me that it really is getting pretty late, so I quickly navigate to the security screen and touch "goodnight" and get back to work in the garage knowing that all doors are locked, the lights are set appropriately, and the alarm is on. I'm greeted the next morning with xbmc having already started some of my favorite music in my bathroom while I get ready and showing RSS feeds in the kitchen. I head off to work, the kids start their favorite movie in the playroom, and the wife sets "All My Children" audio from the live tv stream to play in all rooms while she does a little straightening up of the house. I get home and want to relax out by the pool, so I grab a iPad (yes, I hate the closed nature too) style tablet pc and launch yet another xbmc and stream my favorite old Star Trek episodes recorded earlier during the day for me to watch while I relax as the children swim.

OK, I'll stop dreaming. I know it sounds very undermining to xbmc to try to be a "one app to rule them all" solution. But to be honest, much of that work is already done and xbmc is putting together now the pieces to allow just that. PVR integration is in the works. People routinely record CCTV security feeds to mythTV and VDR. The DIY automation community has tons of software and resources to do lots of stuff, and the simpler things (lighting, locking doors, setting alarms) can be done so many ways I have to believe that at some point someone will write an add-on for xbmc that speaks to those devices directly or another small box handling the automations software. XBMC is moving to a centralized database so having server/client setups like I described above is not far fetched at all. YATSE shows that touch screen control is certainly possible within xbmc and its powerful skinning framework. XBMC already can power down a system - if we're talking server/clients it is a small step to simply ask "which client to power down?". The big missing piece in my fantasy above is multizone support, which to be honest doesn't need to apply to just music (as seen with the example of the wife listening to her favorite soaps as she moves about the house). And the multizone support could be so much more than just "send this stream there." It really could be a framework whereby different client installations talk to each other to monitor what is being played where, have over-ride options (perhaps with password requirement?), allow me to view in the kitchen what the kids are watching on HBO upstairs, etc. The multizone audio is the only thing that falls outside that kind of framework since it seems one physical machine would have to handle multiple audio devices, but even that might could be handled in exactly the same way - if you have 12 rooms and 12 sound card devices in one xbmc box (heh, not sure how that would be possible... USB perhaps?), then have 12 instances of XBMC running simultaneously each hooked into a dedicated audio output device. Conflicts galore?! Laugh Name those 12 xbmc instances audio 1-12 or kitchen audio, patio audio, whatever. Now from any xbmc install under the multizone screens you can see what is playing on any tv or in any audio zone in the house, as all xbmc instances are treated equal and all talk to each other. It just so happens that the touchscreen installs run a touchscreen skin that makes it a bit easier to navigate. But if you want to turn off audio at the pool from within the theater, so be it.

Ugh. Back to work. Nerd
Reply
#26
@topfs2
those UIs are not rocket science to use. When you have $100K+ systems that do this everyday, simply & easily for soccer moms, kids, etc. Just like anything else, if you have never used it, or something like it before, there is a learning curve... even with a simple IR remote.

separate boxes is not always desirable, or even possible. I have all my equipment central, as do most built-in systems. professionals don't put a separate box in every room. I'm talking 'real' Multi-Zone audio, not streaming to a box, or having separate master units in each room.

@osli
I agree that multi-zone is not, and should not be a priority... I think DVR is more imporntant myself too - though, multi-zone audio is about 1000x less complicated than DVR also.
I'm not an expert but I play one at work.
Reply
#27
Actually, what I described isn't exactly "multizone support within xbmc" explicitly, and really falls more in line with your thoughts on a single cheap box for xbmc at each tv. What I've described is just extending that to remove the requirement that a single xbmc install have associated hardware and allowing multiple instances to run at the same time on one machine provided they are configured appropriately (each hooked to a specific audio device, display set to "none" to prevent any errors in not having a target for video to be rendered, etc.).

Add to that a new extension of the gui that simply shows communication among all of the xbmc installs running on the network and allows for distributed control of other instances (again, perhaps with support for password levels, or better yet heirarchy rules based on user profile levels?), and you have what I've described. No need to launch multiple audioplayer instances within xbmc if you can just launch multiple xbmc instances and have them automagically show up on every xbmc install in the house. Please just smack me and tell me why I'm crazy! Eek
Reply
#28
osli,
There is a distinction between streaming and multi-zone.

Multi-Zone: Single central intelligent master (distribution point). If there are any controls at the end-node (many have no controls) they are not intelligent and rely 100% on the master to do the work (end-nodes do not do any decoding/processing of the signal or amplification).

Streaming: Can be multi-master. Requires intelligent end-node to do processing of the stream, and amplification of the signal (audio/video/etc)

To us an example which is an analog to having multiple XBMC boxes...
If you have 3 TVs in your house connected with 3 cable boxes you don't have a multi-zone cable system... you have a streaming system since each end-node must control/process/decode the signal independently.

If it were true multi-zone the cables would connect directly to a monitor (without a tuner or a tuner that actually sent requests directly to the cable company) and all content (source) requests would be handled centrally by the cable company's distribution system.
I'm not an expert but I play one at work.
Reply
#29
Call it multi-master or multi-zone or multi-xbmc or a distributed media center or whatever you wish. I think there are some significant benefits in power, flexibility, and perhaps even ease of implementation vs. a traditional "multizone" approach.

XBMC by its nature is designed to stream content. Why not leverage that and simply extend that ability to allow true multizone control on a level Crestron could only dream of. What I've outlined is one physical box that handles connection to all audio output devices for "multizone" audio (you could have two or more, if desired or required for some reason). Think of this physical xbmc box as the equivalent to a Niles or russound or whatever box. The key is that there may be no need for a single instance to control multiple zones. If xbmc clients throughout the house could communicate with each other, then any xbmc instance should be able to assume control of the physical box that actually has the multiple audio devices connected. Or perhaps your property made it more convenient to have one box connected to audio within the house and a second box connected to audio in a detached garage or guest house or whatever, or one box downstairs and another upstairs, or.... No reason one box could not still have control over the other either because one has no display or keyboard/mouse/remote input devices or perhaps both do and can control each other. So my proposal doesn't fit your definition of central control with dumb nodes, or distributed nodes with no communication. But I think it's the best of both worlds, and doesn't require traditional multizone support to be coded into xbmc. I am certainly just speculating, but I think it may be easier to implement than one instance controlling multiple zones. And I think this has benefits that go way beyond simple distributed home audio control.

So there's three parts to my hairbrained fantasy.
1. Allow multiple instances of xbmc to run on a single physical machine, each tied to a specific audio/video output devices.
2. Add a communication layer (perhaps it's already there?) that allows xbmc instances to communicate with and control one another.
3. Extend the GUI to have a section that displays every networked xbmc instance and allows control over them.

The first - to allow multiple instances of xbmc to be launched on a single machine in a way that each has some unique identifier (user named, preferably), and hooks to a unique audio output device and presumably a unique video output device, with the ability for either of those to be null (a display-less instance which needs only send audio to speakers in a given room or zone, or maybe an audio-less instance which only needs to feed CCTV video to a security display). I'm not sure if this is a really difficult step or not because I don't understand the details of hardware conflicts and drivers for multiple identical devices in a system or the ability for xbmc to distinguish one soundcard from another (doesn't ALSA under linux xbmc support this already? Would it be that difficult for a specific instance to always launch tied to a specific output device?). I knew a little about IRQ conflicts 10 years ago, and that's about it.

The second - perhaps the more forward looking but maybe this layer already exists in large part? If you have multiple xbmc installations (or instances) in your home connected to the same network, you would need a layer of communication and control between them over the network that allow you to select an instance/installation or group of them and see what is being played and assume control if desired. Doesn't xbmc already support control from other applications, including over the network, if you enable that (isn't that how all the phone remote apps work)? I would think having one xbmc instance control another should be pretty easy if it ties into that existing framework.

So the third is maybe the primary difficulty and we are really just back to the GUI and a nice clean way to display that. I don't see why this should have any impact on the "average" user with standalone xbmc installation. If there aren't other xbmc clients on the network, then that section of the GUI will simply be either unpopulated or unavailable. Or, if the user does have multiple installations but doesn't want them to communicate, a simple system setting that says "don't communicate" should take care of that. No reason it couldn't be a little more elegant though, allowing the user to select which installations/instances to have included in the network communication. A single checkbox or yes/no in the system settings that simply says "allow this instance to communicate with other xbmc instances." Again, if the "average" user doesn't want this functionality, it should be dirt simple to turn it off and not have it affect the look of the xbmc gui or standalone experience at all.

I think the benefits of this type of solution go beyond multizone audio, only some of which came to mind and were included in my fantasy scenario above. It would seem that an integral part of such a scheme would have to be good profile level support such that each instance had an access level selectable at setup that allowed or restricted certain functions, add-ons, features, etc., if only to prevent the box in the kids room from turning off your movie in the theater or the lights to the house or the security cameras. Not sure how complicated that might get - I know there has been much discussion on the forums about how to restrict certain parts of a library based on rules (i.e., keep the kids from viewing R rated movies) and how best to accomplish that... this would be either similar or an extension of that kind of profile setting. Better than per instance levels would be per profile with the ability to switch profiles on any instance given the appropriate password. Some of this exists in xbmc today, some would have to be extended.

Could a dev or anyone that has a lot more insight into the inner workings of xbmc comment on how feasible this sort of solution to the "multizone" problem would be? Does it make sense to have each xbmc instance tied to an output rather than one xbmc tied to multiple outputs, and why I think that offers a huge increase in the flexibility and power of xbmc, not to mention greatly expanding the possibilities people might dream up for add-ons? I just don't see why one xbmc instance should be the "multizone" instance and all others standalone (even if of physical box was the "multizone" box and multiple instances were installed only on that one box). Treat them all equally... every instance sees all others if permission is set for that profile.

Since it's something I'm interested in and the GUI is a big hurdle to clear, I'll try to familiarize myself with the GUI for pretty much any multizone audio solution I can find to see the array of ways its being done now. But that is one of the great things about xbmc... it has a terrific skinning engine. If some users don't like the default gui for multizone/multiclient control, I'm sure someone will have already created one they'd like better.
Reply
#30
I just realized that perhaps there's something missing in xbmc that is pretty fundamental to being able to do what I've described above... volume control. Or not? I don't use volume control from within xbmc so I'm not sure how it ties to hardware or external devices. Have to go read up and let the ol' neurons chew on that one for a while.

As for the other aspects of how to handle the GUI, I think this could actually be much much simpler than what is probably assumed and have minimal impact on how xbmc looks and functions even for the user with a dozen networked xbmc instances. I'll work on some mock-ups in the coming weeks as I have free time.
Reply

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