Re: Multiple genres are not recognized by filters
Posted: 31 Jan 2016 22:03
Not all users use MP3 files and only MP3 resp. ID3v2 define multiple genres - other formats only support a single plain text string as one genre value and the editor of this single string might separate this string by its own!
The problem is, that I can not implement a totally specific handling just for ID3v2. I see the other way around as the correct way: generalize the multiple ID3v3 genres by flatten them to a single semicolon separated text string (btw, even your MusicBee tagger is doing this in his genre text display).
The same is by the way the case for many other ID3v3 tags which might contain multiple value, e.g. Artist, Composer, Lyricist etc.
This is design decision I once made and I want to keep it - even, if in your case I agree, that it would make your life easier, if I would change it. But I am sorry and I hope you understand this.
Another solution for you is, that you define your possible 'Genre' values mutual exclusive, so that a simple 'Contains' filter will work.
E.g. instead of using "Rock" and "Rock Ballades" you might use "Regular Rock" and "Rock Ballades" - or something similar.
However, I already found the issue with your files!
Your files are not correctly tagged according to the ID3v2.3 specs.
In ID3v2.3 any text information frames, if a textstring is followed by a termination ($00 (00)) all the following information should be ignored and not be displayed/used. (see here http://id3.org/id3v2.3.0)
This specific to ID3v2.3 (in ID3v2.4 all text frames are stored as a null separated list).
The problem with your files (ID3v2.3 and probably with MusicBee) is, that here the multiple genres are separated by $00 (00) - instead of a slash ('/') or by round brackets ('(genre1)(genre2)'). Thus the multiple genres are not correctly recognized and any 2nd or more value is ignored.
The Media Library Server uses (for speed and efficiency reasons) a slightly different tag reading lib, which is slightly more strict. That's the reason, why ProppFrexx can read your incorrect format, while the MLS ignores it!
So please ask MusicBee, if they can correct their software to correctly wirte multiple genres according to ID3v2.3.
Alternatively you might use the tag writing function of ProppFrexx.
Unfortunately I can not really see, that this is a bug or issue of ProppFrexx or the MLS !
However, I understand, that it is not really consistent and that the MLS and ProppFrexx should read TAGs equally, but that is something to improve in v4 effectively!
The problem is, that I can not implement a totally specific handling just for ID3v2. I see the other way around as the correct way: generalize the multiple ID3v3 genres by flatten them to a single semicolon separated text string (btw, even your MusicBee tagger is doing this in his genre text display).
The same is by the way the case for many other ID3v3 tags which might contain multiple value, e.g. Artist, Composer, Lyricist etc.
This is design decision I once made and I want to keep it - even, if in your case I agree, that it would make your life easier, if I would change it. But I am sorry and I hope you understand this.
Another solution for you is, that you define your possible 'Genre' values mutual exclusive, so that a simple 'Contains' filter will work.
E.g. instead of using "Rock" and "Rock Ballades" you might use "Regular Rock" and "Rock Ballades" - or something similar.
However, I already found the issue with your files!
Your files are not correctly tagged according to the ID3v2.3 specs.
In ID3v2.3 any text information frames, if a textstring is followed by a termination ($00 (00)) all the following information should be ignored and not be displayed/used. (see here http://id3.org/id3v2.3.0)
This specific to ID3v2.3 (in ID3v2.4 all text frames are stored as a null separated list).
The problem with your files (ID3v2.3 and probably with MusicBee) is, that here the multiple genres are separated by $00 (00) - instead of a slash ('/') or by round brackets ('(genre1)(genre2)'). Thus the multiple genres are not correctly recognized and any 2nd or more value is ignored.
The Media Library Server uses (for speed and efficiency reasons) a slightly different tag reading lib, which is slightly more strict. That's the reason, why ProppFrexx can read your incorrect format, while the MLS ignores it!
So please ask MusicBee, if they can correct their software to correctly wirte multiple genres according to ID3v2.3.
Alternatively you might use the tag writing function of ProppFrexx.
Unfortunately I can not really see, that this is a bug or issue of ProppFrexx or the MLS !
However, I understand, that it is not really consistent and that the MLS and ProppFrexx should read TAGs equally, but that is something to improve in v4 effectively!