AIMP Forum

AIMP for Windows => Предложения / Suggestions => Topic started by: Merlin on May 06, 2020, 17:17:07

Title: Multi Genres parsing split character + ignore trailing spaces
Post by: Merlin on May 06, 2020, 17:17:07
Actually, AIMP is able to detect multi genres in tag with semicolon character, without any space before and after.

Its seems to follow this non official recommendation :
https://www.blisshq.com/music-library-management-blog/2011/03/12/multiple-genres-in-mp3s/
Quote
MP3s (or rather, the ID3 tagging format used by MP3s) don't support multiple tags for genre. Instead you must use the one existing tag and use a delimiter character to separate the genres within that tag. If your music tagger supports multiple genres, it will add the genres separated by the delimiter for you. If it doesn't you can always do it manually by manually adding the delimiter.

What delimiter should be used? The de facto standard most music players adopt is to use the semi-colon character. For instance, your genre tag should appear as so:

GENRE = Rock;Shoegazing;Alternative

Example : "Dance;Trance"

Problem : I recently did a lot of clean in my media library because lot of different rules were used in the different file I have :
"Dance;Trance"
"Dance ; Trance"
"Dance, Trance"

So my request feature :
1) first, ignore the trailing spaces because for AIMP, with genre tag like "Dance ; Trance", "Dance " with the ending space was a different genre than "Dance" without the ending space
2) allow to choose the split patterns, like that, user can add the semi colon, coma, slash, or whatever other separators to split the genres in the tag's field

Some example, same title with following genre tag value : "House;Test;Test1; Test1 ;Test2; Test2;Test2 ;Test3;Dup;Dup;Dup;Test4;Dup"
(https://i.imgur.com/nDyoYLt.png)
Title: Re: Multi Genres parsing split character + ignore trailing spaces
Post by: Artem on May 06, 2020, 17:44:29
1) Ok
2) No, each tag has own standard and rules that CANNOT BE customized by user!
Title: Re: Multi Genres parsing split character + ignore trailing spaces
Post by: Merlin on May 06, 2020, 18:25:54
1) Thanks :)

2) The semi colon seems not to be a standard of ID3, more like a convention followed by several players. I got mp3 from differents sellers (beatport, juno, ...) and saw not everytime use of ; separator. So it seems legit to cover more than only the ";". Since it seems ; is the main followed rules, other will be nice as optional and additional users settings splitter. Hope it makes sense with these extra explanations.
May be I badly understand you and it is more about the technical constraint in AIMP actually that make this feature suggestion not easy to implement ?
Title: Re: Multi Genres parsing split character + ignore trailing spaces
Post by: Artem on May 06, 2020, 21:04:22
ID3v2.3 uses "/" as separator, ID3v2.4 uses 0-character as separator.
Title: Re: Multi Genres parsing split character + ignore trailing spaces
Post by: Merlin on May 07, 2020, 01:29:57
Ok thanks for explanations !

I found these specifications a little bit confusing
https://id3.org/id3v2.3.0/#:~:text=category
Quote
TCON
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)".
No real mention of foreslash separator in official specification for 2.3 version ?

https://en.wikipedia.org/wiki/ID3#ID3v2
Quote
ID3v2.3
v2.3 expanded the frame identifier to four characters, and added a number of frames. A frame can contain multiple values, separated with a null byte. This is the most widely used version of ID3v2 tags.

https://en.wikipedia.org/wiki/ID3#ID3v2_frame_specification
Quote
Notes :
c. TCOM, TEXT, TOLY, TOPE, and TPE1 can contain multiple values separated by a foreslash ("/").

Version 2.4 of the specification prescribes that all text fields (the fields that start with a T, except for TXXX) can contain multiple values separated by a null character. The null character varies by character encoding.
=> Separator mentioned in wikipedia but v2.3 uses "generally" the nul separator for any frame but TCOM uses foreslash ?

But I think I get the point :
- technically AIMP recognizes foreslash separator between each TCOM values (correct with what i see in an hexadecimal editor)
- in UI, the genres separator is displayed as semi colon to end user, this is not what is technically stored in the file header
- follow the standard so only one separator recognized, not a good practice to handle extra other separators