Required ID3 tags for .mp3 files?

I recently bought a Fuze (2 GB + 8GB SDHC) to use on Suse 10.1 Linux.  I’ve updated the Fuze firmware to V01.01.22A.

I quickly discovered that the Fuze doesn’t display directory and file names, but ID3 data. I also discoverd the CDs I ripped with Bashee didn’t have ID3 data and show up as unknowns.  So, found mutagen (python code that implements ID3 stuff) and wrote code to add the tags I thought would be important, e.g. (ignore TCON line for a moment):

tux:Dr. Demento= 30th Anniversary Collection (disc 1)> mid3v2 --list-raw *
Raw IDv2 tag info for 03. The Elements.mp3:
TCON(encoding=3, text=[u’57’])
TALB(encoding=3, text=[u’Dr. Demento= 30th Anniversary Collection (disc 1)’])
TRCK(encoding=3, text=[u’03’])
TPE1(encoding=3, text=[u’Tom Lehrer’])
TIT2(encoding=3, text=[u’03. The Elements’])

Raw IDv2 tag info for 05. Charlie Brown.mp3:
TALB(encoding=3, text=[u’Dr. Demento= 30th Anniversary Collection (disc 1)’])
TRCK(encoding=3, text=[u’05’])
TPE1(encoding=3, text=[u’The Coasters’])
TIT2(encoding=3, text=[u’05. Charlie Brown’])

Raw IDv2 tag info for 06. Dungeons and Dragons.mp3:
TALB(encoding=3, text=[u’Dr. Demento= 30th Anniversary Collection (disc 1)’])
TRCK(encoding=3, text=[u’06’])
TPE1(encoding=3, text=[u’The Dead Alewives’])
TIT2(encoding=3, text=[u’06. Dungeons and Dragons’])

A file copied by itunes ages ago has:

tux:Sounds of the Isles> mid3v2 --list-raw  *
Raw IDv2 tag info for 04. Let Love Guide Your Heart.mp3:
COMM(encoding=0, lang=‘eng’, desc=u’iTunNORM’, text=[u’ 0000192D 000019F8 0000E1A4 0000BDFE 00007A0A 000079F0 0000817F 000080E1 0001DC05 00004EE0’])
TCMP(encoding=0, text=[u’1’])
TPE1(encoding=0, text=[u’Torla, Gayle’])
TYER(encoding=0, text=[u’2002’])
TIT2(encoding=0, text=[u’Let Love Guide Your Heart’])
TENC(encoding=0, text=[u’iTunes v4.9.0.17’])
TRCK(encoding=0, text=[u’4/19’])
TPOS(encoding=0, text=[u’1/1’])
TALB(encoding=0, text=[u’Sounds of the Isles’])
COMM(encoding=0, lang=‘eng’, desc=u’iTunes_CDDB_IDs’, text=[u’19+957CE2ACB34B27EDE59206D31FC80BC6+2748326’])
TCON(encoding=0, text=[u’(80)’])

The itunes read file works, the ones I updated display unknown/unknown/track data when playing, and I don’t see what might be missing except for the genre (see thread  Some MP3 files are not recognized by Fuze).  So I added that TCON I said to ignore for a bit and that didn’t change things.

So, are there other ID3 tags that are a must have?  A further oddness is that when I plugged the Fuze into Windows box, I was pleasantly surprised to see that Windows Explorer displays metadata when you right click a file and select Properties.  However, the files I’m having trouble with didn’t have their metadata displayed.  The properties popup opened, but the data was blank.

I’ll try dropping the leading 0 in TRCK and a few other things.

I just noticed the encoding=3 in my files.  I better go learn what that’s about, If it’s character set stuff, it might be an ascii/utf-8 issue.

Yeah, yeah, I should be using MonkeyMedia or whatever, but that means setting up Samba or transferring several GB of data around to that laptop. 

Update:

The encoding appears to be the key.  I’ll post a more coherent note after a bit, but encoding 3 appears to be UTF-8 and encoding 0  ISO-8859-1.  Mutagen choses the default encoding for the locale, UTF-8 in my case, I forced it to use ISO-8859-1 and made a few copies of a file with UTF-8 frames.  I changed one tag in each file (artist, album, and track) and the artist album fields became visible with ISO-8859-1.  I’m not sure how the track field gets used, but I think I saw a note in the ID3 specs that numeric fields are to be encode in ISO-8859-1.

So I may have things under control, time for a little hacking.  I haven’t had to deal much with encodings and Unicode.  It’s been a worthwhile exercise, but lousy timing…

I redid my UTF-8/ISO-8859-1 encoding experiment, this time taking a mp3 file, making 16 copies of it, and setting artist/album/song/track with each of the 16 possibilities.  I knew that the song would display with either encoding, so I used that to record each permutation.  I used the first character to specify the encoding used in the editing program, so song 0c3a0s0t3 meant c3=Artist/composer in encoding 3 (UTF), a0=album in encoding 0 (ISO), s0=song in encoding 0, and t3=track in encoding 3.

I’m not sure if the track shows up anywhere.  The Artist and Album show up as unknown in encoding 3, and while the song shows up in encoding 3, it’s modified - the leading 3 goes away and the rest is converted to upper case.  Odd.

So, I guess that means the Fuze doesn’t handle UTF.  I think I can live with that, but I do have a couple disks in Russian, and I may have had some trouble with various classical tracks.  (That may have been more issues with illegal characters in FAT file names, I was trying to use album and track strings as directory and file names.)

I’ll mark this as the solution, assuming I figure out that…