Difference between Mp3gain and Replaygain
Reply #53 – 2008-02-13 19:05:50
I understand the design concept you explained in (1) and it seems reasonable to me. I also appreciate the approach of establishing a proper order out of the confusion of various tag formats. It's just a pitty that on the one hand mp3gain doesn't care about such a philosophy and foobar on the other hand doesn't offer any possibility, to keep these undo-information in a tidied-up form. The best possible solution however, would be achieved if foobar introduced it's own funtionality to undo gain changes - and convert the tag-mess created by mp3gain accordingly (I hope Peter reads this :rolleyes:). Perhaps that would be the most efficient approach, yes. Store "frame-gain" undo-information in the same format as mp3gain, but instead use either APE or ID3v2, depending on which tag-type is the primary one of the file. Then read mp3gain stuff and transfer the metadata accordingly. It's perhaps interesting to know how this weird situation came into being at all. At the early days of foobar and mp3gain, APE-tags in mp3s were something really exotic. It was something which theoretically is possible, but which typically isn't implemented in apps. Then two things happened: 1. Foobar was the first player to really push APE in MP3, by even defaulting to it. Because of the standards-mess which ID3v2 is, it tried to push APE as a replacement - a clean start - from ID3v2. APE basically can do whatever ID3v2 can, but does it cleaner, simplier and more reliable. The approach failed, because the inertia of ID3v2 was just too big. So foobar transitioned into a new strategy by defaulting to ID3v2, but adhering as much as reasonable to to the standard (for example by using unicode only, instead of anonymous system codepages). 2. MP3gain appeared. I can only guess as to its motives for storing undo information in an APE-tag, but i would suspect that the idea was "safety by obfuscation". As already mentioned, at the time nearly every player was unaware of APE. This means that other players would be completely blind to the APE-tag and just ignore it. So perhaps the idea was, to "hide" the undo-information from other apps, by using an unknown tag-type (APE). The results of the above are visible now.