Typical for me, I tinkered a bit!
Delay Looper 9.audulus (1.6 MB)
I ended up leaving the loopers in the state machine implementation. That didnāt cost as much (in processor load) as I thought and the features it allowed made that cost worth it for me.
With the delays settled I started looking at randomization of some of the high-Q filter nodes to give it all some variability. I added three of my random knob modules to modulate the center freq of the filters.
There are still four loopers, each with a midi-note-tracking, peaky, high-Q filter. Each filter has its nominal frequency, relative to a stored midi note value, set by a knob.
(The random knob modules issue random values nominally distributed about a mean ranging from 0 to 1. Variability conforms to the normal distribution, with the range of variability falling within approximately +/- three standard deviations. Final distribution is either constrained to [0-1] or is unbounded, depending on the value applied at the [0-1] input. You set mean with the left knob and variability with the right knob.)
Looper one and two are set to take input from the synth (the combo res-drum mod and SMOL synth). The third and fourth loopers are controlled together and enabled by the Bb key from the White Key Module (or the corresponding button when in chromatic mode), with loopers set for 3 and 5 clock cycles, respectively, to give a polyrhythm effect.
The first looperās nominal filter frequency is set manually. The others are set by the random knob modules. For the drum samplers, the main clock sets the pace of the randomization.
Hereās a demo.
https://photos.app.goo.gl/bvzm27tWqcVZ6kXu8
For this demo I wanted to try for a ācaffeinated forestā effect, using chromatic bends through the res-drum side of the combo synth (). A separate, faster, clock runs the 2nd loopās random generator to add to the bird frenzy I was after.
Another module I added was to ātaps the breaksā on recursive loops whose envelope grows above some set value. The envelope is filtered using a running averager and the true/false answer is fed back to that looperās feedback knob. This allows you to add to a sound bed without the bedās amplitude growing without bound. When the envelope falls below the setpoint, the feedback is reset to 1. Kind of an AGC feature.
Iāll maybe break out some modules into proper Module posts later on.
PS many thanks [again!] to stschoen for the fantastic Normal Distribution module, in which he did the hard work in bringing the Box-Muller Algorithm to Audulus!