We recently had a bug reported to us internally. The user of a Toshiba M7 had installed Vista on his machine (which was previously running XP) and discovered that he didn’t get any more sounds from his machine after the upgrade.
We tried everything we could to figure out his problem – the audio system was sending samples to the sound card, the sound card was updating its internal position register, everything looked great.
Usually, at this point, we start asking the impolitic questions, like:
“Sometimes some dirt collects between the plug and the internal connectors on the sound card – could you please unplug the speakers and plug them back in?” (this is the polite way of asking “Did you remember to plug your speakers in?”).
“Sometimes a set of speakers only turn on the speaker when they detect a signal being sent to them, could you try wiggling the volume knob to see if it fixes the problem?” (I actually have one of these in my office, it’s excruciatingly annoying).
“Is it possible there’s an external volume control on your speakers? What’s it set to?” (this is the polite question that catches the people who accidentally hit the mute button on their speakers or turned the volume down – we get a surprising number of these).
Unfortunately, in this case none of these worked. So we had to dig deeper. For some reason (I’m not sure why), someone asked the user to boot back to XP and see if he could get sound working on XP. He booted back to XP and it worked. He then booted back to Vista, and…
The sounds worked!
He mentioned to us that when he’d booted back to XP, the sound driver reported that the volume control was muted, so he un-muted it before booting to Vista. Just for grins, we asked him to mute the volume control on XP and boot into Vista and yup, the problem had reappeared. Somehow muting the sound card on XP caused it to be muted in Vista.
We got on the horn with the manufacturer of the system and the manufacturer of the sound card and they informed us that for various and sundry reasons, the XP audio driver twiddled some hardware registers that were hidden from the OS to cause the sound card to mute. The Vista driver for the sound card didn’t know about those special hardware registers, so it didn’t know that the sound card was muted, so Vista didn’t know it was muted.
Needless to say, this is quite annoying – the design of the XP driver for this machine made it really easy for the customer to have a horrible experience when running Vista, which is never good. It’s critical that the OS know what’s going on in the hardware (in other words, back doors are bad). When a customer has this experience, they don’t blame their system vendor or their audio driver, they blame Vista.
The good news is that there’s a relatively easy workaround for people with an M7 – make sure that your machine is un-muted before you upgrade, the bad news is that this is a relatively popular computer (at least at Microsoft) and sufficient numbers of people have discovered the problem that it’s made one of our internal FAQs.