My favorites | Sign in
Logo
                
Search
for
Updated Jun 17, 2009 by joe.wreschnig
Specs_ID3  
ID3 Implementation Details

ID3 Tags

QuodLibet::TXXX Frames

ID3 doesn't let you have frames named whatever you want like Ogg Vorbis and APEv2 do. However, it does let you create "TXXX" frames which are text data with an associated "description". Quod Libet uses these frames with a QuodLibet::

<tagname>
description to store tags that don't have ID3 counterparts. For example, labelid is stored as QuodLibet::labelid.

RVA2 / ReplayGain

Quod Libet implements ReplayGain using MP3's RVA2 frame. Unfortunately there is no standard on how to read RVA2 frames to support RG properly. If the description string is "album" the gain is treated as the album/audiophile value. Any other value is read as the track/radio value, but an actual description of "track" will preempt other values.

I've passed this information along to the GStreamer guys and their RVA2 support should match this, once it's completed.

foobar2000-style TXXX:replaygain_* tags are also supported, but migrated to the proper RVA2 format on save.

Other COMM Frames

Language codes in COMM frames with empty descriptors are replaced by \x00\x00\x00 on save. These tend to contain garbage rather than valid language codes anyway, and empty descriptors are usually a sign of comments migrated ID3v1 or other formats that do not support language markers.

Legacy Stuff

QuodLibet:: COMM Frames

Quod Libet used to use COMM frames instead of TXXX frames for its extended tag names. It will still load old COMM tags, but clears then when you save the file again.

Multiframe Hack

Since versions of ID3 prior to 2.4 did not support multiple values in a single text frame, we stored multiple text frames of the same type with one value for each if you tried to save more than one value per frame. This was strictly a violation of the ID3 spec, but we never encountered an ID3 reader that had trouble reading the tags saved this way (and still haven't).

Now that we use Mutagen, we store multiple values in the standard ID3v2.4 format. Old tags are migrated when you edit them.


Comment by djphazer, Oct 20, 2008

I really think prefixing the description fields with QuodLibet:: is unnecessary and counterproductive, and omitting it would allow for greater interoperability with other music players and editors. In fact, I've been running QL with some hacks to do just that, and it allows various tags written with QL to be recognized in other players, like foobar2000.

Comment by Yannis.Vergados, Aug 11, 2009

Hi there! I finally found a music management player with decent tagging for my taste. I only had a little question: What is the mapping between tag names in QL and id3v2.4 frames?

Many thanks,

Comment by Yannis.Vergados, Aug 12, 2009

Thanks! That was fast :)


Sign in to add a comment
Hosted by Google Code