Foobar v.1.1.12a showing multiple years.

This happened to about 5% of my mp3s when I reloaded tags in 1.1.12a (all my mp3 Year tags are 10-length yyyy.mm.dd). So what Mp3tag showed me was that these suspect mp3s had both a %DATE% and a %YEAR% tag (mp3tag names). foobar2000 would show it as "####; ####", duplicate tags.

On a somewhat related note, I only use Mp3tag, not foobar2000, when needing to change the Year tag because foobar2000 has a history of not doing what I want it to with MP3s (Mp3tag showing foobar2000's writing into a %DATE% instead of into a %YEAR%, if you save that file in Mp3tag which won't show a Year tag btw, then foobar2000 loses the year too).

Foobar v.1.1.12a showing multiple years.

I was about to start a thread concerning this issue. I've been having this problem for a couple of weeks now, ever since the 1.12 beta(s) release. The date tag is only altered on mp3s, no other file type, and only those mp3s which have come up in the shuffle. I don't know when it happens. It seems if I play a song intentionally, the date tag is not rewritten. Most of the dates for albums in my library are single years - no multiple dates, and very few Y/M/D albums. I've disabled the audioscrobbler and do not have any playcount components installed. I'm assuming this is a problem caused by a component; however, it might be something to do with Foobar 1.12.

Please help - sometimes the new four-digit number is written before the original date, causing my library to sort out of order, which means I have to go back through and retag all the dates.

EDIT: After using Axone, it shows most of the metadata in an experimental frame. TDAT has the new number written (e.g. 2410) with the actual year in TORY and TYER (1995). I tagged most of my collection in Musicbrainz Picard software. What is the quickest and easiest way of fixing this mess?

Foobar v.1.1.12a showing multiple years.

Well, removing the DATE tag in MP3tag worked and solved one problem. I'm still back at square one, retagging my entire library with correct year fields. On a different note, it doesn't seem as though Foobar kept my sort settings when I upgraded to 1.12a.

EDIT: Actually, Foobar did keep my settings, but it seems to read things differently. I'm not going to worry about it now. Most likely user error, and I'll seek my own solution.

Foobar v.1.1.12a showing multiple years.

In the next fb2k version, TDAT will be presented as another field separate from "DATE" to prevent confusion.

I've changed it so TDAT/TYER are merged into one YYYY-MM-DD "date" field. Unfortunately, it's still different from the behavior of the old fb2k versions so anything that relies on exact date strings will break (playcounts...).

Foobar v.1.1.12a showing multiple years.

The Playback Statistics component uses a "metadata hash" concept to pin its data to specific songs, which includes the "date" field in its hashing pattern. If the way the "date" field is generated from the tags changes, the tracks are no longer recognized as the same.

Foobar v.1.1.12a showing multiple years.

[quote author=q-stankovic link=msg=797364 date=1338580776]Does that mean that the playback statistics (that is collected so far) will be reseted or what? That's shocking![/quote]Only if you have ID3v2 TDAT frames (which old fb2k did not support so if your tags were made with fb2k, you don't have these).Playback statistics will not be actually lost (they're retained until files that they belong to have not been seen for several weeks); if you remove the offending TDAT frames (or in case of future fb2k, re-format your date fields to contain only YYYY rather than YYYY-MM-DD), they will be associated with your files correctly again.

Quote

Does it make sense to save statistics to tag before installing new version and to reimport it after installing?

That's one way to work around this problem.I'm still trying to come up with a better way to deal with this situation.

Foobar v.1.1.12a showing multiple years.

EDIT: After using Axone, it shows most of the metadata in an experimental frame. TDAT has the new number written (e.g. 2410) with the actual year in TORY and TYER (1995). I tagged most of my collection in Musicbrainz Picard software. What is the quickest and easiest way of fixing this mess?

I was actually just going to post on this exact issue to get the general consensus before posting over at MusicBrainz about this. This is exactly what Picard is doing: Putting YYYY in TYER and DDMM in TDAT.

Foobar v.1.1.12a showing multiple years.

TYER/TDAT and/or TORY are correct for v2.3, but not v2.4. Libraries like libid3tag migrate TYER/TDAT/TIME over to TDRC, which is one of the many full timestamp frames supported by v2.4. (libid3tag also migrates TORY to TDOR. It does not have downgrading functionality because it only supports writing v2.4 tags.)

Foobar v.1.1.12a showing multiple years.

Okay, that makes sense. Like I said, I wanted a sanity check on my part before I went any further. (I don't use ID3v2.4 anymore, but when I did, I seem to recall Picard doing what you describe. I don't know the current state of things regarding v2.4, but it doesn't matter to me.)

Foobar v.1.1.12a showing multiple years.

OK folks, I've found what I believe is causing this for the majority of you: leading and or trailing whitespace in your TYER and TDAT frames. foobar is expecting the contents of both of these frames to be four digits long. The additional space is thwarting its ability to parse these frames correctly. This is the only way I've been able to reproduce what you are experiencing.

As a quick and temporary solution you might try $trim() but I haven't tried it. I suspect that this will not work due to foobar's "date" field being populated by two different frames.

The easiest way I can tell you to fix these frames is to use the following script as an Action in Mp3tag. It will remove all leading and trailing spaces. You will have to create it.

As of 1.1.13, foobar's "date" field for id3v2.3 is populated by the TYER and TDAT frames. Prior to 1.1.13, foobar's "date" was solely populated by the TYER frame.

The TYER frame (YEAR in Mp3tag) should only contain four digits and be in a YYYY format, i.e. 1975, 1991, 2012, etc. If it isn't formatted correctly, foobar is returning it as written.

The TDAT frame (DATE in Mp3tag) should only contain four digits and be in a DDMM format, i.e. 1502 (for Feb 15), 1910 (for Oct 19), etc. foobar also returns this frame as written if it's formatted incorrectly.

Foobar v.1.1.12a showing multiple years.

I forgot to point out one thing. If you edit the date in foobar, you must enter it in the YYYY-MM-DD format for foobar to write to the TYER and TDAT frames correctly.

foobar is only displaying these frames incorrectly, but if you alter your tags in a way that causes foobar to rewrite these frames while the frames are still incorrectly formatted, then foobar will rewrite them incorrectly.

I found that if you alter the "date" tag in foobar via Properties without formatting it correctly, under varying conditions foobar will rewrite both tags as is or write both to one of the frames and delete the other frame.