-
Notifications
You must be signed in to change notification settings - Fork 117
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
Extended chords not mapped correctly? #251
Comments
That second line ( I'll try to patch soon, and will tag you in the PR. |
oh, and to your second question ... I don't think That decision, however, is going to need some input from at least @craffel. |
also also thanks for raising the issue 😄 |
I'll chime in and disagree here (of course 😁). I think it would be useful to extend the chord encoding vector to a double-octave representation, so that above-octave extensions can be coded unambiguously (and distinct from, say, add2). Of course, we could retain the default behavior by collapsing out the second octave, but having the double-octave intermediate form might be useful down the line. |
I agree with setting Regarding the philosophical question - are there any evaluation measures that capture this? If not, I would stick to the YAGNI principle... |
re: double octave, how do we feel about introducing an argument that determines the length of re: default value for pitch quality reduction ... these additional scale degrees need to be ignored for most scoring algorithms (maj/min, thirds, sevenths, etc), because the bit-vector represents semitones, and not pitch classes. To illustrate, IIRC, the only metric that looks at pitch class intersection is MIREX, in which case a quality bitmap is required, and a double-octave doesn't make much sense (the upper half could be empty?). aren't chords just the most fun? 😀 |
This conflicts, however, with the MIREX evaluation, where indeed Which brings us back to the philosophical question whether |
To be fair, I'm not sure we know what MIREX does for something like
The description references ignoring scale degrees beyond the first octave (the example they give is mapping The closest thing I can find to the actual NEMA source that MIREX might be using is here but that repo is old. Is MusOOEvaluator being used for MIREX? Or does anyone have an idea of what is? Since we can't seem to avoid chord philosophy and music theory (no surprises there haha), I think this whole mess stems from the practice of "bonus" scale degrees, and I think they should be done away with full stop. So, to your question, I don't think
|
A bit more in favor of double-octave representations:
|
This isn't an issue of metrics so much as it is problem definition. I'm offering the argument that perhaps extensions / bonus scale degrees aren't even chords, e.g. To your point about comparing |
In my understanding, the task of chord recognition should not consider playing techniques or practices for any particular instrument. The problem is, then, that some (many?) annotations out there are probably based on how a song is played on the guitar. This is why I argued before that maybe we cannot really distinguish between in which octave a certain pitch class is present as part of the harmony. I think this is also in line with the argument that chord recognition is different from pitch recognition. But I also think that this might not be the right place for such a discussion 😄 |
Agreed! but it's been fun / productive regardless. Any thoughts on where it'd be worth moving the conversation? |
Not sure. There was an e-mail going around regarding an MIR slack channel, but the link does not seem to be active anymore. Anyways, we would need to define specific goals of such a discussion in order to make it meaningful, and include a broad community of people so that possible outcomes can be adopted widely. |
Is this closed by merging #252 ? |
i do believe so, but would default to @fdlm |
Yes, I think this is fixed now, thanks! 👍 |
mir_eval
handle extended chords correctly? It seems to ignore everything beyond the seventh:compared to
A:maj(9)
andA:maj(2)
differently in the first place? Both comprise the same pitch classes, and I doubt that one can distinguish between the two in the sound mixture of e.g. a pop/rock song.The text was updated successfully, but these errors were encountered: