Windows legacy audio components
From Wikipedia, the free encyclopedia
This article or section is in need of attention from an expert on the subject. Please help recruit one or improve this article yourself. See the talk page for details. Please consider using {{Expert-subject}} to associate this request with a WikiProject |
This article is in regard to the different deprecated audio components in older versions of Microsoft Windows. Windows Vista contains an overhauled entirely different audio architecture.
Contents |
[edit] Audio Compression Manager
Audio Compression Manager (ACM) is the Windows multimedia framework that manages audio codecs (compressor/decompressors). ACM can also be considered an API specification. A codec must conform to the implicit ACM specification to work with Windows Multimedia. ACM files can be recognized by their filename extension .acm
.
ACM is considered an outdated framework/API and Microsoft now encourages the use DirectShow. However, unlike ACM and the related Video Compression Manager (VCM), DirectShow provides no means to encode files for end-users but requires developers to build end to end graphs for encoding content. ACM also does not support VBR audio streams, therefore newer codecs like MPEG-4 AAC, Ogg Vorbis, FLAC etc. cannot be supported through ACM if using variable Bitrates. Note that, despite of many sources stating the opposite, Ogg Vorbis does work well with the ACM, e.g. when embedded in a RIFF File (such as a WAV or AVI File), providing the Ogg Vorbis stream is encoded at a constant bitrate.
[edit] KMixer
KMixer is the Kernel Audio Mixer driver, a part of WDM Audio in various version of Microsoft Windows which handles the mixing of multiple sound buffers into an output.
The tasks performed by KMixer.sys:
- Mixing multiple PCM audio streams
- Format, bit-depth and sample-rate conversion
- Speaker configuration and channel mapping
[edit] Controversies
The KMixer was designed to aid the applications by relieving them from the need to perform the mixing of audio streams, especially on low-end sound cards that didn't support multiple sound streams. However, it introduced some significant problems.
First, the latency of KMixer is around 30 ms and it cannot be reduced, because this component sits just right above the port class audio driver, so every audio stream, including those issued by DirectSound (except in cases of hardware mixing) and WinMM, come through the kernel mixer.
Then, KMixer tried to mix every data format that passed through it, even those which it did not support. It caused various problems with movie players that tried to pass AC3-encoded surround sound streams through S/PDIF output of the sound card to an external home cinema receiver.
A new kernel-mode API, Direct Kernel Streaming, had to be introduced in order to bypass the KMixer and avoid problems associated with it.
The Kernel Mixer is absent from Windows Vista, which features a revamped audio architecture.
[edit] DirectX Sound Libraries
Please refer to DirectSound, DirectSound3D, and DirectMusic