I love this application! I've followed the advice on how to create an iTunes-friendly tag using Replaygain data and it works great. Anyone know how to create a Windows Media Player-friendly version of the Replaygain data to replace WMP's PEAKVALUE and AVERAGEVALUE tags?
thanks for any help!
So far as I understand both concepts of volume "normalization" for playing back of audio files ...
- the free public domain ReplayGain method invented by David Robinson
- the Microsoft patent of volume leveling
... they are not compatible.
A volume-levelled music file will have a different playback volume curve than a replay-gained music file.
The volume-levelled curve (minimizes the distance between peak value and average value (... how is that "average" calculated?)) seems to be rather different from the aurally loudness curve used by ReplayGain.
Will say ... the "mapping function" between the volume related audio data in the file and the volume related data played back is different between both concepts.
The MS volume-leveling method behaves somewhat like an audio volume compressor or limiter, where "the mapping function includes a first portion and a second portion;applying the first portion of the mapping function to audio data in the audio file when the amplitude of the audio data does not exceed a threshold value; and applying the second portion of the mapping function to audio data in the audio file when the amplitude of the audio data exceeds the threshold value.".
The volume leveling method modifies the dynamic range of the audio data at decoding time.
In short, it limits the audio dynamic. It lowers the peaks and raises the quiet passages.
(Maybe it helps to think of an AGC Automatic Gain Control.)
The ReplayGain method is intended to balance the aurally loudness (german: Lautheit) of one music file in relation to other audio files.
The ReplayGain method provides two options:
- calculate a loudness index related to the files within an album
- calculate a loudness index related to all files regardless of their context.
There are no changes to the audio dynamic.
I'm not sure about the audible effects which might occur, when both methods will be applied simultaneously.
Patent application number: 20090323986
To Use Dynamic Range Control
Google search for "Apparatus for Audio Normalization"
Replay Gain - A Proposed Standard by David Robinson
DetlevD - thanks very much for that explanation and the additional info you've added to your post. It seems WMP has a "quiet mode" setting which I think is the dynamic range reduction processing you mention, and WMP also has a "auto volume leveling" feature which seems to be doing something similar in purpose and function to what Replaygain does. My understanding is that one can select one of these settings independently of the other (you can select one, or the other, both, or neither). I agree it does not seem possible to transform Replaygain data into anything meaningful for "quite mode" because they deal with different aspects of sound.
The Microsoft patent related to volume leveling (not quiet mode) appears to be Patent 7272235 and the subsequent patents you found. The descriptions do seem to admit there is some dynamic range compression under certain circumstances (only to avoid clipping at times I think), but overall it seems to describe volume normalization to accomplish what Replaygain accomplishes. I really don't care exactly what this patent does in detail, because I'm not interested in recreating Microsoft's way of volume normalization calculation. Instead, I'd like to find a way to have WMP use Replaygain data, if possible, when I select WMP's volume levelling feature, or least try it to see if it works better or worse than with WMP's data derived from songs. It seems WMP uses more sophistication than iTunes in this area since WMP has clipping prevention features that iTunes apparently does not, but I am curious to see if there is any improvement with Replaygain data.
Therefore I don't think the occassional dynamic compression WMP uses as part of its volume normalization approach is incompatible with Replaygain's overall purpose. I think the Microsoft patents referring to volume normalization describe that dynamic compression is used only when clipping is detected, which seems consistent with Replaygain's general recommendations for players to avoid clipping when using Replaygain per http://replaygain.hydrogenaudio.org/player_clipping.html. If WMP always dynamically compresses all music all the time for any use of volume normalization, then I agree there is no hope for meaningful use of Replaygain data in WMP, but that's not the way I read the patents. If that were the case I would also not understand the purpose of providing a "quiet mode" feature for dynamic control separate from a volume level feature for volume normalization.
If my understanding is accurate above (please correct me if not), then it seems theoretically possible to transform Replaygain data for WMP volume leveling, similar to what people do for iTunes Sound Check using $rg2sc. To do so, one whould need to figure out the exact calculation to perform on Replaygain data so that WMP reads this information correctly, and put this data into the proper tags. If this makes sense, has anyone out there attempted this or have more info to figure it out? My googling has not turned up anything to solve this, and I'm just guessing that PEAKVALUE and AVERAGEVALUE are the proper tag fields to play with. Any further insight or corrections to my understanding are appreciated!