TODO(ADX) by hcs at 2:37 PM EDT on October 19, 2007
1) fix all decoders I have control over to use scale+1 (in_cube, Rockbox) 2) have adxloop generate a valid ADX (I made modifications to do this for someone so they could actually put the modified files back in a game, but I don't know what happened to it..)
While you are at it, I think the "base volume" (fixed in in_cube) is wrong. Seems each sampling rates need different values (48khz sound well with ~0x4000, 24khz with ~0x2000, 16khz with ~0xC00, etc), or they get too amplified/distorted. Not exactly these values, just "lower sampling rate needs lower volume" (16khz with ~0x4000 sounds terrible and so on).
Oh, and could you include some option to play a file until the end rather than fading? A few ADXs have a proper ending after their loop end, but in_cube will always try to loop+fade out, or just stop if the fade is set to 0.
dag, if you're still around, do you have an example of a file that plays past the loop end as you say?
Regarding distortion, I've made a modification to bero's adx2wav to make it use scale+1, that fixed issues that someone else was complaining about, does that sound better?
Alright, I think we're golden now. Had a few math mistakes and thus had to fudge the constants, it's now working well with the 500 Hz cutoff it was meant to have.