Questions re Database and Indexing
|
21-12-2013, 20:49
Post: #11
|
|||
|
|||
RE: Questions re Database and Indexing
(21-12-2013 17:32)magister Wrote: Andre,Magister, You indeed raised some doubt in my mind. I loaded some multiple artist tracks (mp3 320 kbs tagged with MediaMonkey) inside mp3tag to look at how the Artist tag was displayed by mp3tag, compared to MediaMonkey. I then browsed the "All Artists" index of MinimServer, to see how the artists names appeared in the control point (BubbleUPnP). Here are some observations. 1- Inside MediaMonkey, all multiple artists are shown as a a semicolon separated list of names. 2- Inside mp3tag, the ARTIST tag is shown as a *single*" string, with artist names separated by a slash (alt-T shows only one ARTIST value). 3- When browsing with MinimServer the "All Artists" index, *some* multiple artist strings are listed as one value (eg. mp3tag shows "Lemieux, Marie-Nicole; Lis, François; Orchestre national de France" as the ARTIST value, and I find the same entry in the minimserver "All Artists" index. 4- However, for *some* others, the multiple artist string is clearly splitted along artist names when browsing the "All Artists" index. For ex., mp3tag shows the single string "Montreal Symphony Orchestra/Chung, Kyung Wha" as the artist tag value (again, alt-T shows only *one" ARTIST tag for this track), and I get in the minimserver "All Artists" index one entry each for "Montreal Symphony Orchestra" and "Chung, Kyung Wha"). 5-When looking at FLAC files, the situation is much clearer. Every semicolon separated list as shown by MediaMonkey is displayed as a "\\" separated list by mp3tag (alt-T displaying *multiple* ARTIST tags). Observation 5 seems to confirm your point that MediaMonkey is creating multiple ARTIST tags as mp3tag does, and displays them in its UI separated by ";" instead of "\\", and that MinimServer does no splitting whatsoever on the artist tag value. Observations 3 and 4 however get me confused about what is doing what. Among multiple artist strings which are *all* seen as a single value by mp3tag, some reach the "All Artists" MinimServer index untouched, and some splitted along each artist name. I never noticed this discrepancy before, as I very rarely resort to mp3 encoded files. If MinimServer never does any splitting (this is a question Simon could throw light on for sure), this may indicate that mp3tag is sometimes wrong when it reports a single artist tag, and that mediamonkey sometimes does not produce correct multiple artist tags when handling semicolon separated lists. Is there any system tool which would clearly display the tag structure of a music track ? Regards |
|||
21-12-2013, 22:17
Post: #12
|
|||
|
|||
RE: Questions re Database and Indexing
This discussion confirms my expressed view that, while specifications undoubtedly allow for multiple tags, methods of implementing them in different applications are often inconsistent and sometimes mutually contradictory.
A particular irritation for me is that the dbPoweramp CD ripper - in most respects a splendid application - insists on replacing any semicolon in a tag with a double slash, and then (I think) dividing the tag at this point. If this happens in the Album tag, MinimServer immediately throws up an error, as it (somewhat understandably) does not support multiple album tags. There is no way I can find to switch off this unhelpful behaviour in dbPoweramp. I look forward to further rounds of this discussion, particularly if they provide a workflow for entering multiple tags in a form that both MinimServer and Control Points can use. David |
|||
21-12-2013, 23:04
Post: #13
|
|||
|
|||
RE: Questions re Database and Indexing
(21-12-2013 20:49)Andre Gosselin Wrote: If MinimServer never does any splitting (this is a question Simon could throw light on for sure), this may indicate that mp3tag is sometimes wrong when it reports a single artist tag, and that mediamonkey sometimes does not produce correct multiple artist tags when handling semicolon separated lists. MinimServer never does any splitting, except for tags where splitting is required by the tagging specification. For example, in ID2v2.3, some tag frames separate multiple values using a slash, and in ID3v2.4, most tag frames separate multiple values by a NUL 0x00 character. If you see a combination of multiple artists in a single entry in the MinimServer All Artists index, this indicates that these artists have been incorrectly combined into a single tag value. Quote:Is there any system tool which would clearly display the tag structure of a music track ? I haven't found one, so I use a hex editor to see what tags are in the file. |
|||
22-12-2013, 00:52
Post: #14
|
|||
|
|||
RE: Questions re Database and Indexing
(21-12-2013 23:04)simoncn Wrote:Thanks a lot for your reply. I think I have learned a lot today about taggging issues, especially about how multiple values are handled by minimserver, and created by my tagging software (unfortunately sometimes in an incorrect manner). I am facing a massive rework of my multiple artist and genre values in my mp3 files. So may I ask a last question, if you don't mind ?(21-12-2013 20:49)Andre Gosselin Wrote: If MinimServer never does any splitting (this is a question Simon could throw light on for sure), this may indicate that mp3tag is sometimes wrong when it reports a single artist tag, and that mediamonkey sometimes does not produce correct multiple artist tags when handling semicolon separated lists. If mp3tag reports the artist tag as the *single* string "artistA/artistB/artistC" and "artistA", "artistB", "artistC" are nonetheless listed individually under the "All Artists" index produced by MinimServer, does that mean that the slashes are the ones you refer to when you write : Quote:MinimServer never does any splitting, except for tags where splitting is required by the tagging specification. For example, in ID2v2.3, some tag frames separate multiple values using a slash,Or could it be that mp3tag inaccurately reports the tag value as being a unique string ? This will help me report the problem to the makers of my tagging software (MediaMonkey to be precise). Thanks again for your help. |
|||
22-12-2013, 06:56
Post: #15
|
|||
|
|||
RE: Questions re Database and Indexing
Very interesting discussion! I only use FLAC files for works that involve serious tagging (mainly classical music), and I have never noticed any time when mp3tag seemed to handle multiple artists incorrectly--which seems to match your experience. I will try an mp3 file, if I have one with multiple artists.
Andre, you obviously found the Alt-T command. For those who don't know: mp3tag will show you all the tags in a track if you highlight it and type Alt-T. I find this useful sometimes if I want to examine tags that aren't shown in the standard view that I have set up in mp3, and it is accurate, at least for FLAC. |
|||
22-12-2013, 15:36
(This post was last modified: 22-12-2013 15:36 by simoncn.)
Post: #16
|
|||
|
|||
RE: Questions re Database and Indexing
(22-12-2013 00:52)Andre Gosselin Wrote: Thanks a lot for your reply. I think I have learned a lot today about taggging issues, especially about how multiple values are handled by minimserver, and created by my tagging software (unfortunately sometimes in an incorrect manner). I am facing a massive rework of my multiple artist and genre values in my mp3 files. So may I ask a last question, if you don't mind ? Is this "artistA/artistB/artistC" string part of an ID3v2.3 tag? If so, it isn't possible for Mp3tag to know whether it's a single artist containing slashes or multiple artists separated by slashes. The best solution is to to change your tags from ID3v2.3 to ID3v2.4. You can use dbPoweramp to do this. ID3v2.4 doesn't use '/' as a separator, so there is no ambiguity. |
|||
22-12-2013, 22:47
Post: #17
|
|||
|
|||
RE: Questions re Database and Indexing
(22-12-2013 15:36)simoncn Wrote:(22-12-2013 00:52)Andre Gosselin Wrote: Thanks a lot for your reply. I think I have learned a lot today about taggging issues, especially about how multiple values are handled by minimserver, and created by my tagging software (unfortunately sometimes in an incorrect manner). I am facing a massive rework of my multiple artist and genre values in my mp3 files. So may I ask a last question, if you don't mind ? Thanks for all this info. I now have a better understanding of how multiples values in a tag may be handled, and why problems may arise. I will humbly summarize my ideas below, hoping this may prove helpfull to others. 1. FLAC files use Vorbis/comments tagging standard, and this allows for multiple instances of some tag types, most importantly ARTIST and GENRE. Correctly handling multiple artist names or genres causes no problem here. Tagging softwares use different *conventions* to let the user separate the values inside the tag fields in their user interface. MP3Tag uses "\\" as a separator, others like foobar and mediamonkey use a ";". The important point is that the separator serves there only as a display feature, and that a different "tag=value" instance is written to the file for each distinct value isolated by the separator. 2. The situation is different for MP3 files, since this format allows for only *one* instance of a given tag type, eg only one artist (TP1 or TPE1 using MP3 terminology) tag, or one genre (TCO or TCON in MP3 terminology) tag. To enter multiple values inside a tag, one has to resort to some sort of "convention" on how to separate values inside the single tag value (I use the word "convention" with care here, since some may speak of a "standard" which varies according to which flavor of ID3 tag is used). The important point to remember is that the separator is now *part* of the tag value, and that the software reading the mp3 file must be either prepared to deal with it, or choose to simply ignore it. 3- Inside an MP3 artist (TCO, TCON) tag, a slash is conventionally used as a separator if the track is marked as being of ID3v2.3 type. For a track marked as being of ID3v2.4 type, the slash looses its significance as a separator, and the separator should be a null-byte. A null-byte cannot be entered by hand, and the tagging software must take care of this. 4- MinimServer is very strict about this when it comes to splitting the mp3 artist tag along artist names when building the "All Artists" index. A slash will provoke a split only if the track is marked as ID3v2.3, otherwise the entire tag value will become one entry in the "All Artists" index. A null-byte will generate a split only if a track is marked as ID3v2.4, otherwise (from my tests) MinimServer will ignore everything following the null-byte in the tag string. For MinimServer users, the important point is to make sure that the tagging software used can be made to follow those rules, and it is not always easy to verify this. For example, among the programs I know, MediaMonkey cannot output ID3v2.4 tags, only ID3v2.3. Multiple artists are entered in the UI using a ";" as a separator which MM will internally translate to a "/" (a "/" can also be used directly in the Artist field). Foobar2000 can output ID3v2.4 tags, if you take care of selecting a deep setting in the Advanced tab. Multiple artists are entered in the UI using a ";", which is internally translated to a "/" or a null-byte (according to the tag standard used). MP3Tag can also be used, but be carefull to correctly set the tag type used before entering the separator. If you use a "\\", MP3Tag will *always* translate it as a null-byte in the output file, even if the tag type is set as ID3v2.3. An alt-T cmd will show multiple "virtual" artist tags, but MinimServer will simply ignore the artist names following the "\\" in the MP3Tag UI. I am not sure if this should be called a Mp3Tag bug or not, but this behavior took me quite a long time to figure out. Maybe a null-byte should always be treated as a valid separator by softwares reading the mp3 file, irrespective of the tag type used. This would require a fix to MinimServer. 5- As far as MinimServer is concerned, the multiple value issue with the MP3 genre tag seems less clear regarding the valid separator to be used. MediaMonkey and Foobar always use a ";", irrespective of the tagging standard used, but MinimServer simply ignores it and refuses to split along it. A "/" does not work also. The only separator I could find to have MinimServer split the genre values is a null-byte, and the only tagging software I know about that can achieve that is Mp3Tag (using "\\"), but only if you apply the ID3v2.4 tagging standard), otherwise the rest of he genre string will be ignored (as is the case for the artist tag). I loaded some MP3 tracks with multiple genres separated by a ";" inside 3 music servers I know about, namely AssetUPnP, MediaMonkey and Foobar2000. All 3 can extract individual genres out of the genre strings. This could indicate that the use of ";" as a separator inside the MP3 genre tag is seen as a de facto "standard" by the industry, and it could be a good thing for MinimServer to behave similarly. I hope I have it mostly correct this time! Cheers to all |
|||
23-12-2013, 00:12
Post: #18
|
|||
|
|||
RE: Questions re Database and Indexing
(22-12-2013 22:47)Andre Gosselin Wrote: Thanks for all this info. I now have a better understanding of how multiples values in a tag may be handled, and why problems may arise. I will humbly summarize my ideas below, hoping this may prove helpfull to others. The tagging specification allows this for all tag types, not just some tag types. Servers and control points might impose additional restrictions for some tag types. Quote:2. The situation is different for MP3 files, since this format allows for only *one* instance of a given tag type, eg only one artist (TP1 or TPE1 using MP3 terminology) tag, or one genre (TCO or TCON in MP3 terminology) tag. To enter multiple values inside a tag, one has to resort to some sort of "convention" on how to separate values inside the single tag value (I use the word "convention" with care here, since some may speak of a "standard" which varies according to which flavor of ID3 tag is used). The important point to remember is that the separator is now *part* of the tag value, and that the software reading the mp3 file must be either prepared to deal with it, or choose to simply ignore it. This use of separators is defined by the specification and isn't an optional behaviour or convention for software that reads the tag. Quote:3- Inside an MP3 artist (TCO, TCON) tag, a slash is conventionally used as a separator if the track is marked as being of ID3v2.3 type. For a track marked as being of ID3v2.4 type, the slash looses its significance as a separator, and the separator should be a null-byte. A null-byte cannot be entered by hand, and the tagging software must take care of this. The references to "convention" and "should" are misleading. These should be "specification" and "must". Quote:4- MinimServer is very strict about this when it comes to splitting the mp3 artist tag along artist names when building the "All Artists" index. A slash will provoke a split only if the track is marked as ID3v2.3, otherwise the entire tag value will become one entry in the "All Artists" index. A null-byte will generate a split only if a track is marked as ID3v2.4, otherwise (from my tests) MinimServer will ignore everything following the null-byte in the tag string. For MinimServer users, the important point is to make sure that the tagging software used can be made to follow those rules, and it is not always easy to verify this. MinimServer is designed to implement the relevant tagging specifications as closely (strictly) as possible. Quote:For example, among the programs I know, MediaMonkey cannot output ID3v2.4 tags, only ID3v2.3. Multiple artists are entered in the UI using a ";" as a separator which MM will internally translate to a "/" (a "/" can also be used directly in the Artist field). Foobar2000 can output ID3v2.4 tags, if you take care of selecting a deep setting in the Advanced tab. Multiple artists are entered in the UI using a ";", which is internally translated to a "/" or a null-byte (according to the tag standard used). MP3Tag can also be used, but be carefull to correctly set the tag type used before entering the separator. If you use a "\\", MP3Tag will *always* translate it as a null-byte in the output file, even if the tag type is set as ID3v2.3. An alt-T cmd will show multiple "virtual" artist tags, but MinimServer will simply ignore the artist names following the "\\" in the MP3Tag UI. I am not sure if this should be called a Mp3Tag bug or not, but this behavior took me quite a long time to figure out. Maybe a null-byte should always be treated as a valid separator by softwares reading the mp3 file, irrespective of the tag type used. This would require a fix to MinimServer. This behaviour would violate the ID3v2.3 specification, so it could not be considered a "fix". Quote:5- As far as MinimServer is concerned, the multiple value issue with the MP3 genre tag seems less clear regarding the valid separator to be used. MediaMonkey and Foobar always use a ";", irrespective of the tagging standard used, but MinimServer simply ignores it and refuses to split along it. A "/" does not work also. The only separator I could find to have MinimServer split the genre values is a null-byte, and the only tagging software I know about that can achieve that is Mp3Tag (using "\\"), but only if you apply the ID3v2.4 tagging standard), otherwise the rest of he genre string will be ignored (as is the case for the artist tag). All of this is exactly in line with the relavent tagging specifications. Quote:I loaded some MP3 tracks with multiple genres separated by a ";" inside 3 music servers I know about, namely AssetUPnP, MediaMonkey and Foobar2000. All 3 can extract individual genres out of the genre strings. This could indicate that the use of ";" as a separator inside the MP3 genre tag is seen as a de facto "standard" by the industry, and it could be a good thing for MinimServer to behave similarly. I don't think it would be a good thing for MinimServer to violate the ID3v2.3 specification as you are suggesting. Quote:I hope I have it mostly correct this time! Yes, you do. Thanks for this very helpful summary. |
|||
23-12-2013, 01:08
Post: #19
|
|||
|
|||
RE: Questions re Database and Indexing
(23-12-2013 00:12)simoncn Wrote:(22-12-2013 22:47)Andre Gosselin Wrote: Thanks for all this info. I now have a better understanding of how multiples values in a tag may be handled, and why problems may arise. I will humbly summarize my ideas below, hoping this may prove helpfull to others. Thanks Simon for having taken time to read me from start to end. I hope you do not take my humble suggestions about the possible changes to the way MinimServer handles multiple values inside MP3 tags as being criticisms on the fantastic software you wrote, and made available for free to all of us. They are just that, suggestions, from a man who spent more than 35 years writing software for the scientific community, and who learned the hard way that sometimes it is reasonable to relax standards a bit if doing so proves helpful to many users, and if this can be done in a controlled way. For example, perhaps a setting enabling special treatment of ";" inside MP3 genre tag could be a solution ? People coming from music servers where this is done may feel here that, on this point, MinimServer is inferior to the solution they currently use. Such a setting could accomodate them nicely, in my humble opinion. Anyway, this is not too serious, and I will keep enjoying MinimServer which has now become my server of choice. Have a nice Christmas. Andre |
|||
23-12-2013, 08:30
Post: #20
|
|||
|
|||
RE: Questions re Database and Indexing
(23-12-2013 01:08)Andre Gosselin Wrote: Thanks Simon for having taken time to read me from start to end. I hope you do not take my humble suggestions about the possible changes to the way MinimServer handles multiple values inside MP3 tags as being criticisms on the fantastic software you wrote, and made available for free to all of us. They are just that, suggestions, from a man who spent more than 35 years writing software for the scientific community, and who learned the hard way that sometimes it is reasonable to relax standards a bit if doing so proves helpful to many users, and if this can be done in a controlled way. For example, perhaps a setting enabling special treatment of ";" inside MP3 genre tag could be a solution ? People coming from music servers where this is done may feel here that, on this point, MinimServer is inferior to the solution they currently use. Such a setting could accomodate them nicely, in my humble opinion. The standard provides the necessary capabilities for tagging multiple genres, and I don't think it's a good idea for MinimServer to provide a flag to support this nonstandard approach as an alternative. From your long post, it is clear that this area is already very complex and confusing, and I am intentionally keeping MinimServer as close as I can to the published standards to avoid any further confusion about the correct way to tag multiple values. Quote:Anyway, this is not too serious, and I will keep enjoying MinimServer which has now become my server of choice. Thanks very much, and a very happy Christmas to you as well. |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)