[ID3 Dev] Understanding multiple genres in ID3v23

Paul Taylor paul_t100 at fastmail.fm
Tue Apr 13 02:39:24 PDT 2010

Paul Taylor wrote:
> With ID3v24 you can specify multiple genres by writing a null 
> character between each genres, and I treat as multiple genres with 
> equal precedence, unfortunately this is not how ID3v23 works.
> From the ID3v23 Spec:
> "The 'Content type', which previously was stored as a one byte numeric 
> value only, is now a numeric string. You may use one or several of the 
> types as ID3v1.1 did or, since the category list would be impossible 
> to maintain with accurate and up to date categories, define your own.
> References to the ID3v1 genres can be made by, as first byte, enter 
> "(" followed by a number from the genres list (appendix A) and ended 
> with a ")" character. This is optionally followed by a refinement, 
> e.g. "(21)" or "(4)Eurodisco". Several references can be made in the 
> same frame, e.g. "(51)(39)". If the refinement should begin with a "(" 
> character it should be replaced with "((", e.g. "((I can figure out 
> any genre)" or "(55)((I think...)". The following new content types is 
> defined in ID3v2 and is implemented in the same way as the numerig 
> content types, e.g. "(RX)"."
> So if you want to specify two genres and not use the numerical system, 
> how do you separate them - with a space ?
> i.e Rock Acapella
> and if you do separate with a space, how do you specify genres which 
> contain a space
> i.e Rock Punk Rock Acapella
> should be three genres, but would be read as four.
> and are multiple genres read as refinements , or as genres of equal 
> standing.
> Or should we be putting these in brackets, I though brackets only 
> applied to the predefined numeric types (plus RX and CV) but perhaps not.
> In summary I dont expect there is a right anwser, but I would love to 
> know whats others are doing, what is the defacto standard.
> Paul
Done some more delving this is what Foobar2000 does

By default it writes IDv24 tags but if you have 
AdvancedTagging/MP3/ID3v2 writer compatabilty mode set it writes ID3v23 
, but separates values by a null char (as in the v24 spec) . As a Foobar 
user you can specify multiple values by seperating them with a ; but a 
semicolon doesnt actually get written to a file a null char is written 
instead. When reading values back the values the null chars are 
converted to ;'s for display.


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