Technical question for hcs about ADX by gomtuu at 6:04 PM EDT on April 9, 2006
Hello. I've recently run into the ADX format while trying to rip music from a PS2 game called Stella Deus, so they're kind of new to me.

I found your Winamp plugin and I'm excited about the fact that it supports ADX looping. However, I'm a little frustrated by the fact that different ADX decoders seem to produce output at different volumes.

From what I understand, everybody's ADX decoders come from code written by somebody named "bero," but at some point someone decided his output was too loud because it was making some games clip, so they changed the BASEVOL setting in his code. Some decoders, like adxutil 1.0 and bero's own adx2wav 0.2, use the higher value, while others, like adxutil 2.2.1 and in_cube 0.18, apparently use the lower value.

I've done a test where I encoded a WAV into an ADX using adxencd, then decoded it with all four of the utilities mentioned above. The first two produce a WAV that's about the same as the original. The last two produce WAVs that are about half as loud as the original. When I turn on in_cube's Low Volume setting, its output is even quieter.

(BTW, the reason I did this test was because I was noticing the same volume difference between different players when I was decoding the ADX files from the game, so I don't think it's my encoder.)

Can you explain this issue? Am I perhaps doing something wrong?

Thanks,
-gomtuu
by hcs at 7:34 PM EDT on April 9, 2006
Different developers used different gains on the ADX decoder, there's no one value that works well everywhere. I find it's best to err on the side of too quiet, it reduces clipping and distortion issues.
Something that's planned for the next version on in_cube (which might be a ways off) is fully adjustible volume.
by gomtuu at 4:31 PM EDT on April 10, 2006
That just seems weird to me... But, ok, thanks. I guess I'd just hope then that you'll allow numeric input of the gain value (which I assume will control the BASEVOL setting?) and not just a slider.

Thanks again, I do like your plugin!
-Don
by hcs at 9:26 AM EDT on April 11, 2006
Numeric input, yes.

Another thing which has been suggested (as ADX playback seems to be the most popular feature of in_cube) is looking up volumes in a configuration file, for a set of ADXs.
by gomtuu at 6:55 PM EDT on April 11, 2006
That's not a bad idea.

It may also be possible (I have no idea since I know nothing about Winamp plugins) to preprocess the file and normalize the output.

I've also been doing some analysis of the Stella Deus ADX files (which render nicely at the older, higher volume setting) and the clippy Silent Hill 2 ADX files to see if that would yield any insights. Basically, I wrote a program that went through a file from each game and counted the number of times each "scale" value (the first two bytes of each 18-byte chunk) occurred in the file. Unfortunately, it didn't lead me to any easy fixes (for example, an easy fix might've been if the minimum scale value for the Silent Hill 2 ADX files was some really high number X and you could just subtract X from all the scale values), but it did reveal that the distribution of scale values in the two files is very different, as you'd expect. If you're interested, I can post my findings somewhere. It might be possible to have an ADX decoder do a similar analysis and get some useful information from it.

-Don
by hcs at 8:44 PM EDT on April 11, 2006
I'd rather not have the plugin do any analysis. kode's ADPCM plugin does some scaling for ADX.


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source