
IMA ADPCM Audio Tool is a console utility for converting 16-bit PCM WAV files to the IMA ADPCM layout used by EuroSound 3 and back. It supports mono and stereo audio, either as headerless data or inside a RIFF/WAV container.
Features
- Encode 16-bit PCM WAV files (mono or stereo) to raw IMA ADPCM.
- Decode raw IMA ADPCM files (mono or stereo) to 16-bit PCM WAV.
- Store the same EuroSound-compatible ADPCM payload in a RIFF/WAV container.
- Headerless output compatible with the layout used by EuroSound 3.
- Independent IMA predictor and step-index state for each stereo channel.
- High-nibble-first IMA ADPCM packing.
- Input validation, useful exit codes, and optional exact sample trimming when decoding raw data.
When the output name ends in .wav, the encoder wraps the EuroSound-compatible ADPCM payload in a RIFF/WAV container containing its sample rate, channel count, and exact sample count. Any other output extension writes that same payload without a header.
The container uses a private format identifier so the payload is always recognized as the EuroSound variant.
Each encoded byte contains two consecutive samples from one channel:
- The first sample is stored in the high nibble.
- The second sample is stored in the low nibble.
- The initial predictor and step index are zero.
Mono files contain one continuous encoded channel.
Stereo files encode the left and right channels independently and interleave the resulting bytes as follows:
L0 R0 L1 R1 L2 R2 ...
L0 and R0 are complete ADPCM bytes, not individual nibbles. This is the stereo interleaving expected by EuroSound 3.
The encoded size is:
ceil(samples per channel / 2) * channels
When decoding raw data, the sample rate and channel count must be supplied explicitly because the file does not store them. A RIFF/WAV input is detected from its contents and supplies this information automatically.
Download
Download the latest version here:

Usage
Encoding WAV to IMA ADPCM
ImaAdpcmTool.exe <InputFile> <OutputFile>
Example:
ImaAdpcmTool.exe "input.wav" "output.adpcm"
EuroSound IMA ADPCM WAV-container example:
ImaAdpcmTool.exe "input.wav" "output.wav"
The encoder reads the channel count from the WAV file. The input must be uncompressed PCM, 16-bit, and either mono or stereo.
Decoding IMA ADPCM to WAV
ImaAdpcmTool.exe Decode <InputFile> <OutputFile> <Frequency> <Channels> [--samples <Frames>]
<Frequency> is the original sample rate, for example 22050 or 44100.
<Channels> is 1 for mono or 2 for stereo.
Mono example:
ImaAdpcmTool.exe Decode "mono.ima" "mono.wav" 22050 1
Stereo example:
ImaAdpcmTool.exe Decode "stereo.adpcm" "stereo.wav" 44100 2
--samples removes padding samples when the exact original frame count is known:
ImaAdpcmTool.exe Decode "sound.ima" "sound.wav" 22050 1 --samples 12345
To decode a EuroSound IMA ADPCM WAV container, frequency and channels are not required:
ImaAdpcmTool.exe Decode "compressed.wav" "decoded.wav"
Supplying the wrong frequency changes playback speed. Supplying the wrong channel count changes how the raw bytes are interpreted.
评论