Author Topic: No support for some standard ID3v2.3 tags (TDAT (date), TENC (Encoded by),...)  (Read 5189 times)

syldub

  • Jr. Member
  • **
  • Posts: 30
Hi Steven,

As already reported in a wishlist thread (cf. http://getmusicbee.com/forum/index.php?topic=12943.0), MusicBee does not allow to retrieve some standard ID3v2.3 tags which are not built-in in MusicBee, for instance the TDAT (Date) and the TENC (Encoded by) tags.
I'm using MusicBee 2.4 build 5270.

I systematically re-encode and tag all my mp3s.
I need to store the date when I have encoded the mp3 in the MP3 tags, because I configure MusicBee to update file modification time when saving tags (so I lose the encoded date information).
So I use the TDAT tag to store the date when I did encode the mp3 (format: "DD/MM/YYYY")
I use the TENC tag to store my name (this allow filtering my own mp3s more easily)

I first saw that the "Encoded by" tag was not implemented by default in MusicBee.
So I decided to implement it using the Tag Editor (defining a new custom tag using Edit>Preferences>Tags(1)).

Sadly, this is NOT possible to add a real ID3v2 "Encoded by" tag in MusicBee.
It is only possible to create a "fake" "Encoded by", using "TENC" as string for id3 (.mp3).
But in this case, the ID3 will not be created in respect to the ID3v2 frame standard (http://id3.org/id3v2.3.0).
The standard says:
Frame ID       $xx xx xx xx (four characters)
Size           $xx xx xx xx
Flags          $xx xx

For instance, if we put "Test" in the TENC frame, the proper ID3v2 frame should be coded like this:
Frame ID: 54 45 4E 43 (= TENC)
Size: 00 00 00 05 (5 bytes)
Flags: 00 00 (no flags)
Data: 00 (indicates it's not Unicode)
      54 65 73 74 (= Test)

So the complete hexadecimal sequence should be:
54 45 4E 43 00 00 00 05 00 00 00 54 65 73 74
(That's what MP3Tag, Windows Explorer, and Winamp are doing).

But MusicBee is creating this hexadecimal sequence instead:
54 45 4E 43 00 54 65 73 74

Frame ID : 54 45 4E 43 (= TENC)
Size : ? (omitted)
Flags : ? (omitted)
Data : 00 (indicating it's not unicode)
       54 65 73 74 (= Test)

=> this can not be interpreted as an ID3v2 tag by other softwares as the ID3v2 frame structure is not respected.

I wish MusicBee had a complete implementation of the ID3v2 frame standard (with all tags listed in ID3v2 standard, as shown here: http://id3.org/id3v2.3.0#Declared_ID3v2_frames)... or better: could there be an option in the Tag Editor to create tags in respect to the ID3v2 frame structure?
I was a Winamp lover... until I discovered MusicBee! No other music player can beat it!

Bee-liever

  • Member
  • Sr. Member
  • *****
  • Posts: 3834
  • MB Version: 3.6.8849 P
TDAT is already supported as per ID3v2.3 standard

Quote
TDAT
    The 'Date' frame is a numeric string in the DDMM format containing the date for the recording. This field is always four characters long.

That is why the use of:

So I use the TDAT tag to store the date when I did encode the mp3 (format: "DD/MM/YYYY")

doesn't work.
MusicBee and my library - Making bee-utiful music together

syldub

  • Jr. Member
  • **
  • Posts: 30
Hi Bee-liever,
Your remark is a bit off topic.  ::)
Yes, the ID3v2.3 standard suggest to store the date in the DDMM format in the TDAT frame, but your can decide to store different data if you want (my choice was DD/MM/YYYY), this will respect the frame standard.

Actually, the point is that MusicBee cannot edit the TDAT tag (even if I would like to use the DDMM format). MusicBee cannot read or write any standard ID3v2.3 tags which are not built-in in the interface.
You can display the list of supported built-in tags here : Preferences > Main panel section > Configure fields
(this shows the fields linked to ID3 tags and virtual fields)
I was a Winamp lover... until I discovered MusicBee! No other music player can beat it!

psychoadept

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 10691
Actually, the point is that MusicBee cannot edit the TDAT tag (even if I would like to use the DDMM format). MusicBee cannot read or write any standard ID3v2.3 tags which are not built-in in the interface.

Yeah, this is true.  TSSE is listed as Encoder Settings in the Custom Tags, but actually is written by the Encoder field in the Tag Editor, when that should be TENC.  TDAT doesn't even have a spot where it would fit.
MusicBee Wiki
Use & improve MusicBee's documentation!

Latest beta patch (3.5)
(Unzip and overwrite existing program files)

Bee-liever

  • Member
  • Sr. Member
  • *****
  • Posts: 3834
  • MB Version: 3.6.8849 P
Hi Bee-liever,
Your remark is a bit off topic.  ::)
Yes, the ID3v2.3 standard suggest to store the date in the DDMM format in the TDAT frame, but your can decide to store different data if you want (my choice was DD/MM/YYYY), this will respect the frame standard.

TDAT doesn't even have a spot where it would fit.

Can't see myself that telling you something you wish for is already supported is off-topic...  ???

You can't have it both ways.

Wish that
MusicBee had a complete implementation of the ID3v2 frame standard (with all tags listed in ID3v2 standard, as shown here: http://id3.org/id3v2.3.0#Declared_ID3v2_frames)... or better: could there be an option in the Tag Editor to create tags in respect to the ID3v2 frame structure?

and then say you want to use them in a non-standard way.


By the ID3 standard, TDAT is linked with the TYER year tag



If you supply a full date (either in YYYY/MM/DD or DD/MM/YYYY format) and you are saving in ID3v2.3 tags, MB will split them into TDAT and TYER tags as per the ID3 standard.  You can even add the TDAT tag with Tag Inspector and it will display in the year: spot with the year.

And I assume Steven has done it this way because with ID3v2.4 there is no longer TDAT/TYER frames.  They become a combined TDRC frame.


EDIT:

By the way, as a workaround until Steven gets a chance to do this, you can add (at your own risk)

Code
<Tag id="Encoded By" id3v23="TENC" id3v24="TENC" wma="WM/EncodedBy" vorbisComments="ENCODED BY" mpeg="ENCODEDBY" ape2="EncodedBy" />

alphabetically into the list of <CustomTags> in your Configuration.xml, and TENC will work correctly.
Last Edit: June 18, 2014, 02:15:23 AM by Bee-liever
MusicBee and my library - Making bee-utiful music together

psychoadept

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 10691
You're right about TDAT, sorry.  I use 2.4, so I was going off what's on the wiki.  But then, I think I came up with that myself anyway, so I guess the accuracy is questionable...   :-[


Edit:  ...there, I fixed it.
Last Edit: June 18, 2014, 02:46:10 AM by scampbll
MusicBee Wiki
Use & improve MusicBee's documentation!

Latest beta patch (3.5)
(Unzip and overwrite existing program files)

syldub

  • Jr. Member
  • **
  • Posts: 30
Yeah, this is true.  TSSE is listed as Encoder Settings in the Custom Tags, but actually is written by the Encoder field in the Tag Editor, when that should be TENC.  TDAT doesn't even have a spot where it would fit.
In the Tag Inspector, the "ENCODER" tag can be misinterpreted, as it could mean 2 different things:
1. "the guy who did encode the audio file", or
2. "the software used for encoding".
Best would be to rename this field into "ENCODED WITH" (like the field name in the Tag Editor).

For TENC, best would be to use "ENCODED BY" as field name.

Another strange thing about the "encoded with" field in the Tag Editor (in the Properties tab), is that it is automatically filled by "Lame3.99" if the TSSE tag is not existing in the Tag Inspector :(. This can lead to misinterpretations.

Can't see myself that telling you something you wish for is already supported is off-topic...  ???
Actually, I did misinterpret your answer as you didn't technically explain where the TDAT was supported in MusicBee.
So you were not off-topic at all  :-[

By the ID3 standard, TDAT is linked with the TYER year tag
You're so right, I did use the TDAT tag is a non-standard way. It has to be correlated with TYER as you explained.
Then the best way for my need is to create a dedicated custom tag for storing the date of encoding (because I still want to store the date of the release in the TYER tag).

By the way, as a workaround until Steven gets a chance to do this, you can add (at your own risk)

Code
<Tag id="Encoded By" id3v23="TENC" id3v24="TENC" wma="WM/EncodedBy" vorbisComments="ENCODED BY" mpeg="ENCODEDBY" ape2="EncodedBy" />

alphabetically into the list of <CustomTags> in your Configuration.xml, and TENC will work correctly.
Thanks!! Editing the CustomTagConfig.xml like you proposed is the perfect solution for my need, as it allows to create any ID3v2 standard tags.
It is only possible to create TXXX tags using the MusicBee GUI, so I renamed the TXXX/TENC I had previously created, and named it "TENC" instead. This works like a charm.
Maybe the only thing Steve could improve in the custom tags editor is the ability to specify if the tag should be a TXXX tag or not.

And I assume Steven has done it this way because with ID3v2.4 there is no longer TDAT/TYER frames.  They become a combined TDRC frame.
I think so.
Now that I understand that TDAT & TYER are correlated, I find that Steven's implementation is very right.
I was a Winamp lover... until I discovered MusicBee! No other music player can beat it!

Bee-liever

  • Member
  • Sr. Member
  • *****
  • Posts: 3834
  • MB Version: 3.6.8849 P
Glad we got it sorted syldub  :)

Then the best way for my need is to create a dedicated custom tag for storing the date of encoding (because I still want to store the date of the release in the TYER tag).

Maybe you could use the OWNE 'Ownership frame'?
Not technically "standard" use, I know, but it does allow for a date (in YYYYMMDD format).
MusicBee and my library - Making bee-utiful music together

psychoadept

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 10691
Another strange thing about the "encoded with" field in the Tag Editor (in the Properties tab), is that it is automatically filled by "Lame3.99" if the TSSE tag is not existing in the Tag Inspector :(. This can lead to misinterpretations.

Yes, I wish MB would quit filling this tag in again after I've gone to the trouble of removing it.  I find that it doesn't just do lame 3.99, though, so I assumed it knew somehow which version had been used.
MusicBee Wiki
Use & improve MusicBee's documentation!

Latest beta patch (3.5)
(Unzip and overwrite existing program files)