harmony icon indicating copy to clipboard operation
harmony copied to clipboard

Seventh goes downward rule is missing on "viio" chords

Open napulen opened this issue 3 years ago • 2 comments

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.

napulen avatar Aug 19 '20 16:08 napulen