harmony
harmony copied to clipboard
Seventh goes downward rule is missing on "viio" chords
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
.
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.