When it first launched, many people complained that audio support under
Windows Vista was worse than under XP; audio glitches were common, especially
when switching between applications or moving open windows around the desktop,
and Vista even struggled to play an MP3 file.
The source of the audio woes was the total redesign of the way Vista handled
audio. Microsoft had been dismayed by the number of crashes caused on its
previous operating systems due to problems with audio drivers.
It took the issue so seriously that by default it turned off the audio stack
in Windows Server 2003.
Its plan for Vista was to avoid these issues by removing much of the audio
functionality from the operating system’s kernel. The advantage of this is that
if the audio system collapses it doesn’t drag the whole OS down with it.
The disadvantage was that existing drivers needed to be rejigged to work.
The new audio system is quite complex because it involves a new driver format
called WaveRT (see the last page of this feature), three new APIs, plus the use
of Vista’s Multimedia Class Scheduler Service (MMCSS).
The MMCSS allows applications to request high-priority processing from the
CPU when working on time-sensitive processes such as playing audio – audio data
needs to arrive in sequence and on time to the soundcard to avoid gaps and
glitches in playback.
It didn’t help that the WaveRT driver specification underwent significant
revisions just before the final version of Vista was released. This late change
meant some early drivers were written to the older specification rather than the
newer version; it’s this that caused some of the glitches.
Reader comments