Last time, I’d converted to arpeggio recording in octave.degree format to allow changing of scale on the fly. Another goal was to play progressions, which is what I’ve done here.
White Key Scale Player - Tones Only 10.audulus (2.0 MB)
I modified my old 1- to 16-bar progression machine to provide output in the oct.deg format. The progression machine outputs octave above or below key and degrees of scale of the progression in the same oct.deg format used elsewhere in the project. At the first degree (aka the tonic), in the octave containing the original key note, the output from the progression machine would be 0.01 (corresponding to a green octave light with a degree 1–note that red indicates one octave below, blue- one above, and violet- two above).
I also tightened the clocking of the progression machine to allow synchronizing on a particular loop sample. To ready the machine for synchronizing, pause it (pause button below), then hit reset. To synchr-start the machine at a particular point in the loop, hit pause again at that moment. The loop can also synchro-start when you record a sample into the loop, for instance when you have an arpeggio you want to start on the first beat of each bar.
To save CPU I’ve dumped the averaging tap tempo patch and converted to a simpler clock multiplier.
The walks follow the progression. All of the in-scale operations—setting to a key, stepping through a progression, random walks off of a progression, and in-scale bends for the solo channel—work in the same way. This video demonstrates all of them, with a progression in G, moving along the Mixolydian scale.
Basically, a scale sits atop a base tone— the key. Quantizer and scale look-up output adds to the key tone. To play the first degree, the quantizer or scale lookup outputs a zero for the first degree, meaning that the key note is what is output. Playing Notes higher up the scale, the unique interval for that degree of scale (plus or minus any octave shifts being played) add to the key for final output.
Progressions at higher degrees of scale and in-scale bends play out fundamentally the same way, with two important differences.
One difference is that when doing walks around a progression step, or bending a note currently being played, the base tone is now the key, plus the interval of the progression step or the interval of the current note being played.
Keeping these bends or walks in-scale brings us to the other difference—scale rotation. For each step in a progression, the scale is shifted to place that degree of scale at position one. This way, a 1-3-5-7-9, etc, arpeggio will naturally play using the unique chord intervals found starting at that degree of scale. In essence the scale never moves relative to the original key—we jack up the key and jack down the scale and allow the same arpeggio (or bend) to play from that point.
(You can probably see why I switched all A440-based Audulus octave signals to a C-basis inside the white-key module. I found it MUCH easier to wrap my brain around a tone encoding system that matches the C-based piano keyboard!)
Other changes:
The scale bend is retained, set here for a 0 to 2 step range set, defaulting to counterclockwise (pattern shifts to the left.)
I added foot pedal control, with sustain settings for pedal down and pedal up, and a button to reverse the action of the pedal.
I’ve added a 5th mono input to my mixer, and a stereo effects loop of sorts. The 5th input is being used to mix in the monophonic output of the drum machine.