[ID3 Dev] foobar2000 ID3v2.3 compliance

Audio Ranger Development developer at audioranger.com
Tue Mar 29 06:14:47 PDT 2011


Ben, Canar,

> I personally feel that this is a defect in the spec and should be entirely
> ignore and null characters should be used as Peter had previously
> implemented.

The question is which solution is the better one in terms of A) 
compatibility, and B) effectiveness.


Regarding compatibility: foobar2000 seems to be the only popular player 
(under Windows) which uses null bytes to separate multiple artists in 
ID3 v 2.3 (at least up to version 1.1.5). Other popular players either 
don't support multiple artists at all in ID3 v 2.3 (iTunes, VLC Media 
Player, Winamp) or use slash chars (Windows Media Player, Media Monkey).


Regarding effectiveness: it might be a good idea to support both slash 
chars *and* null bytes when reading an ID3 v 2.3 tag. Yes, there is the 
risk of a false positive match when treating slash chars as separators, 
and AC/DC is a quite prominent example for that. However, let's rely on 
facts. Only about 1 or 2 out of 1000 artists contain a slash within 
their names (source: MusicBrainz database with more than 600.000 artist 
names stored).

In order to further reduce the false positive match rate, a whitelist of 
the most popular "slash artists" and / or some kind of artist name 
analysis can be used (the probability of a slash being a separator is 
higher if there are spaces present which surround the slash, for example).


When writing the tag, it entirely depends on which other program should 
read the tag again afterwards. From a user's point of view, it's 
important that things work as good as possible on the software or 
hardware *he* uses. Keeping that in mind, an ID3 implementation should 
probably write slash separators for iTunes and Winamp users, but may use 
null separators for foobar and Media Monkey users, for example. In other 
words: make it an option, and let the user choose the software or 
hardware your program should be compatible with.


The best solution of course would be to officially revise the ID3 v 2.3 
specification in order to use null bytes for multiple artists (and for 
other text fields too). This however won't help much as long as such 
widely used implementations like iTunes don't care about multiple 
artists at all.


Regards,
Mathias K.


>
> -Ben Allison
>
>> Hello all,
>>
>> PaulTaylor added the following compliance issue for foobar2000:
>>
>> Null separates multiple values | Null seperates multiple strings in text
>> frames, didnt come in until ID3v24
>>
>> This was fixed in version 1.1. You can see the changelog here:
>> http://www.foobar2000.org/changelog
>>
>> Also, the correct name of the player is, as I wrote previously,
>> "foobar2000", not "Foobar 2000".
>>
>> Thanks.
>>
>> --Ben Cook, aka Canar
>> Hydrogenaudio moderator and foobar2000 alpha-tester.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
>> For additional commands, e-mail: id3v2-help at id3.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
> For additional commands, e-mail: id3v2-help at id3.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
For additional commands, e-mail: id3v2-help at id3.org



More information about the ID3v2 mailing list