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.
