Tuesday, October 21

Vista has a "nifty new feature" where you can adjust the volume of each application independently.  But Microsoft's implementation of this "nifty new feature" is so bad that it could cause hearing loss for some people.

Essentially, you have two volume controls for each application.  First off, you have a "device volume" which is the volume control for your audio device.  Every application shares this volume setting, and this volume setting persists across reboots.

Second off, you have a "per application volume" which is different for each running application.  When an application starts this defaults to 100% volume, and if you adjust this it's typically not saved across application reboots.

The UI that microsoft presents gives you a sliding volume control for each of these volumes -- one for the device and one for each running application.   The running application's volume control is depicted as having the potential full range of volume of the device.  If you adjust the application's volume above 100% the device volume gets adjusted upwards to make this work.

The problem, unless you have really awful hardware, is that to get good dynamic range from your sound system you need to have the device volume set high and rely on the application to keep sounds mostly quiet.  If you do this, you can get really nice quality sound.

But if you do this, other applications [and windows itself] can be so loud that they can damage your hearing.  And if you try turning off windows sounds you will still have a "beep device" which runs at full volume.  And you can disable that device if you try hard enough, but some later windows update might re-enable it.

So, you have a choice: shoddy audio quality or hearing loss.

Now, hypothetically, someone could write a third party application which modifies windows and addresses this problem.  But would it always work?  What if, for example, someone is running a real time application (maybe a game) that prevents the third party audio safety application from getting enough time slices and you wind up with a second of damagingly loud beep, or something like that?

I wonder what conditions would have to arise for Microsoft to be hit by a personal injury lawsuit from this issue?  Certainly this issue is so poorly documented that they haven't taken any steps to prevent such a lawsuit (like: including rudimentary configurable mechanisms in their default volume settings).

But wait, Windows XP was worse, why is this a Vista problem?

XP did not advertise the ability to set application volumes independently.

Fortunately for Microsoft, this should not be hard to fix without any major redesign.  All they have to do is arrange so that the system volume (which is used for windows' beeps) is inherited by all starting applications.  Then allow the user to adjust application volume up without changing the volume setting that newly started applications would use.

This would probably require an internal layer of abstraction that Vista currently doesn't have, but it's not like Microsoft couldn't afford to create that.

No comments:

Post a Comment