History Lesson: PC Audio Usability

Before getting deep into Vista audio, I want to relate some history, and give a little bit of my perspective on PC audio.  (Note: I have a tendency to use "PC audio" to mean "Windows audio".  No slight intended on Linux folks.)  I’m going to start by discussing current PC audio usability.   Put simply, it sucks.

At its most basic, the usability problems are pretty simple: when Aunt Bee gets a new email from Opie, she simply wants to hear "You’ve Got Mail!"  She doesn’t want to think about hooking up the speakers, turning on the speakers, finding and installing drivers that actually work, finding the sound control panel, finding the other sound control panel, unmuting the audio, setting the volume, configuring her mail reader to blurt "You’ve Got Mail!" when Opie emails her, re-hooking up the speakers because she got it wrong the first time, turning the volume up on the speakers, etc., etc., etc….. 

It’s just too much for most end users to deal with.  Heck, it’s too much for me to deal with, and I develop these things! 

What most people want and expect is the same experience they get with their TV: they click a button to turn it on, and then hear audio.  It may be white noise – but they hear something.

Yah, a bunch of people hook up Home Theater systems to their TVs (and their PCs – that’s a future blog article), which takes more equipment and special configuration.  But it’s not the default: it’s an option that can be safely ignored.  The important thing is that the TV’s home theater option doesn’t get in the way of Aunt Bee from hearing her soaps when she turns on her TV.  For the base – and most common – case, the TV still just works.  (Now, of course, Andy could install a Home Theater system for Aunt Bee as an Earth day gift, and then Barney could come over, eat all Bee’s pretzels and futz with the remotes that Andy told Bee to never, ever touch except for these four buttons right here…..  But at least out-of-the-box Aunt Bee can happily watch & listen to her soaps.)

PC audio, though, simply isn’t there yet.  Many systems don’t even come with speakers, let alone allow for easy configuration. 

Take, for example, the main Windows volume control:

What are all those sliders?  I dunno, but, let me assure you, they certainly aren’t what you’d expect them to be. Like you’d maybe expect CD Audio to control your,
well, CD audio.  But it’s hit-or-miss: it depends on how your CD drive is
wired into your system and what app you’re using to play your CDs.  And PC Beep reminds me of that scene in Office Space when that guy is trying to figure out the fax machine:

                            PC load letter?  What the f- does that mean?!

Let’s take a second and contrast this with the Mac.  Now, I’m not anywhere close to being a Mac apologist.  We are a dual-OS household, and our iMac frustrates me much more than any of our PCs.  But Macs do have one thing nailed: the audio.  But every iMac ships with either built-in speakers, or a pair of external speakers.  They’re not great, but they’re good enough for Aunt Bee (and the external ones even look nice).  The volume control is in the top-right corner, and there’s only one:

A keen observer may note that Windows does have a little system tray icon that only displays a single volume knob, but it is hit-or-miss w/rt showing up, and it’s really just hiding all but one of those volume controls in the main control panel.  In the Mac world, there is only one playback volume control, as far as I can tell.

But there’s extremely good reasons why Windows audio is so convoluted.  It mostly comes down to two: the need for legacy support, and Windows’ open audio architecture. 

The legacy support requirements means that MS has a real hard time fixing any of the braindead issues: just removing one of those crazy volume controls would be a heroic effort. 

Legacy support is what it is, but I want to focus on the other issue: Windows’ open audio architecture.  The open architecture means that guys like me have way more control over the end-user’s audio experience than we really should have.  Microsoft sets some basic ground rules, but then we can do whatever we want outside of that.  Want to support a 46-channel soundcard?  Sure, no problem.  Want to expose it as a single 46-channel device?  Sure.  Or how about 23 stereo devices?  Sure.  Well, how about both a 46-channel device and 23 stereo devices?  Yeah, of course we can do that, too.  (A similar example just came up on the wdmaudiodev mailing list – there’s actually legitimate reasons for doing something like this). 

Now I’m certainly not suggesting that codec vendors should be left out in the cold: we certainly can and do add huge value to Windows audio – in fact, too much value.  The problem is that the open architecture is somewhat of a crutch for Microsoft.  Because we have such free reign, Microsoft hasn’t had to sweat too many of the PC audio details.  Yeah, the built-in controls suck, but system manufacturers that care can get codec vendors to produce new control panels.  And we do: each codec vendor has its own, custom-tailored control panel.  And though the control panels do pretty-much the same thing, they’re all fairly different from each other: different look & feel, slightly different controls, etc. 

Take, for instance, the speaker wizard.  Almost all of the vendors’ audio control panels have some sort of speaker wizard that will help you plug the proper speaker into the proper jack.  Some are more hand-holdy, with the "did you hear the sound?…  Okay, where did you hear the sound?" type of dialogs, while others are of the click-the-speaker-and-it-will-make-a-noise variety.  In this case, being different doesn’t really help: it just frustrates the end user, who really just wants to get his or her speakers working with as little thought about it as possible.

The thing is, none of us codec vendors really want to make a speaker wizard: we just have to because Windows doesn’t provide one.  Admittedly, we’re always happy to get some branding in front of the consumer, and a speaker wizard may not be a bad place to do it.  But it’s still a good chunk of work, and really not an area we want to focus on.  We’d rather be improving audio fidelity, adding Dolby Digital support, improving our device-discovery (JackSense) technology and GUI,  etc. 

And this is also no good for the consumer: what they really need is for Microsoft to spend a few hundred thousand dollars on usability studies, figure out the best way to lay out a speaker wizard for 85.777% of the population, implement that, spend a few more hundred thousand dollars on usability studies that that disprove the first studies, re-implement the speaker wizard, then be done with it.  Or at a minimum,  Microsoft’s audio GUI guy should build the speaker wizard, show it to some of the other developers, let them kibitz about it for a few weeks, then ship it.  This would make it on par with all the other speaker wizards out there – but then at least the consumer would get the same speaker wizard each time they pulled it up on a Windows system.

So now, almost every PC has at least two audio control panels: the Windows control panel, and the Codec vendor’s control panel, which may or may not include all the basic Windows audio controls.  Great: Aunt Bee is even more confused when she tries to get her "You’ve Got Mail!" working.  What’s worse, Andy can’t help her because his PC has a completely different audio control panel.

So what we need is for Windows to take care of the basics, and also enable codec vendors to enhance the audio experience.  And it should do this in a way that ties together the user interface into some sort of cohesive unit. 

As luck would have it, one of the main goals of Vista audio is to resolve some of the more glaring usability issues.  Next time, we’ll look a bit more at how Microsoft is going about this, and how it’s panning out so far. 

Let me finish, though, by saying that this isn’t going to be another "MS sucks" blog.  I have huge respect for the Vista audio team, and what they’re trying to accomplish.  It’s a great undertaking, and so far it looks like they’re generally succeeding.

Leave a Reply


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>