Audio Compression Manager Drivers

The multimedia services of the Microsoft® Win32® application programming interface (API) provide extensible, device-independent audio support. The Audio Compression Manager (ACM) allows an application to convert data between different formats. The ACM is used by the WaveMapper, which automatically converts any wave file (even compressed files) into a format (usually PCM) which can be played by a sound card. In this way, an application can simply "play" a file without having to take its format or whether it is compressed into account. This makes compressed audio completely transparent to the user. Other applications can call the ACM to explicitly perform conversions.

By itself, the ACM is not capable of performing any conversions. Instead, it relies on installable drivers to perform specific conversions. These drivers are called codecs, converters, or filters. (Sometimes the term "codec" is used in a more generic sense, to refer to all three types of ACM drivers.) A codec converts from one format to another; for example, from PCM to MS-ADPCM. A converter converts between different types of the same format; for example; between 44 kHz PCM and 11 kHz PCM. A filter modifies the audio data without changing the format; for example, an echo filter might make a 44 kHz PCM wave file sound different, but it would still be a 44 kHz PCM file.

There are several ACM drivers which are automatically installed with the system. There are drivers which provide support for the compressed formats MS-ADPCM, IMA ADPCM, the GSM 6.10 standard, and the TrueSpeech voice coding format. There is also a PCM converter which converts between 8- and 16-bit PCM, between mono and stereo, and between different sampling frequencies. Other drivers can be installed at any time. The ACM provides API elements which allow an application to install a driver for its process only, preventing other processes from using it.