It seems the problem is this, and I refer to https://wiki.multimedia.cx/index.php?title=IMA_ADPCM for background. The site states that ADPCM codec perform the calculation [1] diff = ((sign/mag.)nibble + 0.5) * step / 4 The author then states possible optimizations, depending on whether the hardware can compute multiplications efficiently or not. The author (or an editor) realizes that the two optimizations don't compute the same result. He is correct. The optimization for hardware with poor multiplication...