Controlled Chaos - The Potential of Randomness in

tutorialquantization

Controlled Chaos - The Potential of “Randomness” in Modular Synth Patches

Randomness

The first question is…”Does randomness exist?”

The second questions is…”Are machines capable of making random choices?”*

Which inevitably leads to…”What is randomness?”

I like to think about randomness as being a series of events with complex relationships. By this definition, machines are more than capable of creating complex value sequences that sound random to a listener.

The question then becomes, how much and when?

Randomness in Music Compositions

Randomness can be approached from two directions:

  1. Creating something complex from simple things…
  2. …or starting with something complex and making it more simple.

Both are worth exploring deeply, but the easiest approach is to start with a complex source and make it simpler.

Noise - the O.G. source of randomness

A classic source of randomness is a noise module. The free version of VCV Rack includes NOIS, a simple module which is capable of producing 7 different colors of noise.

Here is how the User Manual for NOIS describes each of the noise outputs produced by the module:

  1. White Noise (WHT output) has equal intensities at all frequencies.
  2. Pink Noise (PINK output) has more bass than white noise, and its intensity decreases by -3 dB/octave.
  3. Red Noise (RED output) has more bass than pink noise, and its intensity decreases by -6 dB/octave.
  4. Violet Noise (VIOL output) has more treble than blue noise, and its intensity increases by +6 dB/octave.
  5. Blue Noise (BLUE output) has more treble than white noise, and its intensity increases by +3 dB/octave.
  6. Gray Noise (GRAY output) is calibrated to a psychoacoustic equal loudness curve. The human ear does not hear all frequencies with equal intensity (e.g. white noise sounds louder around 1000 Hz than 100 Hz, although its actual power density is the same), so a filter with an equal loudness frequency response is needed to produce noise that sounds uniform across the audible frequency range. In particular, the gray noise generated by VCV Noise is inverse A-weighted.
  7. Black Noise (BLK output) has no single standard definition, so VCV Noise defines it as “uniform noise”, i.e. voltages sampled from a uniform distribution. Uniform noise has nearly the same frequency response as white noise, except that it contains aliasing. This effect is similar to early digital noise generators or poorly-designed software noise algorithms. However, uniform noise is useful for sample-and-hold sources, CV, and other non-audio purposes.

colors of noise

Methods of Control

As the possibilities in a patch can seem endless, it is helpful to simplify all options down to the basic dimension within which the voltages exist: amplitude and time.

Amplitude

Scaling

Consider first the ways the RSCL module (which is also included in the free version of VCV Rack) can effect the amplitude of a signal.

  1. The Gain dial is capable of attenuating and inverting the signal.

    rescale gain 1

    • Note: by right-clicking on the module panel the gain multiplier can be set to 1x, 10x, 100x, or even 1000x.
  2. The Offset dial can shift the base voltage of the signal up and down.

    rescale offset

  3. The default behavior of the Max and Min dials clips the high or low output voltage to the values set by each dial.

    rescale crop

  4. A second behavior is available for either of Min or Max dials by right-clicking and selecting either “Reflect at Maximum” or “Reflect at Minimum” which results in the signal reflecting back when it exceeds the set range.

    rescale reflect

Quantizing

Often used before patching a signal into an oscillator’s 1v/oct input, a Quantizer module operates on the amplitude of a signal by rounding it to specific voltage values (e.g. voltages that correspond to a musical scales).

Purpose-built for quantizing voltages to musical scales, VCV Rack|VCV’s QNT module is actually more flexible than that when its function is abstracted from its musical intentions.

The QNT present the user with the ability to divide the span from 0v to 1v into 12 equal steps. So if the user wants to limit a signal to…

  • Multiples of 1 – Only activate the lowest key (shown as “C” on a vertically oriented octave of a piano keyboard).
  • Multiples of 0.5 – activate C and F#.
  • Multiples of 0.25 – activate C, D#, F#, and A.
  • Multiples of 0.33 – activate C, E, and G#.
  • etc.

Timing

Feeding a random voltage source (like NOIS) into a S&H module is the crux of controlling when a random voltage is produced.

VCV Rack includes the S&H ASR module, which, at a basic level, is eight sample-and-hold circuits in one package. However, as the user manual describes and as is implied by its name, the module has one other trick up it sleeve.

shasr concept

Bringing it all together

This collection of modules (NOIS, RSCL, QNT, and S&H ASR) is everything that is required to be able to create and wrangle randomness within a modular synth patch. Where things start to get really interesting is zooming out and focusing on the systems that control each of these modules.

Patch Ideas

Try and realized the following patch diagrams in VCV Rack using only the following modules:

Key:

Sample and Hold Noise

This simple patch use a sample and hold module triggered by a clock source to create a random pitch sequence generated from a noise module. This is how the classic “computer thinking” sound was created.

patch diagram random 01 sample and hold.excalidraw

Adding an Attenuverter

Building upon the patch above, inserting an attenuverter before connecting the resulting random voltage stream to the 1v/oct input of the VCO provides control over the range of the random pitch sequence.

patch diagram random 02 attenuverter

Adding Quantization

Building once again on the previous patch, a quantizer provides further control over the resulting pitch sequence.

patch diagram random 03 quantizer

Crossfading Randomness

This patch feeds the output of the S&H module back into its input and uses a crossfade module to balance between the noise and feedback signal. The more the output is fed back to the input of the S&H the more closely related the results become. More noise equals more unpredictable results/voltages.

patch diagram random 04 feedback

Random Durations

The previous patch can be expanded upon by applying the same idea to modulate the rate of the LFO controlling the pitch sequence. This introduces the possibility of randomizing the duration/rate of each individual pitch

patch diagram random 05 durations

Probability Rhythm Sequences

This patch compares a predictable voltage sequence with a randomly generated voltage as a way of using probability to create a rhythmic sequence. The higher the voltage value of a specific step on the sequencer the greater likelihood that a gate will be generated on that step. Modulating the original clock source with the results of the comparison make it so that multiple steps can be triggered one after the other. Without this, there would only be a gate on the first “true” step, not on every successive “true” step.

patch diagram probability gate sequence.excalidraw

Challenges

  • Create a patch that only allows a random voltage if it is higher than the previously sampled voltage.
  • Create a patch that only allows a random voltage if it is lower than the previously sampled voltage.
  • Create a patch where the random voltage rises and falls at a quasi-predictable rate.

A little History of a “Forbidden Planet”

The 1956 science fiction film The Forbidden Planet tells the story of the Krell, an ancient and highly evolved people whose technology far surpasses human understanding. Sadly, their technology ultimately leads to their own demise. This film, the Krell, and its famous soundtrack inspired electronic music creators to develop The Krell Patch. While their is no single definition of The Krell Patch, at its core are the same concepts as this document explores.

In the following video I explore how to create the classic The Krell Patch in VCV Rack using and the following free modules: