Hello Sed, I recently had some IMA4 AIFC files I needed to decode, and came across your (well-documented!) program. Specifically these files came from a (formerly Mac-only) piece of software called Jammit (http://jammit.com). I needed to make two changes to your program: 1. The bits-per-sample value in the file is 0, so I had it assume 16. 2. The predictor values at the start of each packet are ignored. Instead, the last decoded sample for a certain channel's packet N becomes the predictor value for that channel's packet N+1. (Packet 0 has a predictor of 0, I think.) Without the second change, the file decoded but it had a very quiet amount of noise behind the audio. After investigating a bit I saw that the predictor values in the file are almost correct, but are missing the low 7 bits (which are used for the step index). Using the method described above gives the correct predictors. I'm not sure exactly how this new IMA4 method can be distinguished from the old method. Apparently other people have had the same issue, see http://shift.net.nz/source-code/ima4-codec/. I have uploaded one of these files if you want to take a look: http://www.mediafire.com/download/9cirjhhnpl31lz3/keys1.aifc For reference, you can decode this with iTunes or Quicktime and get the correct (noise-free) result. I've attached my edited version of your program -- I commented the places where I made changes. Do with it what you like! -onyxite