Hi chris, On Sat, Jun 06, 2009 at 10:10:16AM +0200, chris.com wrote: > This time I added the RG values (-9, -6, ...) to the mp3 files and told > foobar to apply non-losslessly the RG to the files and I removes all the > ReplayGain tags > I loaded the files in iTunes for it to add the SoundCheck data. > I noted the Volume correction iTunes applied for each song add came up > with the following table:
Wooohoow ... this is getting messy... If you let iTunes do its Volume correction you don't realy know what you'll get. Just to make sure we are on the same page here... iTunes knows two different ways of messing with the volume of a song and passing this information to a "normal" iPod. One is the so called "soundcheck" value, the other is the "volume". "soundcheck" usually contains information about how much adjustment the track would need to get to a reference volume (usualy 89dB but used to be +83dB). "volume" is the little volume slider that you have there per track, ranging from -100% to +100%. This is where the user usually gets to mess around with the volume because iTunes' algorithm that computes the soundcheck volume is pretty bad. Does your iTunes have a slider that is in dB instead of percent ? iTunes stores both of them in the iTunesDB and thus passes them to a "normal" iPod. Up until now it was common knowledge that only the "volume" value gets passed to an ipod shuffle. When you first sent me a copy of the iTunesSD that iTunes had generated I assumed that iTunes had simply read what was on the device (basically in the iTunesDB) and written that information again to the iTunesDB and iTunesSD. This would have ment that iTunes had started to somehow take the soundcheck value and pass it along to an iPod shuffle in fields that used to be "volume". I that true or did you have iTunes do its voluem analysis back then too? The data below seems like iTunes would have thought the raw material should have been adjusted by about -5 to -6 dB. > file rg Volume iTunesSD (decimal) > ------------------------------------------------------ > m9 -9 +3.1 00 00 03 +3 > m6 -6 +0.2 00 00 00 +0 > m3 -3 -2.4 ff ff fe -2 > p0 +0 -5.0 ff ff fb -5 > p3 +3 -7.8 ff ff f8 -8 > p45 +4.5 -9.3 ff ff f7 -9 > p6 +6 -10.1 ff ff f6 -10 > p75 +7.5 -10.8 ff ff f5 -11 > p9 +9 -11.8 ff ff f5 -11 > > where > file: m9 for -9, m6 for -6 > rg: the ReplayGain applied with foobar > Volume: Volume correction by iPod (Get Info function) iPod? isn't that iTunes? > iTunesSD: > The hexadecimal value found in the iTunes created iTunesSD file > > All files sound (more or less) the same > The p75 and p9 files don't sound exactly the same because they get the > same volume correction applied even though they don't have the same > volume. The p9 does sound louder that the p75, I guess ? > I only recovered the hexdumps of the iTunesSD that I join > If you want more information I'll redo the experiment > > So, it seems than *ipod 2nd gen shuffle* uses the integer ReplayGain > value with some crude rounding up algorithm. Rather crappy > By the way, http://www.ipodlinux.org/wiki/ITunesDB#iTunesSD_file doesn't > speak of a SoundCheck field but of a Volume field! > The range specified (0x00 - 0xC8) doesn't seem to correspond. > > What do you think? You seem to be right about that. What makes me wonder is the fact that so far nobody else seems to have found out that fact. Either nobody realy uses replaygain/volume. Or this is some new behaviour. If it is new, then in order to be compatible with 2gen shuffle (released late 2006) They would have to update the iPod's firmware. I don't know if that is possible at all. Which iTunes version are you using? And did iTunes update the iPods firmware? > P.S. Do you happen to have an algorithm lying around that can convert > the SoundCheck value to ReplayGain? I'm not that good at maths :( >From http://ipodlinux.org/wiki/ITunesDB (seems to be online again) > > X = 1000 * 10 ^ (-.1 * Y) > where Y is the adjustment value in dB and X is the > value that goes into the SoundCheck field. If you have X and want Y you only need to transpose it. Y = ln(X/1000) / ln(10) / -0.1 Here are some values to check if your computation is correct: soundcheck vs. dB =================== 100 +10.000 dB 500 +3.010 dB 900 +0.969 dB 1000 0.000 dB 1200 -0.791 dB 5000 -6.989 dB 10000 -10.000 dB cheers -henrik _______________________________________________ Bug-gnupod mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/bug-gnupod

