here we go, @solidsnayke
Quite a lot to work through here!
Below is an overview which will make maore sense if you Monitor each stage as you press the 3 buttons as appropriate.
The preset(s) have two main sections:
- The Sequence block
- The Chord Block
There is also a temporary Monitoring block. This can be removed once you’ve monitored that each pedal press is giving the results that you want.❖
The two main sections share no messages whatsoever (see that the Sequence virtual-outs, H&G do not appear in the Chord inputs).
They are only linked by the mapping that the Sequence section produces.
The Sequence block
Here each of the 3 incoming CCs create a Note On with the same number.
- These three notes are then dealt with in separate pipelines.
- The “Next” & “Previous” pipelines Transform the incoming Note (#108/109) into a NoteOn with a mapping value.
- this Note passes through a Scale Remap which changes the current Note# into the Next/Previous Note#
- this new Note# is then used to create a mapping (Ch16 CC110 @virtual G)… .
…which then updates the 3 Transforms (with green corner squares)
…which sets up the system ready for the next button press.
Scale Remap
The Scale Remap and the mapping that’s made from its output is the core of the sequencing.
Here’s the Scale Remap for “Next”:
This doesn’t work in the designed musical way– forcing all notes into, say, the Blues Hexatonic scale.
Here we use it for data manipulation; to go from one state to another:
-
So G is note 7(V) in the C scale starting with C=0.
See that 7(V) → 2 which is (II = D).
-
Then 2 → 0 ie. I = C, and
-
0 → 5 ie. IV = F, and finally
-
5 → 7 taking us back to G
This gives the cycle G → D → C → F ( → G)…
..which we can then use for our chord creation
The Chord Block
The chord block uses the incoming CC and transforms it into a note whose Note# is set by the processes above.
Just like your earlier patch, this note is then directed to the correct chord Harmonizer.
et voila
Two versions.
I first wrote solidsnayke_chord_trigger_sequence.mhp which was the simplest approach.
It changes to the next sequence note only when the Note Off is received
it has this issue...
namely, because it plays the chord before updating…
…(ie. after the chord, the system gets ready for the next note/chord)…
…when the direction is reversed (CC109), it needs an extra press to get back to where you were…
Which led me to design a rather more complex version 2
solidsnayke_chord_trigger_sequence2.mhp
Here we see
CC108 (v=127) in green, triggering the Next chord
CC109 (v=127) in red, triggering the Previous chord
and CC110 (v=127) in purple, resetting to G
I include both just because the earlier version is a little bit easier to understand.
Version2 has a few extra hoops which I won’t go into now. I’ll explain the differences when you’re ready.
❖ at present, the presets have no MIDI-out. When you’re happy and ready to play:
just disable the Monitoring A-IN and send Virtual B - IN to your chosen MIDI-OUT.