info-native merged to master

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

info-native merged to master

Petteri Hintsanen-2
Hello all,

emms-info-native seems to work well enough so I merged it into the
master branch.  Thanks to everyone who helped in testing and debugging.
Of course, if you still run into bugs, please report them.

I'll update the manual soon-ish.

Petteri


Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Yoni Rabkin-2
Petteri Hintsanen <[hidden email]> writes:

> Hello all,
>
> emms-info-native seems to work well enough so I merged it into the
> master branch.  Thanks to everyone who helped in testing and debugging.
> Of course, if you still run into bugs, please report them.
>
> I'll update the manual soon-ish.

Thank you for all of your ongoing work.

--
   "Cut your own wood and it will warm you twice"

Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Fran Burstall (Gmail)
In reply to this post by Petteri Hintsanen-2
Hi,

I get a lot of mismatches emms-info-native vs emms-info-taglib around two tags:

1.  albumartistsort: 
emms-print-metadata gives
info-album=The Black Box of Jazz
info-albumartist=Various Artists
info-albumartistsort=Various Artists
info-artist=Phil Woods
info-artistsort=Woods, Phil
info-date=2000
info-originaldate=1995
info-label=Millenia Music
info-title=Caravan
info-tracknumber=27/50
info-discnumber=3/4
info-playing-time=437

where emms-info-native gives:
(("albumartistsort" . "Blakey, Art & Jazz Messengers, The")
 ("albumartist" . "Various Artists")
 ("label" . "Millenia Music")
 ("artistsort" . "Woods, Phil")
 ("originaldate" . "1995")
 ("date" . "2000")
 ("discnumber" . "3/4")
 ("album" . "The Black Box of Jazz")
 ("tracknumber" . "27/50")
 ("artist" . "Phil Woods")
 ("title" . "Caravan"))

It is interesting that exiftool gives the same answer as emms-info-native here so maybe this is a controversial tag?

2. genre: emms-native-info yields things like "(16)" while emms-print-meta-data gives things like "Reggae".

I think all this happened at commit 5aea8e7 which is why I did not pick it up before.

---Fran




On Tue, 23 Feb 2021 at 20:10, Petteri Hintsanen <[hidden email]> wrote:
Hello all,

emms-info-native seems to work well enough so I merged it into the
master branch.  Thanks to everyone who helped in testing and debugging.
Of course, if you still run into bugs, please report them.

I'll update the manual soon-ish.

Petteri


Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Petteri Hintsanen-2
"Fran Burstall (Gmail)" <[hidden email]> writes:

> I get a lot of mismatches emms-info-native vs emms-info-taglib around two
> tags:
[...]
> It is interesting that exiftool gives the same answer as emms-info-native
> here so maybe this is a controversial tag?

"Album artist sort" is taken from "TSO2" frame, which is not standard,
but not necessarily controversial.  At least those two references
mentioned in code (Foobar2000 and Picard) agree on it, as does
https://id3.org/Developer%20Information

I think taglib is going wrong here.

> 2. genre: emms-native-info yields things like "(16)" while
> emms-print-meta-data gives things like "Reggae".

