Submission details
Output to more than one audio device simultaneously
Can't send audio stream to more than one audio device simultaneously.
Allow stream output to more than one audio output device simultaneously, perhaps with (optional) automatic or manual latency adjustment.
The next logical step would be what commenter Webweaver refers to below as "many to many": the ability to map particular applications to particular sets of outputs at particular levels (above and beyond the new "communications" stream).
High
High
Not fixed
Discussion (37 comments)
In Media Player it's not that difficult but you still have to at least fully stop playpack (Stop-button NOT pause) and restart playback... Really annoying especially for users of USB headsets which work as additional audio device
envi, I see W7 apparently supports dynamically switched output in the form of "StreamSwitch". This is wonderful to hear. I will edit my submission to focus on what would be even more wonderful--multiple outputs.
Changed title from [Output to more than one audio device simultaneously, and/or dynamically switch output] to [Output to more than one audio device simultaneously].
Assigned to categories: "Annoyance"
Changed problem description.
Changed solution description.
I use Vista Media Center, and dont want to run my 1Kw AV reciever to watch
the news (audio over HDMI) so I run the HDMI to the TV (only accepts stereo)
and use another SPDIF output device for the AV reciever to watch movies with
5.1/7.1 sound tracks.
It would be awsome if...
1. I could send audio to 2 audio devices simultaneaously, stereo on 1 device
and multichannel on the other.
or
2. allow applications to choose the output device, for instance I could setup ffdshow
to output on the SPDIF device connected to the AV reciever for movies, and
setup Media Center to downmix to stereo and output on the HDMI audio device
for Law & Order reruns.
I agree that simultaneous audio output (e.g., analog audio out and digital S/PDIF audio out at the same time of the same stream) is long-overdue. Adding to the suggestions here, many applications already allow you to set the audio output in the application preferences, so that each application can stream to different audio outputs (e.g., the popular PowerDVD). StreamSwitch will add nothing to those applications, but will still be useful for a unified/mandatory approach to the same.
What will still be lacking is a highly dynamic StreamSwitch feature which could direct the audio stream to different outputs and/or combinations of outputs. For example, I have a video DVR on my computer called Beyond TV, and in some cases I load the client shell onto my desktop computer screen; other times I load it onto my upstairs big-screen HDTV; and other times I load it onto my workout room monitor. All of these locations receive audio from unique ports on my PC; audio should be distributed based simply on what I want to do: Watch upstairs, watch while jogging on the elliptical, watch while working in front of the PC on the "secondary" monitor.
As with WinXP MCE, future versions of MCE should be able to allow audio streams to multiple audio outputs simultaneously ... at the VERY least, a single sound card should be able to output the the audio stream via both DD/DTS and stereo (downmixed) outputs at the same time.
Changed solution description.
We, too, want to send audio to multiple places; at least one-on-many.
Many-to-many preferably.
Scenario-1: on our HTPC, we want HDMI to TV via HDMI cable, want S/PDIF to A/V Rcvr, want Bluetooth headset via blue tooth, want standard stereo out(green jack) to "TV Ears". ALL this to facilitate hearing requirements of our family. (one-to-many).
Scenario-2: many-2-many; Laptop in motorhome for GPS, etc. We want to run a Media player and GPS and audio mapping applications simultaineously; and, get their outputs on standard (green jack) into motorhome radio (aux in); and on Blutooth headset for GPS verbals. At least 2-on-2 global; preferably multiple
1-on-1s.
Changed solution description.
This is even more important with bluetooth headsets becoming more mainstream. We should be able to hear on mutiple bluetooth headsets from the same source (ex dvd movie playing)
This is one of the many reasons why so many users are frustrated with Vista. Why would microsoft take away functionality that was available in older versions of Windows? Multiple sound output is a very common and desirable use. Vista seems like a dumbed down version of previous Windows. Also, why are there so many different ways (at least three I have found so far) to adjust the volume in Vista? Which one are we suppsed to use!?
This is a critical feature as PCs make their way into living rooms as media centers. Please implement the "many to many" fix. It seems to me that all applications should output to all enabled audio devices simultaneously by default. More advanced users should be able to map individual applications to individual devices on the fly through the Volume Mixer.
My requirement is for simultaneous digital surround sound and analog stereo sound for a HTPC. We have an AV receiver for the main viewing area, but also view from an adjacent area where the sound doesn't reach well. For that we have an extension stereo amplifier and speakers.
I also think simultaneous digital / analog sounds should be a requirement. It is very inconvenient to have to go into the MCE speaker(audio) setups each time you wish to toggle between the two. For instance my wife and kids don't like to mess with the AV receiver and the analog just goes to the TV. I like to route to to my receiver when I watch movies. It seems a pity not to have them both "hot". A $50 dvd player has been able to do this for ages but not an expensive media center PC?
My use case: I have a bluetooth audio receiver that I would like to use occasionally. I would use it a lot more often if it could stay "hot"...then I could just turn the receiver on. As it is now, it's quit playback, shutdown the app, connect bluetooth, set default output device, restart application, figure out where I was, resume playback....and that REPEAT the entire process to switch back to internal output.....WHAT A USABILITY NIGHTMARE!
As this pertains to this issue as well as the one located here: http://www.windows7taskforce.com/view/1068, I decided to post this to both.
The ability to output the same stream to multiple audio devices and different streams to different devices is much needed.
In Windows XP, we were able to use the Windows Media Player 9-11 SDK to play sound to whatever soundcard device was set as the default playback device when the application was loaded. This was done using the SoundMapper registry key, see http://andocs.wordpress.com/2007/08/21/choosing...playback-device-in-xp/ for an example. This allowed us to start multiple instances of the same application and have them output different or the same audio to different audio devices.
In Vista, we switched the default audio device using "macros" to bring up the audio control panel and set the default audio device. In this case, the audio was forced to the default audio device that was set when the audio started playing in the WMP SDK instance rather than when the application was loaded. This allowed multiple instances to output to multiple audio sources at the same time.
This was not officially supported by Windows XP. The issue for us is that in this age of digitial media and connected homes/businesses, with what we were given in XP (semi-programmatic) and Vista (macros), workarounds were created to provide this functionality for applications and customers that needed it, in our case, 10,000+ customers.
If Windows 7 continues with adding support for "Stream Switching" without giving the ability for a program to opt out, a general case, or in our specific situation, have the WMP SDK allow us to set the output audio device for the WMP SDK instance (this is if your statement that Stream Switching won't switch audio for applications that have specified a specific output device) then there will be a bunch of unhappy customers. This also applies to other audio SDKs and applications that do not support specifying an output device and instead always use the default audio device.
This feature was not removed in Vista. Vista just needed a different method for setting the default audio device than XP did. But in the case of Windows 7, this non-intentional, though necessary feature has finally been killed/removed.
Our Connect Feedback for this issue is located at: https://connect.microsoft.com/feedback/ViewFeed...=399755&SiteID=647
I hope my postings to different places aren't bothersome. I'm just trying to make sure the people that need to see this information see it before it is too late and our company and other companies have a lot of unhappy customers.
Thank you,
John
I cannot understand why Microsoft has taken away the ability to output analog & digital audio simultaneously in Vista. Why have that done that? This worked so well in WinXP. I'm also sick to death of having to close down whatever application I am using every time I wish to switch to a different sound playback device (ie headphones, digital out to TV, analog out to speakers, digital out to amp). I have been waiting since the launch of Vista for a resolution to this to no avail. Microsoft have told me that they are working on the issue, but how long do we have to wait? I've got so fed up of it all, I've diched Vista and gone back to XP. Shame on Microsoft that old software can do things better than their latest OS.
Dear GOD IN HEAVEN can you please implement this? My setup is based on two USB-connected speakers behind me and the in-built speakers of my monitor so if I could only get those two to play at the same time, I have kind of surround sound, which is the only thing missing from my otherwise perfect setup!
Hi I just watched the "Inside Windows 7: Larry Osterman on new audio capabilities" interview on channel 9 ( http://news.softpedia.com/news/Audio-Enhancements-in-Windows-7-97649.shtml ) and am verry happy with all the changes your making to the windows7 audio subsystem, especialy the live streeming. But I think this is a major feature that is still missing.
Here is how I would go about solving the problem atleast from a UI perspective
First is being able to assign a default audio device on a per ablication bases. I think this could be realy nicely done in the "Volume Mixer" by adding a drop down menu under the mute icon, to choose/display the default audio out curently being used for that program.
The second feature I would like to see added is realy just an extension of the first idea. It consists of a configeration button under the drop down menu. Inside the configeration window you would be able to choose the 1st, 2nd........... default audio out for that program incase the first isn't present. This could be done again using drop down menus, the first would have what ever the default audio device is. The second would say "none" until the user selected thier secondery default device. If one was selected a third drop downe menu would apear saying "none" until the user selected thier tershiry default device and this could repeat until all the audio devices are selected.
The part that I would realy realy realy like to see implemented is outputting the audio to multiple devices symotaniusly. This could be done in a simelar way. So Inside the configeration window you would be able
to choose the 1st, 2nd........... audio output device for that program. This could be done again using drop down menus, the first would have what ever the default audio
device is. The second would say "none" until the user selected thier secondery audio output device. If one was selected a third drop downe menu would apear saying "none" until the user selected their tershiry audio output device and this could repeat until all the audio devices are selected. In addition to this there would need to be a small configeration button beside each of these devices.
This is needed to take into acount the small delays through the different audio pathes. In this configuration window syncrenisation slyders could be introduced to add delay to the particular audio path.
This would allow the user to fine tune the setup to get the best experiance.
I suppose the same could be done for adio input devices this would be useful in letting programs like skype use multiple mics at the same time.
Obviously these additions would be very useful for media PCs in particular when they have to play audio throughout the household. That said I would realy like to see this added to windows7 or its sp1.
Hopefully sooner rather than later
Please add this back into Win7. I wear hearing aids that are Bluetooth enabled. I purchased an AZIO Bluetooth USB device that will broadcast stereo sound directly to my hearing aids. The problem is that Vista and Win7 only allow audio output to one device/stream. I have a ATI video card where I use the HDMI video/audio output to my Sony Bravia. The ATI card supports 7.1 sound and is great. I NEED to have my AZIO working concurrently so I can appreciate the great Blue-ray audio as well.
Concurrent audio is a NEEDED feature. Please get it in WIN7!!!
The lack of this feature must be fixed.
This IS possible I don't know how yet and am trying to figure it out...here's why....
Under normal circumstances I have to set either my speakers or USB headset as default to make it work. However, skype has a little checkbox for the ringtone to "ring all devices". It works, when a call comes in it rings my speakers AND my USB headset simultaneously.
So, if the skype guys figured out how to access multiple devices, it's possible, the question is how and how can this be applied golbally outside of a specific app?
Because skype is using the api that Microsoft provides to do this. It's quite common. It's how my suggestion with using virtual audio driver works. The api is published and is not secret.
FYI, my application is that my HDMI cable feeds my big HDTV in another room and my analog VGA and audio feed my desktop monitor & speakers. My video is easily fed to both screens simultaneously. Of course I want whichever room I'm in at the moment to get the audio, too, without having to shut off the other room's audio.
It's possible to split analog audio to two destinations with Y-adapters, but that doesn't work for a 50' HDMI cable. (My speakers don't take digital audio and long HDMI's cable runs can't handle splits, either.)
The only workaround I know is Muzychenko's Virtual Audio Cable, but I've read that is blocked by Win7's UAC prohibitation of 'kernal' drivers that don't have $expensive$ digital signatures. (Though audio hardly seems to be a kernal kind of thing.) Since I refuse to disable UAC, VAC is unusable.
If Microsoft or the Bill & Melinda Gates Foundation or someone (or even a group of individuals) were generous enough to commit to making a recurring annual donation covering the $cost$ ($150-$200?) of the driver digital signing to Muzychenko each year, then we'd all have a 3rd party solution for those people like us that really-really need it without having to have Microsoft make any programming effort at all.
Comment edited on February 3, 2010, 2:43pm
Comment edited on February 3, 2010, 2:44pm
Virtual Audio Cable does seem to work in Win7. I haven't played much with VAC itself, but the AudioRepeater.exe program included in the package does actually work. Not 100% perfectly, but it works. With that audiorepeater program, you select a source (ie. Microsoft Sound Mapper) and then an output (ie. analog audio out). Then it will send all audio going through the Sound Mapper to the analog outputs regardless of what the system default sound device is. This is how I can send music through both digital and analog outputs at the same time. However, my audio will eventually begin skipping and dropping out when this program is running. It doesn't do it often and it could be my configuration, but the dropouts are annoying. I've searched for VAC forums but haven't found any good support out there for this thing.
I haven't figured out how to downmix 5.1 and send that through analog too, which would be nice, but at least I have a semi-working work-around to my simultaneous digital/analog problem.
VAC isn't compatible with *64-bit* Win7's kernal driver signing UAC requirements. VAC doesn't have a kernal driver digital signature because it's too expensive for the author. As I understand it, there's no convenient way to use VAC in 64-bit Win7 without disabling the security requirement that drivers have a digital signature, and in my book disabling security features is a no-no.
Yes, I've been reading today about the issue of 5.1 + stereo simultaneously, too. It has been looking like that's simply impossible because the audio processing has to chose one more or the other, not both. There's even a theory that digital output might flow out HDMI + S/PDIF + TOSLINK all at the same time, which would enable someone to buy an external S/PDIF or TOSLIN to analog L/R converter. (A Geffin 5.1 to analog converter is about $130; plain stereo to analog via geffin is about $80). I have no ability to test S/PDIF or TOSLINK for anything, and have no idea which one I'd have to use in order to have HDMI do whatever it's doing (5.1?) and try to run S/PDIF-to-analog in parallel. Such external converters, though, downgrade the audio quality a little due to digital sampling, so that approach isn't my preference anyway. Since I think I have Realtek in my Asus, I'll eventually get around to trying the Realtek drivers + drop-in hackfile solution for mere stereo via both HDMI + analog (switchable to exclusively 5.1 over the HDMI).
You don't need to disable UAC to use virtual audio cable. That's just the people who made VAC misunderstanding how to work with UAC. I had posted a comment on how to enable you to install VAC by allowing developer signed drivers in windows 7, but it was lost when all the comments after march were lost. But that fee to have the driver signed is per year. Considering all they need to do is sell 4 per year, I think they're just being cheap.
We don't really know what VAC's costs would be (selling and currency exchange rate fees, tech support labor, incremental development labor, a new $1500 64-bit Win7 testbed PC, etc.). We can only assume that someone bright enough to create VAC has done the math on costs and how many more purchasers it would attract, and compared that to other uses of their time. We can only assume he reached a logical conclusion that, apparently, at this particular point in time, adding a real driver signature isn't the best use of his time and money.
As I read it, without the pricey digital signature, VAC needs 64-bit Win7 to run in "test mode" to disable that security protection, i.e., you have open your PC to the risks of that form of malware. Some people don't care about that risk, some do. I do. (VAC suggests an alternative that requires manual intervention every time the PC starts, but that would be painfully inconvenient for me.)
I hope you'll forgive me for citing "test mode" as disabling "UAC" -- I think of them as all part of the same security system.
Best regards,
Craig
I tried VAC and it works best for audio alone. When it comes to video, the latency in the audio linked to the VAC kills the purpose. If any one knows how to overcome that, please share it.
I don't understand why MS can't include this one tiny but immensely useful feature into Windows 7. Isn't it better to have a basic functionality and then let others improve on it instead of saying, 'we have built the API, so let some one write an application and let other pay to use it'? If MS wants the computers that run their OS to be the epicenter of household entertainment, simultaneous output to multiple devices would be a great tool to have built-in.
And don't tell me it's a tough thing to implement when we can have the video output to multiple monitors at the same time. If they do it for video, should audio be any different?
Comment edited on February 4, 2010, 5:07am
Comment edited on February 4, 2010, 5:08am
jijotomy, were you using the old version VAC or the newer one with Kernal Streaming for improved latency? It also claims to support multichannel audio (at least in Vista).
Re: my prior posting reference to a Realtek workaround
FWIW, it turns out that my fancy new Asus P7P55D-E Premium uses Via audio instead. Like the Win7 speaker mixer settings, the Asus-branded [Via] Envy HD control panel forces me to pick one output (speakers, digital out [HDMI], or S/PDIF) to the exclusion of others. (It overrides the Win7 mixer, too -- if I have both open and pick a contradictory source in the Win7 mixer, that is ignored.) I wonder if there is a Via/Asus equivalent to the Realtek workaround.
FWIW2, while I was streaming some music out over HDMI the EnvyHD control panel was able to simultaneously send a test sound to the analog speakers without having to switch the default source. (Both sounded great.) So apparently my hardware can handle digital & analog output simultaneously, even from independent sources, if software supported it.
@CraiginNJ
64-bit signing of drivers is a requirement for any 64-bit windows. The developer is going to have far less sales from ordinary users who don't know how to do the work around to enable developer signed drivers to work. So yes they will lose money. Plus they already have a 64-bit system as otherwise they wouldn't be able to compile a 64-bit version.
Also, allowing for developer signed drivers does not compromise your system in anyway because you still get prompted that it is not a signed driver. The only difference is that you can click on continue to allow it to then load. It's never automatic. It has to get your permission to load it.
@jijotomy
Audio and video are completely separate things when it comes to multiple outputs, so you can't compare them. Video is simply outputting an image to one video port and then the same thing on another video port. Each with their own resolution and whether it is a mirror or an extended desktop. The image does not change.
Audio is much more complicated then that. You are assuming it is simple because you're not the one having to implement it. We know the hardware is capable of it, but there are so many more options and configuration details.
For example if it is ac3 audio with analog out it needs to check how many analog channels of audio the system has and if it needs to, down mix it to the number that the computer has. Then for the digital out, it has to be told if it should send the audio compressed or uncompressed. If it's compressed, it has to be a reciever who can decode the ac3 audio. If it's uncompressed, it will only be 2 channels of audio or if it's hdmi out, then it can be up to 8 channels of uncompressed audio depending on how many channels of audio the ac3 audio had.
Now that is for one sound card. You also gotta deal with dts audio, dolby digital plus audio, etc. Multiply that configuration by the amount of sound cards you got in your computer and it starts to get complicated.
Unless you only want 2 channel audio and never surround sound audio, which is perfectly fine, that's ok. But the only way I'd want it is by that amount of detail in the configuration, no less. The reason why it's simple for skype to implement is because it deals with 2 channel audio only, so of course it can send out the audio on all sound cards because they all support 2 channel audio. It doesn't have to deal with the multitude of audio codecs that the detailed configuration is gonna need.
Plus when setting up a media center pc, I like to upscale my audio by expanding it from 2 channels to 5.1, or if it's already at 5.1 leave it at 5.1, and be automatically encoded into ac3 audio. I do that through ac3filter. But the effect even in windows xp, is that then I only get audio through the digital port, not the analog port when it does that.
So it is not as simple as you think it is. If it is so important to you, the api's are available. Make it as a plug-in in windows media player, there's one already for winamp and it can play video, or even better, create an audio driver that allows you to specify these kind of options so it's system wide. I know we'll look forward to it when you're done.
@pyrates: Thanks for charting out all the complexities with the different audio formats and devices. Whoa, it certainly looks more than what the Windows 7 team can handle! And I was thinking it would have been easier than building the hardware and the API's (pardon me if both are the same).
And I liked the challenge thrown at me. I have a (very old) Lexus 4WD SUV. As a 4WD it can power up all 4 wheels. What if they had told me: 'Hey, we have built the hardware for 4WD in your car. To activate it, you may either install a controller at your local mechanic or better build yourself one. Let's know when you built one so we may also know how to do it"!
@noone: Is there a job vacancy for defending Microsoft in these pages? I'd like to apply for part time.
Here's one potential workaround that I've been using:
http://www.vistaaudiochanger.com/
It doesn't allow simultaneous, but you can at least automate the switching of channels based on applications and use hotkeys ( which means it's sciptable with stufff like autohotkey ) to switch on demand or when performing certain tasks.
If anyone finds some sort of powered device that will take optical in and split it into optical out (with no loss of resolution) and analog ( 2 channel is fine ) let me know!
@ msthilaire: I read about this on either this or another forum. I resisted doing this for months thinking that I would find some software workaround but after following this forum finally decided on this for now. I split the digital audio out signal from the computer with a coaxial splitter ($15), you can get an optical splitter for about $6. I ran one digital signal directly into my home theater amplifier and the other into a Gefen digital audio converter (http://www.gefen.com/kvm/dproduct.jsp?prod_id=5980). I am only using Dolby 5.1 so this works fine for me. The output from this device is anaolg L/R audio which then also goes into my amplifier to privide the signal to the other zones which needed an analog signal. Problem solved for now. The setup was effortless and it worked exactly as billed with no problems. Hope this helps until there is a solution from Microsoft.
@blanco815: I was hesitant to go this way because I'm worried the optical signal would be too weak after splitting. I saw a lot of reviews on the splitter indicating it didn't work, but after reading them a second time I think half of them were trying to use it in reverse and/or maybe had some other issue.
I like the Gefen unit because it's powered, and very reasonably priced, no switching, etc. I too need RCA output since thats what my Niles multizzone amp needs.
I ended up buying an optical splitter for $4, Gefen DAC $54, and a 3' optical cable to couple the splitter with the DAC. All from Amazon.com, I think final total with shipping it'll be around $75.
I'll let you know how it goes, looking forward to having music in my media room and in the rest of the house at the same time again.
Now if I can only get my Auzentech Prelude to output DTS or DD without hiccups, but thats a whole other story.
That may work for plain stereo audio, which is uncompressed 2 channel audio. But when you send it a compressed audio codec like ac3 or dts, it will only come out of the digital link because it doesn't look like it does any kind of decoding and then down mixing of the audio to stereo for the rca output. So when you watch a movie with surround sound, you're only gonna get it out of the digital link from the Gefen DAC and not the analog one.
Hmm that could be a problem if I set the default to be DTS on the audio console.... I'll make sure to test that out.
Currently DTS doesn't work very well (choppy audio) with my sound card though, so it will only become an issue when they finally fix the drivers.
liebezeit wrote on November 4, 2008, 12:11am
Changed problem description.