-
Notifications
You must be signed in to change notification settings - Fork 116
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
chord.eval: expose extension-reduction parameters #274
Comments
Assuming there is a use-case for evaluation using |
It's not common (it's not even possible right now 😁) but I think there's no harm in exposing this parameter and preserving the default behavior. Down the road, I could imagine expanding the |
Just to add: I feel like similar situations can arise pretty easily in Jazz, with extended chords. A lot of times they have deliberately confusing chord types. Another classic example is this: German augmented 6th chord is enharmonically the same as a dominant 7th chord. The only way to tell them apart is to look at the context (ie how they resolve.)
|
Almost done implementing this, and ran into a couple of interesting points. I expected, since the PCPs are equivalent, that they should get perfect scores on all metrics. This turns out to not be correct:
I think the above can be resolved generally by relaxing the bin comparison strategy. Rather than seeing if the chord(s) in question match any of the known templates, we can instead specify a mask vector I've implemented that kind of logic before in IMO, the current behavior is incorrect/not expected/probably a bug, but I'm open to other interpretations. |
(tagging @tomxi @ejhumphrey)
The first step taken in the chord metrics is to map chord strings onto pitch/root/bass encodings, for example, here. Currently, this hard-codes the
reduce_extended_chords
parameter toFalse
(second argument). This maintains compatibility with mirex by default, but there is no way for a user to override this behavior. This is problematic for examples like the following (due to @tomxi):where the chords
c1
andc2
have identical pitch class content if extensions are included (last two encodings) but differ within the octave (first two encodings).What do folks think about exposing the reduction parameter at the API level, so that users can decide whether or not to include extensions? @ejhumphrey do you anticipate any backfiring here?
The text was updated successfully, but these errors were encountered: