ID3v2.4 suporta vários gêneros ( TCON ). Infelizmente, isso é extremamente mal suportado na maioria dos players de mídia e aplicativos de biblioteca. Acredito que o ID3v2.3 também tinha um mecanismo para vários gêneros, mas era complicado e raramente implementado adequadamente.
Aqui está a especificação v2.4.0 TCON. Como você pode ver, os gêneros podem ser strings de forma livre, bem como códigos numéricos, e vários gêneros são manipulados separando os valores com NULL ($ 00).
TCON
The 'Content type', which ID3v1 was stored as a one byte numeric
value only, is now a string. You may use one or several of the ID3v1
types as numerical strings, or, since the category list would be
impossible to maintain with accurate and up to date categories,
define your own. Example: "21" $00 "Eurodisco" $00
You may also use any of the following keywords:
ID3v2.4 também fornece uma tag "definida pelo usuário", TXXX. Você certamente poderia usar isso para criar suas próprias tags, mas teria que criar plugins ou patches para obter suporte ao media player. Espero que a maneira mais simples seja criar um TXXX chamado "tags" que contenha strings livres de NULL separadas (como o TCON).
A biblioteca de tags Mutagen implementa essas tags corretamente, assim como Ex Falso , um tagger do projeto QuodLibet. O QuodLibet deve ser capaz de realizar pesquisas complexas com base em vários gêneros ou tags definidas pelo usuário.
O Picard , o tagger do MusicBrainz, também pode usar o Mutagen, mas não posso confirmar isso por experiência pessoal. Ampache é o único aplicativo de biblioteca que eu encontrei que importa várias tags de gênero corretamente; a interface do usuário não é perfeita, mas foi bastante ativa da última vez que analisei o projeto.