Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difference between transcription.precision_recall_f1_overlap and multipitch.metrics? #223

Open
carlthome opened this issue Sep 21, 2016 · 5 comments
Milestone

Comments

@carlthome
Copy link
Contributor

carlthome commented Sep 21, 2016

Considering that transcription.py's symbolic representation is piano rolls with non-quantized pitches, what's the difference between transcription.py and multipitch.py really? I'm extra confused by how transcription.py references the multi-f0 mirex estimation task. Could anyone help clarify why both modules exist? When should which be used?

@carlthome carlthome changed the title Difference between transcription.precision_recall_f1_overlap and multipitch.metrics modules? Difference between transcription.precision_recall_f1_overlap and multipitch.metrics? Sep 21, 2016
@craffel
Copy link
Collaborator

craffel commented Sep 21, 2016

cc @rabitt @justinsalamon

Well, the difference starts with the fact that their annotation format is quite different. multipitch annotations specify, on a fixed timing grid, "what fundamental frequencies are present at this point in time?" transcription is more like MIDI, specifying individual notes, with start times, end times, and pitches. This means that evaluating them ends up looking a good bit different. I think the confusion about transcription linking to MIREX multi-f0 is that MIREX lumps these two arguably different tasks into one "heading". (@justinsalamon please correct me if I'm wrong and there is in fact an error in the docs). See the annotation format section of the MIREX task description page - there are clearly two different formats/tasks here.

Maybe we can make a PR to clarify this in the documentation?

@justinsalamon
Copy link
Collaborator

(@justinsalamon please correct me if I'm wrong and there is in fact an error in the docs).

Nope, that's correct.

@carlthome
Copy link
Contributor Author

carlthome commented Sep 21, 2016

Aha, so multipitch.py is for frame-based pitch estimation while transcription.py is for event-based pitch estimation? Thanks, @craffel!

It could be clarified in the docs, IMHO. Especially pros/cons of the respective formats, with some example use cases. Does it make sense to use multipitch.py for a solo piano? Does it make sense to use transcription.py for a string quartet? I'm confused.

@craffel
Copy link
Collaborator

craffel commented Sep 21, 2016

It could be clarified in the docs, IMHO.

I agree. If you or @justinsalamon or @rabitt want to make a PR, it would be welcome.

Especially pros/cons of the respective formats, with some example use cases.

This is outside the scope of mir_eval.

@rabitt
Copy link
Contributor

rabitt commented Sep 22, 2016

Another difference - multipitch is intended for time varying pitch
curves/sequences
whereas transcription is events with a single pitch throughout the note.

On Wednesday, September 21, 2016, Colin Raffel [email protected]
wrote:

It could be clarified in the docs, IMHO.

I agree. If you or @justinsalamon https://github.com/justinsalamon or
@rabitt https://github.com/rabitt want to make a PR, it would be
welcome.

Especially pros/cons of the respective formats, with some example use
cases.

This is outside the scope of mir_eval.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#223 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHypc1Oe0QOIF_REPkV_LWU-IGuNvY2xks5qsbIAgaJpZM4KCzDL
.

@craffel craffel added this to the 0.5 milestone Mar 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants