Page head image

Not so much fun with mp3 tagging

(7 comments)

I've been observing problems mp3 tags not being displayed on some devices, while others display the information just fine. By chance, I found out why.

My new Tomtom Go 930 GPS navigation device can play mp3s, which is quite important to me, as the built-in speaker is quite bad. I can barely understand the spoken instructions. I'd rather have the GPS unit hooked up to the line in of the radio. But of course, without the mp3 player it would be quite a boring ride. Actually, the player works quite fine most of the time. But on boot the Tomtom needs several minutes to scan 520 files. During that time, it gets less and less responsive and the GUI almost comes to a halt. This is not acceptable, I cannot wait ten minutes for the GPS almost each time I want to leave.

Running a search on Google didn't turn up much useful, does everybody only have ten songs on their SD card, or what? I found someone mentioning that the player doesn't like embedded cover art pictures. After discovering that the MP3s indeed had one set and removing them, the Tomtom at least remained somewhat usable during the scan. However, it still took many minutes. But while I was at it, why doesn't it read the title, album and artist information anyway? What's wrong with the id3 tags? Let's have a look at one of the files:

$ mid3v2 01\ -\ Uprising.mp3 
IDv2 tag info for 01 - Uprising.mp3:
TDRC=2009
TIT2=Uprising
TRCK=01
TLEN=302826
TPE1=Muse
TALB=The Resistance
TSSE=LAME 64bits version 3.99 (alpha 1, Oct 6 2009 09:40:19) (http://www.mp3dev.org/)
$

Hmm, a pretty normal looking id3v2 tag. What does the Tomtom need, anyway? Some experiments later by manually tagging a file: it needs exactly that, an id3v2 tag. And it will ignore any v1 tag. Didn't I tag everything with both?

$ mpginfo 01\ -\ Uprising.mp3 
[..]
01 - Uprising.mp3
Audio : Mpeg 1 layer 3
Estimated Duration: 05:02.95s
128 kbps 44100 Hz
Frame size: 417 bytes
Joint Stereo: (Intensity stereo off, M/S stereo on)
No emphasis, original
ID3 v1.1 tag
----------------
title : Uprising
artist : Muse
album : The Resistance
track : 1
year : 2009
----------------
ID3 v2.4.0 tag (more info on http://www.id3.org/)
----------------
TSSE : LAME 64bits version 3.99 (alpha 1, Oct 6 2009 09:40:19) (http://www.mp3dev.org/)
TIT2 : (empty)
TPE1 : (empty)
TALB : (empty)
TRCK : (empty)
TLEN : 302826
TDRC : (empty)
----------------
$

Err, what? The v2 tags are present, but do not have any content if there is a v1 field for the same information available. Okay, let's recreate the idv2 section:

$ mid3v2 -d 01\ -\ Uprising.mp3
$ mid3v2 -C 01\ -\ Uprising.mp3
$ mpginfo 01\ -\ Uprising.mp3
[..]
01 - Uprising.mp3
Audio : Mpeg 1 layer 3
Estimated Duration: 05:02.95s
128 kbps 44100 Hz
Frame size: 417 bytes
Joint Stereo: (Intensity stereo off, M/S stereo on)
No emphasis, original
ID3 v1.1 tag
----------------
title : Uprising
artist : Muse
album : The Resistance
track : 1
year : 2009
----------------
ID3 v2.4.0 tag (more info on http://www.id3.org/)
----------------
TIT2 : Uprising
TPE1 : Muse
TRCK : 1
TALB : The Resistance
TDRC : 2009
----------------
$

Further investigation showed that all applications which write the incomplete v2 tags in presence of v1 tags are using libid3tag-0.15.1b. I haven't found out yet whether this is a bug of the library or the application.

After re-tagging all 520 titles on the card, the Tomtom Go finally shows the tag information. Scanning the files now takes just a couple of seconds and the Go stays responsive. Mystery solved!

Comments

aerofox.livejournal.com 15 years ago

This is cool and useful information ^_^

Do you manually edit the MP3's with a text editor?

Link | Reply

woelfisch.livejournal.com 15 years ago

Hell, no, I'm not that hardcore... ;-)

But I'm using command line tools a lot to fix things like the broken id3 tags. In this case, mid3v2 of the mutagen package and mpginfo of the mpeg toolbox. Original tagging was done by a script using the lame mp3 encoder and easytag. The latter is a GUI tool, actually.

Writing a vim extension to support MPEG stream editing in VI sounds tempting, though... ;-)

Link | Reply

doco.livejournal.com 15 years ago

Meine Kaffeemaschine macht übrigens auch immer ganz seltsame Geräusche, wenn ich mir darin Tütensuppe koche. :]

Link | Reply

woelfisch.livejournal.com 15 years ago

Finde mal sowas, wenn dir bislang jedes Tool anzeigt, dass doch alles super toll okay ist, weil alles die selbe kaputte Library verwendet, die genau diesen Spezialfall abfängt und auf die v1-Tags zurückfällt... Dumm nur, wenn Appliances ihre eigene Implementierung haben, die das nicht tut.

Link | Reply

lynard-.livejournal.com 15 years ago

Well, i noticed that some cd rippers doing incomplete tagging work (writing v1 and partly v2 if necessary). I use mp3tag to write both, v1 and v2 tags completely.

Link | Reply

anonymous.example.com 15 years ago

I recommend for tagging picard tagger. really cool python-qt app that have many configuration possibilties.

I use it to generate folder.jpg in the album folder. this works for many music players...

Link | Reply

woelfisch.livejournal.com 15 years ago

Actually, I've been playing with picard. Alas, the Linux version apparently also uses libid3tag. I removed all tags from test.mp3, recreating them with picard gives the following result:

$ mpginfo test.mp3
[..]
ID3 v1.1 tag
----------------
title : Discipline
artist : Nine Inch Nails
album : The Slip
track : 4
----------------
ID3 v2.4.0 tag (more info on http://www.id3.org/)
----------------
TIT2 : (empty)
TPE1 : (empty)
TRCK : 4
TALB : (empty)
----------------
$

Nevertheless, picard is indeed a very nice tagger.

Link | Reply

New Comment

required

required (not published)

optional