Archive for June, 2005

iTunes and ID3 Tag Management

Posted by Konstantinos Christidis on June 01, 2005
Posts / 7 Comments

It’s unclear exactly how iTunes handles ID3 tags when you’re editing a track’s properties.

An Intro

For those not following this stuff closely, we’ve got –generally speaking– two versions of ID3 tags (and a track can carry them both):

  • ID3v1 (actually ID3v1.1): 128 bytes long, located at the end of the file, fields can only carry a limited number of characters, etc.
  • ID3v2 (actually ID3v2.3.0 — are there any programs that write ID3v2.4.0?): extendable/expandable (up to 256MB long!?), located at the beginning of the file, no character limit on the fields, support for pictures, etc.

The Tests

(Please note that this is iTunes for Windows we’re talking about.)

I did a few tests to find out how iTunes messes with the two versions, by adding/editing the info of a track that had:

  • neither an ID3v1, nor an ID3v2 tag
  • only an ID3v1 tag
  • only an ID3v2 tag
  • both an ID3v1 and an ID3v2 tag, with different information on each

The Results

In all of my tests, iTunes would only edit (or add, in the case of the first two tests) the ID3v2 tag.

It makes sense that iTunes only wants to “speak” with ID3v2 since it’s the one that supports album art, and “richer” metadata, which is the whole music organizing mantra. We should also note, that in the last case, where the track carried both an ID3v1 tag and an ID3v2 tag with different information on each, iTunes would read the ID3v2 tag and neglect the ID3v1 one.

This is generally good news for me, since all of my tracks are stripped from their ID3v1 tags, and I only deal with ID3v2. Thus, I know that when I have to edit a track’s info from within iTunes, no ID3v1 tag will be suddenly added (as is the case with Creative’s PlayCenter; don’ even get me started with that bloatware).

Something Isn’t Right Here

But, there’s something wrong with this behaviour, isn’t it?

ID3v1 may suck, but there are still MP3 players out there(mostly those CD players that can handle MP3 — and that includes most car audio players too) that can only read ID3v1.

You can see where this is going.

You’ve just burned a CD with MP3 tracks using iTunes, so that you can listen to it in your car stereo. And when “…Baby One More Time” (OK, we’re pushing things here deliberately) starts blasting through your speakers , the LCD display reads “ARTIST: brittany spaers“, “SONG: 1 more time“.

You’re certain you’ve tagged Britney’s album properly, and know how to spell her name; you check your iTunes library again, and you confirm this.

So What’s Happening Here?

As we’ve described above, iTunes only interacts with ID3v2, so you’re out of luck in fixing this from within Apple’s music management program (you’ve got to revert to a separate tag editing program, or maybe “Winamp” → “File Info”, and do some manual editing.)

A Proposed Solution

I can only see one way of fixing this.

iTunes should always update (if it already exists), or create (if it doesn’t) the correspondent ID3v1 tag when you add tracks to the library, or modify their information. This sucks for people like me who want to avoid ID3v1 tags entirely, because I got no use for’em, but we’ve got to think of people who listen to their MP3s in devices that can only read ID3v1.

A few extra notes on this: since ID3v1 has got some character limits on its fields (e.g. “30 characters max. allowed for ‘Artist’”), these ID3v1 fields would obviously only carry the first ‘x’ allowed characters from their ID3v2 counterparts. And in the case of ID3v1 genres, where you can only choose between 80 predefined ones, if the ID3v2 genre doesn’t belong to one of the predefined ones, then the ID3v1 genre field should be left blank.

In an ideal world, Apple would add an option in “Edit” → “Preferences” → “Advanced”:

Keep ID3v1 tags in sync? [x]

Checking it (as shown in the example above) causes iTunes to behave like we’ve described two paragraphs above.

Unchecking this option, removesthe ID3v1 tag (if it exists) when adding tracks to your library, and only deals with ID3v2. Again, it doesn’t just ignore ID3v1, it removes it if present, treating it as cruft.

I’d really like to see the “ideal world” solution applied, but Apple hates extra options, so chances of this being realized are slim.

What Happens With the Mac Version?

As we’ve noted above, this iTunes behaviour can only be confirmed for Windows (the XP version), as this is how we’ve conducted our tests. I’d love to hear from Mac users if the same applies to their case too.