Modelworks
Lifer
I was writing some automating scripts for windows 7 when I noticed there didn't appear to be a way to control the default playback device via software. It seems since vista MS decided programmers shouldn't be able to access the sound controls directly. It may not sound like a big deal but it has caused a headache for a lot of developers. Some examples of things you could do with XP that cannot be done with Vista + OS.
Change the output for running applications based on user input. If I start windows media center on a 2nd display but forgot to switch the audio output I can issue a remote command to do so.
Set up macro applications that automatically configure audio devices based on task. I could press one key for voip and the mic would be selected for recording, the levels adjusted, the output device selected for headphone. When turning off voip it would reset all sound to the original setup. Play a game or movie and have scripts automate the sound settings for that as well.
So I started checking out the MS site to find some answers hoping there was a work around. what I found really angered me, the attitude from MS was one of omnipotence.
http://social.microsoft.com/Forums/en-US/Offtopic/thread/9ebd7ad6-a460-4a28-9de9-2af63fd4a13e/
Programmers in the thread even asked about well if it is so important MS not allow changing of devices then how about a simple control panel setting that the user has to set to allow things like scripting
And the response:
This is the typical , well if you have old applications not specifically written for our new OS , they are the problem and we are not going to help you .
Change the output for running applications based on user input. If I start windows media center on a 2nd display but forgot to switch the audio output I can issue a remote command to do so.
Set up macro applications that automatically configure audio devices based on task. I could press one key for voip and the mic would be selected for recording, the levels adjusted, the output device selected for headphone. When turning off voip it would reset all sound to the original setup. Play a game or movie and have scripts automate the sound settings for that as well.
So I started checking out the MS site to find some answers hoping there was a work around. what I found really angered me, the attitude from MS was one of omnipotence.
http://social.microsoft.com/Forums/en-US/Offtopic/thread/9ebd7ad6-a460-4a28-9de9-2af63fd4a13e/
In reading through the history of this post, I think you've all done a great job in highlighting the challenge of managing a machine with multiple audio devices and multiple applications attempting to use those devices for different purposes. That challenge was one of the driving decisions behind leaving control of the default device to the user and not opening that up for programmatic control. The current paradigm is one in which the application itself is given a rich set of API's to allow it to select the device it wants to send audio to as well as provide the necessary UI to the user so that their feedback into this selection process can be obtained. One of the choices those applications have is to use the default device, and based on current OS design, the choice of the default device is best left to the user.
With that said, we do so see the need for the OS to make better decisions on how to manage machines with multiple audio devices and based on the scenarios I've seen discussed in this thread I think our internal thinking on this subject is on track. I look forward to being able to share with you advancements we are making in this regard. I hope many of you are planning on attending WinHEC, where you will be able to get a first-hand look at the work weve been doing in the audio space.
Richard Fricks
Program Manager, Windows Audio
Programmers in the thread even asked about well if it is so important MS not allow changing of devices then how about a simple control panel setting that the user has to set to allow things like scripting
What is missing from the bigger picture, IMO, is an 'audio device chooser' to select the playback and/or recording device to be used for that application, with a common user interface across all programs. MS should have provided this long ago, IMO, and are they (and we!) are now sufferring as a result. What we have now is a mess, and don't get me started on the behaviour of some USB devices.
And the response:
I'm not sure why you'd want to set the default audio device for just the application - most of the rendering APIs in the system allow you to specify which output device you want to use (the big exception to this rule is the WMP OCX).
This is the typical , well if you have old applications not specifically written for our new OS , they are the problem and we are not going to help you .