[Edit]
This post is rather technical (and long). Read it at your own risk. You might get some insight into Replay Gain, however.
After discovering Replay Gain, I have experimented a bit with it. I figured out how it works. Replay Gain changes the track volume in order to make all tracks sound at the same (apparent) loudness. I also have a proposal for a level meter to be implemented in Media Center.
I have started by figuring out how signal levels change using Replay Gain. It’s not difficult, but not so immediate either.
1) The source signal (the audio file) has a level that can be measured in dBFS (dB relative to Full Scale). It is usually normalized to peak at 0 dBFS (except for 0 dBFS+ signals, that I have described in
another post). It clips at full scale, or 0 dBFS. So the dBFS level is usually negative. Each audio track has an average level AVG (A-weighted RMS) and a peak level PK, both of which are calculated by Analyze Audio. However the average level is translated to Replay Gain (using the formula RG=-20-AVG, with AVG<0), and Peak Level is expressed in percent, while it would be better to express it in dBFS (PK=20*log10([Peak Level]). PK is always negative (again, except for the case of 0 dBFS+ signals).
2) After processing with Replay Gain the resulting signal has a different level. Replay Gain aims at making all tracks play at the same (perceived) loudness. Let’s express its level just in dB, as there is no absolute reference here. Replay Gain adjusts the level so that the (A-weighted) RMS value (AVG) is 20 dB below full scale. The soundcard clips the signal when it reaches 0 dB (in the scale after Replay Gain).
3) At last the signal traverses the entire audio system. When it comes out of the speakers the signal is a physical sound and has a level that can be expressed in dB SPL (Sound Pressure Level). There is a calibration standard, that has been used in the movie industry for decades, and corresponds to both the
Replay Gain standard and the
K-20 standard by
Bob Katz. A
pink noise recorded at -20 dBFS RMS, played through a single speaker, should correspond to 83 dB SPL. I have tried to do this calibration, although with a non-professional sound level meter (a
Nokia 5140i phone), and I found that 83 dB SPL is quite loud. I usually listen to music at a lower volume. (There is another standard where 89 dB SPL is used for calibration. It corresponds to the K-14 standard by Bob Katz.)
I have some confusion about the RMS reference level. The test signal mentioned above (Pink Noise -20 dBFS RMS) gives different results when using different programs:
• Replay Gain (analyzed by MC) is -0.78 dB, that corresponds to a -19.22 dB (A-weighted?) RMS value.
• CoolEdit calculates a RMS value of -19.91 dB using a 300 ms RMS window and the “0 dB = FS Sine Wave” setting (the “0 dB = FS Square Wave” setting gives a result 3 dB lower, RMS -22.91 dB).
• Using InspectorXL the RMS value oscillates around -19.8 dB using a 50 ms RMS window (and -20.2 dB using a 300 ms RMS window) and the “Peak-RMS Parity” option set (that raises the RMS value by 3 dB – see later).
So I don’t know which one is the correct RMS value. I’m especially confused by the artificial 3 dB boost that some programs can introduce as an option.
I think this chart explains the situation better than one thousand words (I am not an ASCII artist, though). In this case Replay Gain is positive.
PRE-RG =====================----------o dBFS
|(noise) |AVG |PK |Source Clip
POST-RG ============================---] dB
|(noise) |AVG |PK |Output Clip
SPL -------------------------------] dB SPL
|83 |103