Rockbox Technical Forums
Support and General Use => Theming and Appearance Customization => Topic started by: bbail on February 15, 2021, 04:12:09 PM
-
I was trying to tag some music files so that I could display source information on tracks. I figured I could enter characters into the disk tag field in the meta data, however, Easytag constrained the characters to numbers and - and / and interpreted the - and / differently between ogg and mp3 and saved them to file differently.
Rockbox also interpreted the characters in %ik differently depending on whether it was from ogg or mp3 files. %ss(0,1,%ik) produced different results.
According to the ogg vorbis docs, I see no reason why any field couldn't accept ascii characters from 0x20 to 0x7D except '='.
I gave up on using the disk tag and tried the comment tag. I can read the comment tags in mp3 using %iC and get substrings by using %ss(0,2,%iC), but the comment field is completely ignored in ogg files.
Easytag saves comments in an ogg tag field named DESCRIPTION.
Is Rockbox expecting a different tag name? Otherwise, why does Rockbox ignore ogg comment fields?
-
Vorbis comments are commonly labeled as "COMMENT": http://age.hobba.nl/audio/mirroredpages/ogg-tagging.html
This what rockbox expects: https://git.rockbox.org/cgit/rockbox.git/tree/lib/rbcodec/metadata/metadata_common.c#n313
Internally the database stores track/disk numbers as integers.
-
id3 tags include a media tag TMED which would be appropriate, but is unsupported in Rockbox.
Same with TXXX, user text frame.
A vorbis comment tag field could also be added, MEDIA=, but again unsupported.
In metadata_common.c I found these lines:
else if (strcasecmp(name, "comment") == 0)
{
p = &(id3->comment);
}
I believe I could add the following lines in order to have Rockbox parse the ogg vorbis comment field labeled DECSCRIPTION by Easytag and have access to it using %iC:
else if (strcasecmp(name, "description") == 0)
{
p = &(id3->comment);
}
I decided to take another look at the disc field.
Using Easytag to change the field in both mp3 and ogg files, I was able to enter various letter and number and other characters into the field. I was confused by the fact that Easytag doesn't display the tag correctly, but the characters are indeed in the field.
Rockbox doesn't allow # and % to be tested in the field, but does allow them in the field.
Otherwise, ! $ & work to be tested and letters, of course.
So I was finally able to output what I wanted using the following line. Output depends on whether the disk field is empty, has a number, or starts with L.
%ac%?in<TK %in %?if(%ss(0,1,%ik), =, L)<LP %ss(1,-,%ik)|%?ik<CD %ik>>|%?ig<%ig|%d(1)>>%ar%fb kb/s
So all is good and I don't need to use the comment field.