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

Seventh goes downward rule is missing on "viio" chords #3

Open
napulen opened this issue Aug 19, 2020 · 2 comments
Open

Seventh goes downward rule is missing on "viio" chords #3

napulen opened this issue Aug 19, 2020 · 2 comments

Comments

@napulen
Copy link
Contributor

napulen commented Aug 19, 2020

In this example, the tritone (F and B) of a viio moves in parallel motion upwards. The parallel motion is probably allowed because the quality of the fifth is different diminished fifth != perfect fifth and it is not penalized as a parallel fifth.

However, the most important thing is that the F should preferably resolve to E instead of going up to G. This is already handled in V7 chords with the rule of Seventh should resolve downward or stay in unison, however, this does not mitigate the same problem in viio chords, because the F is the fifth of that triad, not the seventh. The code is looking for chord.seventh.

image

The example can be reproduced with this input:

parser.set_defaults(
        key="C",
        chord_progression="I IV6 V6 I V vi IV IV2 viio6 I V I V6 vi65 viio6 I6 ii65 V7 I",
        durations="1 1 1 1 1 1 1 1/2 1/2 1 2 1 1 1 1 1 1 1 2",
        time_signature="3/4",
)

In the same example, a melodic leap of a seventh is seen in the bass (D down a seventh to E). Some melodic motions in the same voice should be penalized. Sevenths are one of them. Augmented seconds are another one. Tritones are another one. Maybe more I can't remember now. This can be a separate issue.

@ekzhang
Copy link
Owner

ekzhang commented Aug 20, 2020

Ah, I agree that seems a little awkward. Thanks for the expert feedback. I think large jumps (of > 7 semitones) in the bass are penalized, but maybe by not enough?

Have to think more about the fa->mi resolution in vii->I.

@napulen
Copy link
Contributor Author

napulen commented Aug 20, 2020

Yeah, currently the policy is to penalize large jumps.

In practice, jumps are tricky. An augmented second is a relatively short leap (same as a minor third) but several harmony books forbid them (has to do with melodic and harmonic minor scales). Leaping an octave (especially in the bass) is totally fine, but sevenths are strictly forbidden by several theorists (basically because they're difficult to sing, or so they say). So, these weights need some fine adjustments additionally to keeping jumps short.

I'll try to think of something too, and maybe make a PR with the suggestions.

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

2 participants