craffel / mir_eval

Evaluation functions for music/audio information retrieval/signal processing algorithms.
MIT License
604 stars 112 forks source link

mir_eval.key.validate(reference_key, estimated_key)¶ when the key or the mode are unknown #333

Open PRamoneda opened 3 years ago

PRamoneda commented 3 years ago

Hello,

First of all, thank you very much for the library. It is fantastic!

At mir_eval.key:

When you don't know the key or the mode (in the reference or in the estimated) you should be able to compute the metric.

see the examples :

x minor
C

Well, x minor can be computed but I think that if your algorithm is performing the mode, the score should be more than 0.

Thank you so much!

PRamoneda commented 3 years ago

On the other hand, why do you only allow to evaluate (key, modes) that have major or minor modes? I believe that there are key datasets with much more extended vocabularies.

Thank you so much!!

craffel commented 3 years ago

The key module was created to match the conventions used by MIREX. If there are other benchmarks that use a richer set of annotations, we welcome PRs to implement that kind of evaluation.

PRamoneda commented 3 years ago

Hey @craffel! angel faraldo As is seen in this Angel Faraldo phd Thesis figure there are some datasets with extended vocabularies. (I think that all the vocabularies can be reduced to diatonic modes).

image

There are more datasets with diatonic modes annotations. As: https://zenodo.org/record/1290737#.X5BjPC3FRhE https://zenodo.org/record/1095691#.X5BjUi3FRhE https://zenodo.org/record/1101082#.X5BjaC3FRhE