A tonnetz-sequence chord generator.
Several gates/triggers are used to make chord progression based on the tonnetz-progression theory.
First three inputs are "toggled gate" controlled: when the input is high, it goes in "the other" mode, when gate is low, it switches back.
P=parallel: switches the major for the minor and reverse.
R=relative: switches over to the relative of the chord
L=leading tone: switches between leading tones
Next four inputs are triggered: every time the input goes high, it adds/subtracts a fourth or a fifth to/from all note in the chord.
pF=add a fifth to all notes in the chord (5th can be multiplied by Fmode-selector to make bigger jumps. Eg. going from F(IV) to G(V) would be Fmode=2)
nF=subtract a fifth from all notes in the chord
pf=add a fourth to all notes in the chord(4th can be multiplied by fmode-selector)
nf=subtract a fourth from all notes in the chord
iU=inverse the chord up by adding an octave to the lowest note in the chord.
iD=inverse the chord down by subtracting an octave from the highest note in the chord.
Note! Internally the octaves are wrapped back (pendulum-wise) when going above the max-octave setting, this will cause the octave to step down to 0 before going up again (only noticable when octave is set to 3 or higher). This will only influence the octave-number, not the note being played.
Next to the basic triad, four additional notes are being generated based on the notes of the triad. Together with the notes of the triad, these can be used to generate a melody next to the chord.
The sequence can be forced to reset at a note and mode (major/minor).
Next to this, the amount of octaves that can be played, can be set using the "octaves" selector. Note that this responds in a "pendulum-wise" manner, though the notes stay the same. So if a note internally goes up one octave, but passes the max-octave setting, it actually goes down one octave at the output.
For more information on tonnetz sequences, see this video on youtube:
To get a sequence to progress, you need to swap between changing L,R and P. If either one is toggled a second time without something else being changed, it just goes back to the former chord. Though of course, you can always send dual-triggers, triggering two or more changes at the same time.
The "gateSpreader" module (patt/gateSpreader) combined with a 0/1 counter /flipflop to generate a toggled gate works really well with this module.