Originally published at Do My Eyes Look Scary?. Please leave any comments there.
PATCH FILE HERE: http://cornwarning.com/xfer/VCV/GenerativeDrones.vcv
Audio Example: http://cornwarning.com/chaircrusher/ChairCrusher-GenerativeShapedSines.mp3
This is a more complicated patch than with my previous tutorials, but I think it uses some techniques that might inspire VCVRack users in other contexts. Note that I use many paid modules, that you’ll have to have bought to load the patch intact; but there are free modules to substitute for the paid ones. One of the reasons why I think tutorials/patch descriptions like this can be valuable is that they describe techniques that can be applied with many different modules. I could have done this patch entirely with free modules, but it would be slightly more complicated and harder to explain.
USING RAMPAGE FOR CYCLING ENVELOPES
The core of the patch is 2 instances of the BEFACO RAMPAGE. each of which can produce two separate envelopes. It’s based on a Eurorack hardware module, and in both it’s real and virtual incarnations, it can be many things: An envelope generator, a slew limiter, a comparator, and things I don’t even know about yet, like what the BALANCE knob is for.
For my purpose in this patch, I’m using it as a cycling envelope generator. That means that instead of firing a single time, it will repeat every time it completes a full cycle. The Rampages control the volume of each oscillator signal (via the Audible Instruments quad VCA), but it also triggers the sample & hold modules that determine the pitch of the oscillators.
This is a pretty standard arrangement for my generative patches. A ML Modules Sample&Hold signal generates a random pitch voltage, which is quantized by a VCV Scalar Module. The pitches are then passed through Fundamental Octave modules to transpose the generated pitches.
The ‘trick’ of this patch is that the EOC (end of cycle) of each Rampage envelope triggers the Sample&Hold that generates pitch. That means the pitch of each note only changes when that oscillator voice has zero amplitude.
The result of this arrangement – random, quantized notes triggered at the EOC – is that the pitch changes only when a voice is silent.
THAT’S (ALMOST) ALL
This patch generates ‘edgeless’ tones — the slow attack and decay of each oscillator voice means there are never jarring changes in pitch or volume. The overall volume of the patch varies widely, as different voices reach minimum and maximum volume, overlapping in time and occasionally getting loud or quiet.
There are ways to trigger pitch edges; turning notes on and off in the Scalar module, or choosing different octave transpostions in the Octave module with trigger pitch changes. But the natural state of this patch is meant to generate edgelessly morphing audio.
There’s some complicated business in the upper right corner of the patch that’s necessary to get the patch running in the first place. The Rampage modules are set to cycle, but they wont begin cycling without an initial trigger. The RJRModules [LIVE] Button in the upper left hand corner will trigger each Rampage envelope to get things going.
The Button is also fed through a NYSTHI Logic module, where it’s trigger is logically or’ed with the EOC signal from the RAMPAGE envelopes. The resulting triggers go two ways: the pitch sample&hold are triggered, and the envelopes are triggered.
There’s a row of four AS DelayPlus FX that are fed by output of each voice, and then into the mixer. They’re set to random, long delay times – hand random, meaning I tweaked them to different values – and the combination of the delay time and feedback doubles each synth voice, delayed in time.
The organic ebb and flow of the sound of this generative patch is enhanced by the delays. You can mute them to hear the patch without the delays, and it sounds basically the same, but not as wide and layered.
There are also some UnfilteredAudio Indent wave shapers, one per oscillator, that distort the sine waves using the ‘Harsh Fold’ algorithm. ‘Harsh Fold’ isn’t actually that harsh, at least when you use moderate gain values. When you morph between pure sign and the folded signal, it makes a complex signal with sonic characteristics combining saw wave and sine sounds.
There’s also an AS Reverb Stereo FX on effect send A of the VCV Console and the send levels of each oscillator voice are controlled by the RAMPAGE envelopes, but the send level is controlled by a different envelope than the one for the voice’s volume; in other words, a particular voice’s reverb send level follows the level of a different voice.
RANDOM MODULATION ALL OVER THE DAMN PLACE
There are 3 groups of four Matthew Friedrichs Hot Bunny modules that are set up to do random modulation on a slow time scales. Since I like a bit more random in my random, the smooth output of each Hot Bunny in a group of 4 modulates the rate of its neighbor slightly, in a daisy chain. It’s worthwhile to look at the outputs in a scope module to see how wonky the random signals get.
At any rate there are 3 things being modulated by the Hot Bunnies.
- The rise time of each Rampage envelope.
- The fall time of each Rampage envelope.
- The gain level for each Indent waveshaper.
Since they all move relatively slowly, the modulations deepen the drifty ‘never the same river twice’ nature of the generated music, without making the results edgier.
There are several things you can tweak to change the output and get different sounds out of this without repatching anything.
- Change the notes in Scalar – ctrl-click int he note boxes to turn scale steps on and off.
- Change the scale in Scalar – click on the NOTES value and try other equal tempered scales, or load a new SCALA file for other scales.
- Increase the modulation on the Indent waveshapers, by tweaking the AS AtNuVrTr ATTN and OFFSET modules to the right of the Indent modules
- Tweak the modulation on the RAMPAGE modules with the quad VCA modules to their right.
- Change the rise and fall settings for the RAMPAGE envelopes. You can also change the range switches to modify the overall timescale of the envelopes as well, though if you use faster envelopes it can get hectic.
- Change the scaling on the random values sent into the SCALAR to get a wider range of note values. If you turn up the levels all the way, you’ll get some high, piercing notes, which I used the quad VCA levels to smooth out.
There’s generally a scaler of some sort between each modulator signal and the parameter it’s modulating. This is almost mandatory for modules without controls for the mod amounts. They give you finer grained control over how the sound changes. If you download the patch at the link given above you will have a snapshot of how I hand-tuned each of the modulation events.
There’s a whole world of generative patches you can create, but there are important questions you need to ask yourself: How random is too random? How fast is too fast or slow? What pitch range and scale gives the result the feeling you want?
That’s the challenge of making generative music interesting. Purely random (or deterministically chaotic) sounds sound random and arbitrary. Your goal is to come up with something that reflects human intention. That’s true if you’re playing a traditional instrument or creating a generative instrument and letting it do its thing.