Windows audio components
From Wikipedia, the free encyclopedia
This article is in regard to the different 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 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 now considered an outdated framework/API and is long replaced by 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.
[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 can not 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.
[edit] DirectX Sound Libraries
Please refer to DirectSound,DirectSound3D, and DirectMusic