Hello, i am a long time happy foobar user. I have long noticed something which may be a minor bug, though. If an mp3 file only has ID3v1 tags and i use mp3gain on it , after the replaygain undo info has been added as APE tags, foobar does not read the original tags anymore. This has been the case for as long as i remember and is still the behaviour i am seeing under v2b4. I hope I am making myself clear: it seems that if there are APE tags foobar expects ID3v2 tags and ignores ID3v1 ones if present.
in attachment an audacity-generated file of 10s of noise that triggers the described behaviour under fb2k 1.3, 1.6 and 2b8.
Don't use ID3v1 only, that is one thing.
As far as I understand, the ID3v1 spec cannot accommodate fields like MP3GAIN_MINMAX, MP3GAIN_UNDO, REPLAYGAIN_TRACK_PEAK and REPLAYGAIN_TRACK_GAIN . That explains why some other tagset is used - and yes the mp3gain application uses APEv2 (https://mp3gain.sourceforge.net/faq.php#tagbasics).
The thing is, an application needs to prioritize what to show. Your attachment has two tagsets (the one attached below has three) - what should fb2k do?
Show all you say? What is those two/three have different ARTIST tags, which one to show then? So applications prioritize.
foobar2000 seems to prioritize ID3v2 (being the most common among the developed ones), then APEv2, and I guess ID3v1 as a last resort.
Mp3tag seems to prioritize APEv2 over ID3v2 over ID3v1. You can however set it to ignore APEv2 (as described above - and you can set read/write/remove independently).
But with the foobar2000 priority, then - if I have understood correctly - mp3gain works just fine as long as you started out with some ID3v2-tagged file (fb2k can convert to ID3v1+ID3v2 for you). Then mp3gain writes APE, which foobar2000 suppresses as priority is given to ID3v2 - and if you need to undo mp3gain, then it will read the APE. I think.
You can also consider going APE altogether, but since everything around is so ID3 focused, I gave up on that myself.
Oh, and: to check priorities of various applications, attached is a version with both ID3v1, ID3v2 (v2.3 to be more precise) and APEv2. You can view them all (not simultaneously!) in Mp3tag by going into Options (Ctrl-o) and under Tags -> Mpeg, uncheck two of three under Read, and the third will be read. Note that I gave them three different "Comment" fields.
Thanks for your answer. I know i can convert my files to add ID3v2 (by copying ID3v1), but i have a lot of such files. Besides, other applications seem to have no issue with this: under windows vlc and the file explorer "file details" tab, under linux clementine, foobar and vlc. The main problem for me is these files are not properly indexed and searchable in foobar's otherwise wonderfully fast library.
to add ID3v2 (by copying ID3v1), but i have a lot of such files.
They can be handled all in one go, but not the ones with APE tags
To find them: search for %__tagtype% HAS ID3v1 AND NOT %__tagtype% HAS ape AND NOT %__tagtype% HAS ID3v2
Those with ID3v1 only: Mark them, right-click (tip: shift + right-click gets full set of options!), Tagging -> MP3 tag types and choose ID3v1 and ID3v2 (also override v2 version for 2.3, as 2.4 never caught on).
The following works in Mp3tag (also with APE tags present): Under options, set it not to read nor write nor remove
APE, and set to read and write
ID3v1 and ID3v2. (Then it will read ID3v2 if present and otherwise default to v1.) If you had already dumped the files into the window, refresh. Mark all, Ctrl-c for copy, Ctrl-v for paste, and it will paste both as ID3v1 and as v2.
(Backup first is always a good idea.)
Thanks for the suggestions. I may end up doing that but i am unconvinced my files need fixing when they work fine with other players. My question remains: why would foobar ignore ID3v1 but not ID3v2 when there are (also) APE tags ?
Why do the other way around and disregard APE in favour of the - quite obsolete - ID3v1?
Apparently, foobar2000 assumes that if you use ID3v2, that is because you want to use ID3v2; if you don't use ID3v2 but use APEv2, that is because you want to use APEv2.
The order of priority could have been ID3v2 over ID3v1 and APEv2 at the end - but that is unreasonable to those who choose to use APEv2 and keep ID3v1 for compatibility with legacy players.
Finally, it could have shown everything, but that would be a mess.
Attached file has different ARTIST in the three tagsets. Look at it in, say, Notepad.
ID3v1: ARTIST = audacity id3v1 tag
APEv2: ARTIST = audacity ape tag
ID3v2.3: ARTIST = audacity id3v2
It also has different COMMENT fields.
Now open it in VLC. What artist do you see? Is that what you want or not?
Porcus, I was trying to get the attention of the dev(s) on the specific case where mp3gain uses (by default) APE tags to save the replay gain information, and only those tags (not artist, title, genre, etc) are present in APE format. See in attachment what kid3 displays for my original sample below. In such a case apparently foobar won't read ID3v1 (for info unrelated to replay gain) whereas it *will* read ID3v2 which i find illogical.
I have tried to explain. I give up.
AFAICT you've tried to guess foobar's behaviour and to convince me to "fix" my files. I have tried to make the case that foobar could handle this better. Thanks for your time anyway.
Did you even start reading reply 6?
Yes and your example has an APE tag for artist and you discuss which one to pick when there are several equivalent ones for different kinds of tags. Mine uses APE *only * for replay gain as stated in my 1st post and shown in the posted sample.