This is nasty.  Those numbers are id3v1 genre indexes
(https://en.wikipedia.org/wiki/ID3#Genre_list_in_ID3v1[12]).  Maybe we
need to add id-to-string mapping for them.

Are those genre numbers plain integers or are they enclosed in
parentheses, quotes or something else?

> I think all this happened at commit 5aea8e7 which is why I did not pick it
> up before.

Yes.  I added some more frames so that MP3 metas would be
feature-compatible with Vorbis.

Petteri

Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Fran Burstall (Gmail)

"Album artist sort" is taken from "TSO2" frame, which is not standard,
but not necessarily controversial.  At least those two references
mentioned in code (Foobar2000 and Picard) agree on it, as does
https://id3.org/Developer%20Information

I think taglib is going wrong here.

Maybe so, but in all the cases in my tests, it gives the "right" answer.  In the example I gave , it was part of a compilation with albumartist "Various Artists" and I would expect albumartistsort to at least approximately match.

> 2. genre: emms-native-info yields things like "(16)" while
> emms-print-meta-data gives things like "Reggae".

This is nasty.  Those numbers are id3v1 genre indexes
(https://en.wikipedia.org/wiki/ID3#Genre_list_in_ID3v1[12]).  Maybe we
need to add id-to-string mapping for them.

Are those genre numbers plain integers or are they enclosed in
parentheses, quotes or something else?

Enclosed in parens: here is what emms-info-native--decode-into-fields yields in one example:

(("year" . "2015")
 ("genre" . "(16)")
 ("discnumber" . "1/1")
 ("tracknumber" . "1/3")
 ("albumartist" . "Gregory Isaacs")
 ("artist" . "Godwin Logie")
 ("title" . "Poor Man in Love")
 ("album" . "Sly & Robbie Present Poor Man in Love EP"))

---Fran

Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Petteri Hintsanen-2
"Fran Burstall (Gmail)" <[hidden email]> writes:

>> I think taglib is going wrong here.
>
> Maybe so, but in all the cases in my tests, it gives the "right" answer.
> In the example I gave , it was part of a compilation with albumartist
> "Various Artists" and I would expect albumartistsort to at least
> approximately match.

Sure, it does not make sense to have something else than "Various Artists"
in that case.

I checked from taglib sources and it uses the same TSO2 frame for
albumartistsort.  This is puzzling: info-native should give exactly the
same info.  Can you please send a sample of some offending file so I can
investigate?

thanks,
Petteri

Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Fran Burstall (Gmail)
Here!

---Fran


On Tue, 23 Feb 2021 at 23:15, Petteri Hintsanen <[hidden email]> wrote:
"Fran Burstall (Gmail)" <[hidden email]> writes:

>> I think taglib is going wrong here.
>
> Maybe so, but in all the cases in my tests, it gives the "right" answer.
> In the example I gave , it was part of a compilation with albumartist
> "Various Artists" and I would expect albumartistsort to at least
> approximately match.

Sure, it does not make sense to have something else than "Various Artists"
in that case.

I checked from taglib sources and it uses the same TSO2 frame for
albumartistsort.  This is puzzling: info-native should give exactly the
same info.  Can you please send a sample of some offending file so I can
investigate?

thanks,
Petteri

albumartistsort.mp3 (99K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Petteri Hintsanen-2
"Fran Burstall (Gmail)" <[hidden email]> writes:

>> same info.  Can you please send a sample of some offending file so I can
>> investigate?

> Here!

Thanks.

The file has a TSO2 frame with the "wrong" value, as expected, but it
also has a user-defined text frame TXXX with ALBUMARTISTSORT key and
"Various Artists" value.  So taglib prefers TXXX over TSO2.  It probably
happens because TXXX comes before TSO2 in the file.

We could do the same by decoding TXXXs in emms-info-native.  It could be
a defcustom in case some users prefer strictly "standard" tags.

Petteri

Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Fran Burstall (Gmail)
We could do the same by decoding TXXXs in emms-info-native.  It could be
a defcustom in case some users prefer strictly "standard" tags.

That is probably the way to go though my reading of the spec is that TSO2 is not strictly standard either!

---Fran



On Wed, 24 Feb 2021 at 15:50, Petteri Hintsanen <[hidden email]> wrote:
"Fran Burstall (Gmail)" <[hidden email]> writes:

>> same info.  Can you please send a sample of some offending file so I can
>> investigate?

> Here!

Thanks.

The file has a TSO2 frame with the "wrong" value, as expected, but it
also has a user-defined text frame TXXX with ALBUMARTISTSORT key and
"Various Artists" value.  So taglib prefers TXXX over TSO2.  It probably
happens because TXXX comes before TSO2 in the file.

We could do the same by decoding TXXXs in emms-info-native.  It could be
a defcustom in case some users prefer strictly "standard" tags.

Petteri
Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Petteri Hintsanen-2
"Fran Burstall (Gmail)" <[hidden email]> writes:

>> We could do the same by decoding TXXXs in emms-info-native.  It could be
>> a defcustom in case some users prefer strictly "standard" tags.

> That is probably the way to go though my reading of the spec is that TSO2
> is not strictly standard either!

That's right.  I was thinking of a general design like:

  "parse TXXX FOO BAR"  =>  set 'info-FOO to BAR, if info-FOO is a known info field

This is the way emms-info-native handles Vorbis comments.  They are
basically arbitrary KEY=VALUE pairs.  So TXXXs would be handled
equally--and they could override "standard" T-frames like TALB, which
someone might find troubling.  But this can be entirely academic issue
too.

--
Petteri

Reply | Threaded
Open this post in threaded view
|

Re: info-native merged to master

Petteri Hintsanen-2
In reply to this post by Fran Burstall (Gmail)
"Fran Burstall (Gmail)" <[hidden email]> writes:

> I get a lot of mismatches emms-info-native vs emms-info-taglib around two
> tags:
>
> 1.  albumartistsort:
>
> 2. genre: emms-native-info yields things like "(16)" while
> emms-print-meta-data gives things like "Reggae".
>
> I think all this happened at commit 5aea8e7 which is why I did not pick it
> up before.

I pushed a new revision into info-native branch, you can try it if it
works better.  It now parses TXXX frames which should resolve (1) and
also id3v1 genres which should resolve (2).

Unfortunately it is now about twice as slow as before on my set of MP3s,
because there are lots of TXXX frames to go through.  Previously they
were simply skipped over.  But it is still reasonably fast and
efficiency is no concern to the EMMS proper.

--
Petteri