Of course, this isn't "really" what we want either. Really, we want an ioctl to tweak voladj, and to do true dynamic range compression (or expansion as needed) based on the true intent of the RVA2 tag.

Okay. either I'm misled on my definition of "dynamic range compression," I'm not understanding the RVA2 tag's purpose in life, or both.

My definition of "dynamic range compression" is that the amount of volume boost/cut changes as the music changes. This is what voladj does.

The other approach is finding the peak of a given track and normalizing to that peak. Thus, two tracks which each peak at different decibel levels could be normalized such that their peak volumes (not their average volumes) match.

The ID3v2 reference states that RVA2 frames contain nothing but a channel number (front left, front right, etc.) and a 16-bit number which specifies how much to boost/cut the volume. It mentions "identification strings" which I guess could be hacked to represent certain points in the song, but that's kind confusing, and the spec doesn't really tell you how to use them. I'd be interested to see how this normalize package writes these frames, and how it magically decides where to boost/lower volume. Could you enlighten me what you're going after here?

Edit: Okay, Google led me to the Normalize web page, and the readme:
Version 0.7 and up can operate directly on MPEG audio files. An mp3 file is decoded (using Robert Leslie's MAD library) and analyzed on the fly, without the need for large temporary WAV files. The mp3 file is then "adjusted" by setting its relative volume adjustment information (technically, an "RVA2" frame is set in its ID3v2 tag). The advantage of this method is that the audio data doesn't need to be touched, and you don't incur the cost of re-encoding. The disadvantage is that your mp3 player needs to read and use relative volume adjustment ID3 frames. The normalize distribution now includes a plugin for xmms that honors volume adjustment frames. If you use an mp3 player other than xmms, you'll have to bug the author to support RVA2 frames in ID3 tags.

I see nothing about dynamic compression in there, really, it seems like raising/lowering the volume per-song... Not really Voladj-like, but more of a fixed +/- factor per song.. or am I reading that wrong?


Edited by yn0t_ (10/02/2003 12:02)
_________________________
- Tony C
my empeg stuff