Three loopers record at intervals set both by regular LFOs and the irregular aspect of incoming audio. Their outputs can be fed into one another, producing echos, arpeggios, and all sorts of convolutions of the original audio. Crescends build then die out. Snippets of old audio reappear unexpectedly, captured by chance at the tail end of another looper’s recording period. Dolly Sods FX is a patch that draws from and expands on the effects section I created for my generative patch, Dolly Sods (https://patchstorage.com/dolly-sods-generative-patch-from-my-july-24th-livestream/). Inventive name, I know.
So, what do I mean by “quasi-generative”? Well, it’s a term that could probably apply to a lot of my patches, especially the weird loopers, where there is an element of chance or unpredictability in what the outcome will be. In this case, it’s due to two elements: the recording of the loops in this patch depends both on the speed of LFOs but also on the audio the patch receives, and this patch uses a feedback matrix mixer to send the outputs of the loopers into the other two loopers’ inputs, which is control by randomized sine waves. (Although, I should mention that there is an “automatic” mode that does away with this second element; even then, although the LFOs are regular, the outcome of their feedback matrix is still controlled by random elements.)
Each looper has its own LFO, with an adjustable duty cycle, which allows its high portion to be longer or shorter. Incoming audio passes through an envelope follower threshold (with adjustable sensitivity, built on a hysteresis circuit I put on Tips and Tricks a while back). When the threshold is passed, it triggers a sample and hold, which has, at its input, the LFO’s output. If the LFO is high when the threshold is crossed, the loop begins recording. It continues recording until either the maximum record time is reached (this is an adjustable control), or until the threshold is passed again while the LFO is low. (Along with adding the quasi-generative aspect, this also, hopefully, produces fairly clean loops, that begin and end with the beginning and ending of notes or phrases, rather than chopping them off in the middle.)
As the loopers feed back into one another, a lot of neat things can develop out of pretty simple origins. A handful of notes playback, moving forward and back, changing pitch and intensity. Cool stuff happens, sometimes. It’s hard to predict, but that’s why I like it.
The patch passes dry audio in stereo. The loopers sum the audio to mono, then produce a stereo image through a stereo spread and stereo reverb.
Left — hold buffers (locks the current loop buffers in place; also reproduced via a UI button on the front page)
Middle — mutes/unmutes loop 1 (also reproduced via a UI button on the front page)
Right — mutes/unmites loop 2 (also reproduced via a UI button on the front page)
Control pages (yes, there are two of them)
Across the top three rows are similar controls for each loop:
There is a UI button that changes from red (recording) to green (playback).
Refresh rate — this controls the rate of the LFOs used in the recording; I called it “refresh rate” because it governs how often the loopers’ buffers can be refreshed
Playback ratio — this sets the duty cycle for the LFOs. Since recording can only happen when the duty is high, changing the duty cycle changes the length of the period when recording can occur (relative to the overall rate of the LFO). A higher playback ratio will mean more (potential) time is spent during playback than recording; a lower playback ratio means the opposite. A higher record ratio can also decrease the density of loops.
There is a pixel that shows the rate of the LFO (and when its duty is high).
There are controls for pitch and playback direction (reverse button).
Finally, there are controls for the feedback matrix, shown as “Feed to X” (where X is one of the other loopers). This sets the amount fed into other the other loopers, but the connection is also dictated by sine wave LFOs, whose rates are randomized each cycle. This keeps feedback from getting out-of-hand but also introduces an element of pleasing modulation.
Most of the fourth row concerns mixing: there are on/off switches for each of the loops (loop 1 and loop 2 are also reproduced in stompswitches; I ran out of stompswitches for loop 3). There are also level controls for each loop, and for the overall wet level. It should be noted that these levels are set post-feedback mixer, so a loop can be muted, but its output still sent to the other two loopers.
On the left-hand side of the fourth row is a UI button labeled “Threshold X-ing,” which indicates when the dynamic threshold has been crossed.
Below it, on the fifth row, are two controls that dictate the nature of the dynamic threshold: Threshold sets the amplitude that needs to be crossed, while Sensitivity controls how much the signal has to drop below the threshold to retrigger it again (this can help with jitteriness).
Then there are the effects/tone shaping options:
There are a high- and low-pass filter to create a variable bandpass for shaping the output.
There is also a reverb, with controls for decay and mix.
Finally, there is a dry level control.
Min record time — sets a minimum record time from 0ms to 1 sec. This can help if you find yourself generating short, buzzy loops (ideally these would be dialed out with the dynamic threshold controls, but this is an alternative). I keep this at the minimum, but it’s there if I have trouble dialing in a threshold to my liking.
Max record time — sets the maximum record time from 0ms to ~31.5 seconds. If loopers record longer than their buffer length, they stop responding appropriately to incoming CV, so this is a necessary safeguard, since the recording of loops depends on chance a great deal. I keep this at the maximum, but I could imagine instances where I wanted to limit loop length to ~10 seconds, for instance
Stereo spread — sets the stereo spread (via a Haas effect, so it controls the delay between the two sides)
Filter Q — this controls the Q of both filters; adjusting it will produce CPU clipping, because it affects both filters at once (and multi-filters don’t like being modulated). The clipping is unfortunate, but the Q adds a lot of options for shaping the sound.
“Automatic mode” — pressing this pushbutton will do a few things. First, it will bypass the dynamic recording aspect; loops will be recorded entirely based on the rate and duty cycle of their LFOs. But to indicate this, both the “Threshold X-ing” and “Hold Buffer” UI buttons will change to pink, so there is some indication of which mode you are in on the front page.
Automatic mode may be preferable to some (and may be preferable to me on occasion), so I wanted to include it as an optional mode of operation.