ADPCM Overview

Adaptive Differential Pulse Code Modulation (ADPCM) is a lossy compression format, which means that some data is altered and lost during compression. ADPCM can achieve compression ratios of up to 4:1.

The implementation of ADPCM for XAudio2 provides additional features to specify the size of the compression sample block. ADPCM enables the audio designer to choose a setting that is an appropriate compromise among size, quality, and resolution (for placing loop points).

Because XAudio2 implements ADPCM compression with a configurable sample block size, XAudio2 ADPCM is not compatible with “legacy” ADPCM formats such as IMA ADPCM or Microsoft ADPCM. XAudio2 requires ADPCM content created with its own ADPCM Command-Line Encoder tool. And conversely, content encoded in XAudio2’s ADPCM format requires explicit support for an external audio authoring or rendering engine to decode it.

ADPCM Encoding

Encode audio data to ADPCM using the ADPCM Command-Line Encoder command-line tool.

ADPCM Playback

Use XAudio2 to play back ADPCM audio on Xbox One. To do so, begin by initializing a WAVEFORMATEX structure with ADPCM specific values, and then pass that structure as an argument to IXAudio2::CreateSourceVoice when you create a source voice. For an example of loading and playing a sound in XAudio2, see How to: Play a Sound with XAudio2.