[wdmaudiodev] Re: Changing default audio device in Windows 7.

  • From: Hakon Strande <hakons@xxxxxxxxxxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 17 Jun 2009 19:15:05 +0000

Last one from me on this:

The SYSTEM default device is the SYSTEM's choice (with system provided user 
control) for ALL applications. It is clearly unwise to allow a single 
application (including IHV provided control panel applets) to change a setting 
that affects ALL OTHER applications.

Since normal apps (as opposed to IHV CPLs) that provide user control features 
can easily enumerate the available devices in the system and expose these to 
the user for selection of the app sink WITHOUT using the SYSTEM default device 
at all (that is just one way -admittedly easy - for an app to find a sink for 
the audio data). If apps want to provide full control for their users they can 
- there is no need to muck with the SYSTEM default device so don't do it.

The elephant in the room is to me really the IHV provided device control panel. 
These alternative/complimentary/replacing  audio device control panels try to 
augment or in most cases take over the role of the SYSTEM (OS) as middle-man 
between device and all applications. This is the problem that we in the past 
tried to solve by allowing IHV extensions within the SYSTEM audio control panel 
so SYSTEM only controls (like setting the SYSTEM default device) could be found 
by the user in one place along with 3rd party device value add controls.

Because in today's PCs there are often multiple different audio devices from 
different IHVs (think USB headphones and HD Audio integrated speakers) the 
solution is not as easy as creating a special "IHV control panel access" to the 
default device because both IHVs would then potentially have a "default device 

I am sure the Windows Audio team will appreciate serious, thoughtful 
suggestions  that takes ALL aspects of this problem into account. :)


Hakon Strande<mailto:HakonS@xxxxxxxxxxxxx> | Software PM | Microsoft Hardware | 
(p) 425.705.0637

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of AI Developer
Sent: Wednesday, June 17, 2009 1:48 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Changing default audio device in Windows 7.

Tim Roberts wrote:
AI Developer wrote:

Having said that, I would like to propose that Microsoft provides documented 
ways to do at least two of the following:

a. Change the default audio device.
b. Change the format used by the audio device.

I think it would be perfectly okay to restrict access to these APIs to admin. 
privileged users.

But that's not the point.  The user ALREADY has the ability to set the default 
audio device.  What you want is a way for your APPLICATION to change the 
default audio device.
That's exactly what I was saying. A user doesn't use an API  - an application 
that the user runs, uses the API. I stand corrected.

The basic issue here is one of philosophy, not technology:
I agree.

Who should be in charge of the user experience?  Should it be the user, or 
should it be the applications?  With the Vista audio design, Microsoft has 
chosen to put the user in charge of the user audio experience.
I disagree. With the Vista audio design, Microsoft has not chosen the user, but 
their own GUI  (the Audio CPL) in charge of the user experience. The user does 
not have a choice!

In other words, we still want the *user* to choose the default audio device, 
but using our application/GUI, rather than using the MS provided GUI.

Whether or not I agree with that decision (and I'm not sure I do), I understand 
completely where it came from.

I can also understand that. However, I do not agree with that decision - for 
the simple fact that due to that decision, a lot of users are having a bad 

You, like most device folks, are focused on your device.
Having focus is a prerequisite to building reliable software!

For you, it is the most important thing in your computer, and you want to 
believe that is the case for everyone who uses it.
You presume, and wrongly! Having focus in one aspect does not necessarily mean 
being ignorant of other aspects.

Further, you are focused on making your device work in the two or three test 
case machines you have at your disposal.
That is also a wrong assumption. My focus is making my device work on thousands 
of machines on which my device is being used.

  You aren't really thinking about the untold millions of different audio 
software and hardware combinations out there, many of which would not make 
sense with your design.
Again, your presumptions are incorrect.

  Microsoft HAS to worry about those millions of design combinations.  As Spock 
told us, the needs of the many outweigh the needs of the few.
It seems to me that you are again presuming that there is no Win-Win solution. 
Just because you couldn't think of one, does not mean that no solution exists.

BTW, I'm sure the Vulcan would first try to find a Win-Win solution using his 
logical ways.

If they opened up the APIs for your case, then the APIs will be available for 
EVERY case.  Once that happened, driver writers would start abusing them again, 
resulting in mass confusion for the general public, leading to the end-user 
grumbling that led Microsoft to make this change in the first place.
I just hope that people at Microsoft put more thought into the matter.

There are scores of other APIs available for driver writers to abuse already, 
so that's a rather weak argument at best.

There are more varieties of network cards, protocols, and services out there 
than audio devices, yet, Microsoft provides the Network Configuration APIs, 
which, if we were to take your argument, would result in an even bigger mass 
confusion for the general public.

The same goes for APIs for changing active video devices, resolution, removal 
of devices, etc.

Not only that, the current stand by Microsoft is forcing developers to use 
undocumented techniques, which has potential for more confusion, than your 
imagined chaos. Perhaps the end users are grumbling more because of what 
Microsoft has done now!

I'm sure the intelligent folks at Microsoft are capable of coming up with 
solutions that do not lead to mass confusion, and yet provide the functionality 
that's required by the few, to get their stuff to work right on Windows.

****************** WDMAUDIODEV addresses: Post message: 
mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: 
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: 
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: 
mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: 

Other related posts: