Satisfying music balances predictability and surprise. Our minds are trained to know what event comes next in music. If you listen to 100 folk songs, the sequences of chords and rhythm all have a logic that sounds good to the ear. When someone writes a new song, they’re essentially starting with a chord and then using their ‘music recognizer’ to suggest what comes next.
But music that is entirely predictable is trite and boring. You want to hear something unexpected from time to time. The genius of Western classical harmony is that when you drop in a note that’s unexpected, possibly dissonant, there are available harmonic resolutions that ‘add up.’ So you get a surprise but it’s followed with something that’s expected.
There’s another dimension besides Predictability & Surprise: Randomness. Random sources are a fundamental component in modular synthesis. You can connect a noise source to a sample & hold module, and it will pick out random values every time you trigger it. It frees you from having to think the notes up yourself. It’s an endless source of novelty.
The problem with purely random sequences of notes or rhythms is that they can sound arbitrary and devoid of authorial intention. A good composer will make music that is imbued unmistakably with their personality. Random sequences do not have that intentionality and personality.
Random input into music is not entirely useless. If you start out with something predictable: a 2 bar loop that repeats, you can add some precise with, for example, randomly modulating the filter cutoff. You hear the same notes in the same rhythm but the timbre changes continuously.
Never doing anything by half, I often patch in many random modulations into a patch. For example I’ll take a sound sample and slice it to pieces, then chose slices at random to play back. Then process the signal with a bandpass filter that’s also randomly modulated. But the trigger driving the sampler – selecting each new slice and filter cutoff – will come from a regular clock. So there’s some rhythmic predictability that interacts with the constant surprise.
It helps me make the music I want to make. The random inputs into the music seem to rhyme with the way randomness affects my life constantly. Paradoxically, when you steadily inject randomness into your music, it has it’s own predictability. The ear expects the randomness, and it inverts the role of surprise in the music. It’s surprising when the random process produces something that the ear might expect, based on our inborn and learned intuitive knowledge of music.
There’s another layer to how randomness works in music: the human mind and senses are adapted to finding patterns in chaotic input. This is valuable for survival. If your eye can catch the twitch a black tail in a tree tossed by the wind in low light, you can avoid being attacked by a panther. But when presented with truly (or mostly*) random input, your mind will find pattern in it.
This all means – to me at least – that randomness isn’t inimical to musical expression, but can add to it. When one adds randomness the process of tuning it’s effects adds an intentionality to it’s action on the music. Maybe in how a composer tunes the randomness can be a conduit for the composers personality as much as their choice of notes and rhythms.
This was kind of accidental VCV patch in combination with a twelve string guitar piece on archive.org.
I’d been experimenting with variations on the Quad Drum Destroyer, combined with the Confusing Simpler from NYSTHI, and this just hit a nerve. There is something about filtered delays that is addictive. That and the original sample just seems to give you so much opportunity for basically endless variations that changes enough, but not too much.
Where you can go from here
Replace or mix the Confusing Sampler with live input, and jam along with the mangled sample into the same effect chain.
Of course, try with different sound samples to see how it turns out on other material.
Modulate the octave (see below for the sample using the Ethiopian song loop that does just that).
The following piece illustrates what it can do with other samples. I replaced the 12 string guitar with an extended sample from an Ethiopian song . This version of the patch also modulates the Octave on Confusing sampler. This works best with whole numbers (-2, -1, 0, 1, 2, 3, 4, 5) which coinicidentally is what a VCV Scalar module outputs if you set the Octave mode to ‘Shared’ (i.e. all octaves quantized the same), and turn off every note but the first.
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 Logicmodule, 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 Indentwave 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.
The core of this patch is using waveshapers to generate harmonically rich distortions of the original sine wave. Since the different waveshapers get mixed, and because they’re all processing a signal of exactly the same frequency, they interfere and reinforce each other. The sound changes restlessly and chaotically over the course of the recording, and you occasionally get ghost notes made when more than one overtone series collides.
The audio signal flows from left to right basically, feeding 4 waveshapers that get mixed and modulated by the keyframe mixer. This is a really good beginner’s patch.
I’ll describe the patch left to right. I liked that it fits mostly in one row.
LogInstruments Precise DC Gen
The DC Gen is used to choose a constant note to send to the fundamental oscillator.
Vult Caudal Mechanical Chaos Source x 2
This module is based on modelling a triple pendulum. Each output represents an arm in the pendulum’s position and velocity. Basically it sounds random but there are predicatable — if chaotic correlations between each output. These are hear to screw with the parameters on modules to the right.
4 x Different Waveshapers
I wanted to check out various waveshapers — the Lindenberg VC Waveshaper, The Vult Debriatus, Lindenberg West Coast VC Complex Shaper, HetricCV Waveshaper . They each have their controls modulated by the Caudals.
Audible Instruments Keyframer/Mixer
The Keyframer is being used a mixer, but it’s unique in that you can record a bunch of different frame volume combinations (as keyframes) and then morph between them, either manually (with the big knob) or by modulation, also coming from the Caudal.
This is a DC Offset remover, and it’s there because waveshaping can introduce a DC Bias that messes with a signals apparent volume (and also messes with speaker cones). This is used between each waveshaper and the keyframe mixer.
Southpole Balaclava Quad VCA
To introduce some variety in the patch, the VCAs are used to modify the level of the signal. This is tuned to be mostly a slow throbbing.
AS DelayPlus Stereo Fx
What’s a modular patch without some delay or reverb? This stereo delay is tuned to long delays (on the order of seconds) so that the live signal is combined with the delayed signal. This adds some fat to the signal, and also introduces stereo panning.
The two implementations of the Turing Machine Sequencer — in the case of this patch, the one from the Skylights plugin — are not immediately understandable without doing some reading of manuals, which is never anyone’s favorite activity.
Turing Machine sequencer have a property that is one of the best about modular synthesis (or in fact music in general) in that it takes a single simple idea and implements it in a way that can have surprising and musically useful results.
There’s a full document describing what the Skylight folks implemented here, but I think I can describe it very simply. If you look at the byte symbol above, it shows how it is comprised of bits. A particular sequence in the Turing Machine uses this byte (or 16 bit word, maybe) in two ways.
The bits are rotated in the buffer. And by ‘rotated’ I mean that each bit is shifted left, and the last bit on the right is placed in the leftmost bit location. This makes sense if you visualize it physically. If you had a row of black & white marbles, you take out the rightmost marble, and place it in the leftmost position, shifting all the other marbles right one space.
In computing a byte is two things: a collection of bits, and the representation of a number in the range of 0 and 255 (or often, one of the ASCII characters).
The Turing Machine Sequencer uses those two representations to generate a pitch and a gate signal. The pitch is the numeric value of the byte, and the gate signal goes from zero to one when the rightmost bit is one.
That’s all that really happens, except for what the LOCK knob does. When the knob is fully counter-clockwise, every time the sequencer receives a clock, every bit in the sequencer’s byte is replaced by a new, random value. When the knob is at 12 O’Clock, half of the bits are randomized. When the knob is fully clockwise, the sequence is locked, and none of the bits change.
So when you use the Turing Machine as a sequencer you have a choice between an always changing random sequence, an unchanging sequence, and a sequence that changes gradually over time. This example patch comes with a locked sequence that sounds like a classic analog sequencer patch from Kraftwerk or Tangerine dream.
The output of sequencer is a tunable combination of chaos and order. It follows a very musical paradigm. If the LOCK knob is somewhere around 3 O’Clock it means that the sequence playing changes very slowly a note or two at a time.
It also has one of most charming features of modular synthesis: Because of how the pitches and triggers are generated, the pitches and triggers have a deep structural relationship. A change in underlying data byte changes both the pitch and trigger in a predictable way. Well, mostly predictable, as it does it’s magic by random, probabilistic bit flipping.
When two things in music have that kind of relationship, where they’re both tied to different views of the same input, it’s something you can hear. The sound of the SkyLights Alan Turing machine is the sound of that relationship.
Another about this patch is the quantizing setup of the pitch output of the Turing Machine: The pitch coming out of the Turing Machine changes at every clock step, so I run it through a sample & hold triggered by the gate output of the Turing Machine. This means that the note only changes when a new note is triggered. Then it’s quantized by VCV Scalar. I’ve selected notes that are a sort of 5 note scale, but different than the standard pentatonic scale. This is followed by a Fundamental Octave module, that transposes up or down by one or more octaves.
This is kind of a standard setup for most sequencers that I use, because I want things to add up musically, and I want one pitch per note. You can certainly bypass the sample & hold and go directly from the sequencer to the Scalar Quantizer , if you want the effect of the note pitch changing as it decays.
This is a method of patching and modulating delays I find so compelling I felt moved to write about it. This is all done in the software modular system VCVRack, and assumes you have a basic working knowledge of it. It involves the VCV Router plugin, which is non-free plugin from the makers of VCV Rack, but I consider it a mandatory purchase.
This is a single voice sequenced by a Fundamental SEQ-3 Module. Clock triggers sequencer, clock sends pitch to oscillator and gate to envelope. Envelope modules volume of oscillator signal via a Fundamental VCA-1. The only remotely complicated part is in the middle where the pitch signal is captured in a Sample & Hold, triggered by the gate from SEQ-3. It’s then quantized by a JW Quantizer and transposed by a Fundamental Octave module.
This sounds fun, and you can play with delay time and feedback. As it happens this delay module models actual analog delays to the extent that changing the delay time affects the pitch of the delays. If you load this patch you can hear this by turning the delay time knob.
What I’m interested in here is to set up a tempo synced delay. The AS BPM TO Delay Calculator can help out there. Drag the delay time all the way counter-clockwise (it will display 1 MS) and then feed the output of a particular delay time from the BPM Delay/MS Calc:
Now the delays fall in the rhythmic grid, in this case, a dotted quarter note after the dry signal from the VCA. The fun begins when you modulate the delay time. In this case I use 4 different outputs from the BPM Delay/MS Calc, for dotted half notes, dotted quarter notes, dotted 8th notes, and dotted 16th notes. You can select different delay times by clicking on the ‘Clock’ button on the Fundamental Router 4:1.
Now comes the fun part. I add a Hetrick Random Gates module, and send it the gate output of the SEQ-3 to trigger it. I also turn down the Max knob on the Random Gates so that only gates 1/4 are triggered. I then feed the first 4 trigger outputs on the Random Gates into the ‘Sel’ inputs on the Router 4:1. What is the result? Every time a new note is triggered by SEQ-3, a different delay time is randomly selected.
What is the result? Something rhythmically and harmonically interesting — it’s continually changes, and each time the delay time changes, it changes the playback speed and pitch of the delayed signal. Now, since we chose 4 differented dotted note delay times, they each have a relationship that is both harmonically and rhythmically coherent. A dotted 16th note is 1/8th as long as a dotted half note, and if you switch between them, the frequency jumps by a factor of whole octaves. In the case of dotted 16th to dotted half note, the transition drops the pitch by 4 octaves. If you haven’t considered the math involved it’s exponential: Twice the time or frequency, increase by one octave, 4 times the time/frequency, increase by two octaves, etc.
It gets even more interesting if you don’t choose delay times that are multiples of each others. Say, use dotted 1/2, quarter note, dotted 8th note and 16th note. The dotted half note is 3/2 the time of a 1/4 note, a dotted 8th is 3/2 of a 16th note. Now as it happens, the pitch releationship of 3:2 is a major 5th, so when the delay time changes it also changes the pitch by an interval that is musically interesting! I haven’t worked out all the pitch relationships between different note durations, but listening to the output, it always seems to add up harmonically, no matter which note duration you choose.