Sample ACM Drivers

The Windows NT DDK includes the following three sample ACM drivers:

IMA ADPCM Audio Codec
The IMA ADPCM Audio Codec, imaadp32.dll, converts between PCM and the IMA ADPCM format. This codec is optimized for speed, and illustrates how to design conversion routines to reduce computation time. It also provides a configuration dialog box. The first time the codec is opened, it tries to automatically configure itself by calculating its maximum sample rate.

Source files for imaadp32.dll are located in \ddk\src\mmedia\imaadpcm.

Microsoft GSM 6.10 Audio Codec
The Microsoft GSM 6.10 Audio Codec, msgsm32.dll, implements the GSM 6.10 voice encoding standard, originally developed for digital cellular telephone encoding. The codec converts between GSM 6.10 and PCM formats. Like imaadp32.dll, this codec provides a configuration dialog box, and also attempts to automatically configure itself the first time it is opened.

Source files for msgsm32.dll are located in \ddk\src\mmedia\gsm610.

Microsoft Audio Filter
The Microsoft Audio Filter, msfltr32.dll, is a single driver that provides both a volume filter and an echo filter. This driver supports a custom About box and a custom icon, which are explained in Providing a Custom About Box and Providing a Custom Icon.

Source files for msfltr32.dll are located in \ddk\src\mmedia\msfilter.

You should be able to easily create a new ACM driver by using these samples as models. The source code contains extensive comments that explain how the code works and how it should be modified to implement a new driver. You’ll see that, in general, all ACM drivers are very similar to each other, both in their functionality and in their code layout.