One of the questions that was asked after EHO and my Channel 9 video aired was:
is there an ability in vista to set on which speaker you hear an application? for example i want the media player on the 2 front speakers and the game on the 2 back speakers? if it’s possible, is there also a possibility to set the volume for each application on a per speaker base?
With a followup comment (from someone else) of:
Last I checked most audio cards were either full of stereo outputs, for front, rear, side etc. You are saying that these stereo output pairs, one of which could be utilized as headphone output instead of “side speaker pair 7 & 8” (so many outputs are common in sound cardss, but so many speakers are not common in average home computer), should be utilized only as one end point instead of how the user actually thinks about them?
The answer to both of these is: It’s an interesting idea, but has some technical issues.
First off, many audio solutions don’t have multiple sets of stereo jacks in the back. Multi-channel solutions come in lots of forms, such as S/PDIF, USB, 1394, etc, most of which support multiple audio channels without separate jacks.
Secondly, Such a solution isn’t technically feasible given the way that the audio engine is architected – at a minimum, the fact that each endpoint has its own preferred audio format makes this quite difficult.
The other problem with this idea is discoverability. Assuming that it was possible to work past the architectural issues, before you enable such a feature, you’ve got to tell the user about it.
Clearly, out-of-the-box, each multi-channel audio adapter needs to be its own endpoint. Otherwise owners of 5.1 audio systems will be a smidge peeved to find out that their 5.1 audio solution can’t render 5.1 content. So this “each channel is an endpoint” idea has to be an opt-in.
Now how do you describe such a feature to the user? How do you tell them “Make the rear left and right speakers their own endpoint”? How do you get a user to hook that up correctly? And how do you deal with the multi-channel audio solutions I mentioned above? For those audio solutions, the “make each channel a separate endpoint” option results in a HORRIBLE user experience, so we would want to disable this option when you’re running in one of those configurations.
Adding to this, there are a significant number of audio applications that don’t handle multiple audio devices – they simply assume that audio device 0 is the one that they want to use.
And finally, you’ve got to consider the number of customers this would benefit. It’s my understanding that the market penetration of multi-channel (more than 2) audio solutions is somewhere around 1%. That means that of the 500,000,000 Windows customers, only somewhere around 5,000,000 of them could take advantage of this feature. And of the 5,000,000 or so people with multi-channel sound solutions, how many of them have only 2 speakers plugged into them? I suspect that number is significantly smaller.
So this feature is likely to benefit only a tiny fraction of the Windows customers. Adding features, especially extremely complicated features like this one has huge costs associated with them – you’ve got to add tests for the feature, documentation, UI, localization, etc.
There’s an overarching thread throughout the Vista audio stuff – we’re trying to make things easier for the vast majority of users and we’re actively trying to reducing the complexity of the system. This feature doesn’t do any of that, instead it seems to me that it introduces a great deal of complexity that will benefit a very small subset of the Windows user base.
IMCHO, this idea seems to be a complete non-starter to me – there are too few people who will take advantage of it and it has the potential of messing up a significant number of people’s machines.