|
Specs_ID3
ID3 Implementation Details
ID3 TagsQuodLibet::TXXX FramesID3 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:: RVA2 / ReplayGainQuod 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 FramesLanguage 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 StuffQuodLibet:: COMM FramesQuod 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 HackSince 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. |
Sign in to add a comment
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.
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,
http://code.google.com/p/quodlibet/source/browse/quodlibet/quodlibet/formats/_id3.py
Thanks! That was fast :)