Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Foobar v.1.1.12a showing multiple years. (Read 10022 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Foobar v.1.1.12a showing multiple years.

In most albums I am seeing now that in the Year metadata fields it is showing multiple years like this:

2011; 1312
1110; 2011
2010; 0000
2012; 2205

Even though when I check the tags using any other program it only shows the tags as having 1 year.

Foobar v.1.1.12a showing multiple years.

Reply #1
Sure you haven't tried to store YYYY/DDMM? ID3 (for mp3) would use / as a separator.

(The second looks rather than DDMM/YYYY to me though.)

Foobar v.1.1.12a showing multiple years.

Reply #2
Sure you haven't tried to store YYYY/DDMM? ID3 (for mp3) would use / as a separator.

(The second looks rather than DDMM/YYYY to me though.)


Yes I have opened all of the files up in 2 different tag editors and they both only show the year (Even the one that foobar has 1110 listed first only shows 2011 as the only date in the Year metatag.

Foobar v.1.1.12a showing multiple years.

Reply #3
same here :/


Foobar v.1.1.12a showing multiple years.

Reply #5
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.

Reply #6
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.

Reply #7
Mp3tag shows TDAT as "DATE" tag and TYER as "YEAR". You can use it to remove all "DATE" tags.

Foobar v.1.1.12a showing multiple years.

Reply #8
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.

Reply #9
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...).

Microsoft Windows: We can't script here, this is bat country.

Foobar v.1.1.12a showing multiple years.

Reply #10
I've changed it so TDAT/TYER are merged into one YYYY-MM-DD "date" field.

That's a clever idea, but still don't understand what will exactly break and why:
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.

Reply #11
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.
Microsoft Windows: We can't script here, this is bat country.

Foobar v.1.1.12a showing multiple years.

Reply #12
Does that mean that the playback statistics (that is collected so far) will be reseted or what? That's shocking!

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

Foobar v.1.1.12a showing multiple years.

Reply #13
Does that mean that the playback statistics (that is collected so far) will be reseted or what? That's shocking!
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.
Microsoft Windows: We can't script here, this is bat country.

Foobar v.1.1.12a showing multiple years.

Reply #14
Your efforts are certainly appreciated, Peter.  Thanks for trying.  I think I'm simply realizing what a horrid mess my tags are in, and it raises the ire of the inner OCD alphabetizer.

Foobar v.1.1.12a showing multiple years.

Reply #15
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.

Is this incorrect implementation of ID3v2?

Foobar v.1.1.12a showing multiple years.

Reply #16
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.

Reply #17
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.

Reply #19
anyone? What are we supposed to do with the date/year tags?

Foobar v.1.1.12a showing multiple years.

Reply #20
I guess I found the solution: use mp3 tag to remove the DATE field (which in foobar actually corresponds to YEAR) and enter a date/year in mp3tag's YEAR field (foobar's DATE). Example:

Song A in FOOBAR:
- Date: 2012-06-14

Song A in Mp3Tag
- Year: 2012-06-14

This is a annoying, though.

Foobar v.1.1.12a showing multiple years.

Reply #21
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.

Select the files in Mp3tag, then do the following steps:

Step 1: create an Action Group, name it whatever you want
Step 2: click the "new" button (it has a star on it)
Step 3: under "Select action type", choose "Replace with regular expression"
Step 4: in "Field", enter or select _TAG
Step 5: in "Regular expression", enter ^\s+
(Do NOT enter anything into the "Replace matches with" box)
Step 6: click "OK"
Step 7: click the "new" button
Step 8: under "Select action type", choose "Replace with regular expression"
Step 9: in "Field", type or select _TAG
Step 10: in "Regular expression", enter \s+$
(Do NOT enter anything into the "Replace matches with" box)
Step 11: click "OK"
Step 12: select the Action you just created and click "OK" to run the script

*Don't blame me if you do it incorrectly*


And just in case you don't know:

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.

Reply #22
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.