Skip to content

Table of Contents

Chapter 1: Patching One Sample at a Time

What is gen~?

Using this book (and the software that comes with it)

A Bestiary of signals and operators

Signals

Operators

The “go” library

Chapter 2: Modular (Arithmetic of) Time

Counting by sample frames (accum)

Playing a sound file

Looping with modular arithmetic

Thinking in rates and changes of phase (phasor)

A phasor (using Hz)

A drum loop (using BPM)

Ramps as cyclical time

Exploration

Example: beat slicing

A collection of ramp processors

A phasor as a clock source

Ramp clock multiplication

From ramps to steps

Shifting ramps (phase rotation)

Getting the slope, frequency, period, and direction of a ramp

Getting triggers from a cyclic ramp

Ramp/clock division

Ramp multiplications and divisions with musical ratios

Modular arithmetic with rhythms

Modulating ramps with ramps

Chapter 3: Unit Shaping

Swing and warping time

From ramps to LFOs

Triangles

Sinusoids

Pulse waves

Trapezoids

Shaping smooth-stepped interpolation for LFOs and smooth glides

LFOs from smoothed steps

Glides and portamento

Easing functions

Window envelope functions

Waveshaping bipolar signals

Audio waveshaping

Polynomial shapers

Sigmoids

Normalized sigmoids as unit shapers

Chapter 4: Noise, Uncertainty, and Unpredictability

Feel the noise

Random ranges

Rate control / stepped random

Smooth stepped random

Chance and conditions of probability

Bernoulli gate

Random periods

Random distributions

Random walks in nature

Random integers / quantized random

The urn model: pick a card, any card...

A more flexible urn

Chaos (and why we like it)

A Lorenz attractor

Finding the limits

go.chaos

Balancing order and unpredictability

Example: adding natural looseness to a tempo clock

Example: injecting audio into chaos

Chapter 5: Stepping in Time and Space

Stepped pitches and logic gates

Creating step patterns by mixing logic signals

Sample and hold patterns

A shift register canon

Sequencing algorithms with binary shift registers

Looping

Evolving loops

Using xor for pseudo-random sequences

Binary decoding

Integers as patterns

Working with the bits of an integer

Euclidean rhythms (digitized ratios)

Euclidean Ramps

Refinements

Pitch spaces

Quantization

Euclidean patterns of length 12 produce common scales

The space between notes

Smooth-stepped quantization

Quantization as a timbral shaper

Chapter 6: Filters, Diagrams, and the Balance of Time

One-pole lowpass filter

From blocks to operators

Turning Heads

When is a filter more than a filter?

Setting the frequency

Half-lives: setting a filter decay in seconds

A lowpass gate (LPG)

A lowpass gives you a free highpass

Allpass filters

Phaser

Computing the allpass coefficient from a frequency

Biquad filters

Biquad Filter Coefficients

Cascades

Trapezoidal filters

A one-pole filter

State Variable Filter

Crossover filter

Block diagrams: between theory and practice

Smoothing control signals with lines and slews

Limiting a slope (slew limiting)

Drawing a line (lag generator)

Chapter 7: The Effects of Delay

A basic delay loop

Feedback

Setting the feedback decay time

Feedback filtering

Removing DC

Feedback limiting

Avoiding clicks

Smooth changes to delay time cause Doppler shifts

Changing delay time without pitch shift

A garden of earthly delays

Filtering with delay: comb filters and allpass delay filters

Enharmonic combs

Strings

What happens in the feedback loop?

Damping

Cleaner interpolation for a consistent sound

Chapter 8: Frequent Modulations

Amplitude modulation (AM) and Ring Modulation (RM)

Sidebands

Ring modulation

Beyond sinusoids

Frequency modulation (FM) and phase modulation (PM)

Sidebands

Frequency ratios and harmonicity

Combinations (FM algorithms and beyond)

Parallel carriers and parallel modulators

Beyond sinusoidal modulators

Modulating modulators: cascade modulators

Feedback modulation

Fixing FM going out of tune

Cross-coupled feedback modulation

Exploring hybrid algorithms

Index amplitude/ring modulation

Phase modulation: suppressing clicks

Waveshaping modulators

Exponential FM/PM

Using AM for asymmetric PM spectra

Things that can go wrong

Removing inaudible frequencies to preserve headroom

Aliasing and bandlimiting

Delay as phase modulation

Blending harmonic oscillators

Blended harmonic AM/RM and PM

Modified FM

Chapter 9: Navigating Waves of Data

Wavetables

Morphing between waveforms

2D wavetables

Morphing in 2D

3D wavetables

Morphing in 3D

Generating wavetables

Band-limiting wavetables

Sinc interpolation

Mipmapping

Wave terrains

Generating terrains

Basis Function Generator (BFG) terrains

Navigating data space

Polygonal orbits

Taking things further

Chapter 10: Windows of Time

Sync

Windowed Sync

Sub-sample accuracy

Pulsar Synthesis

When the event duration is longer than the fundamental period

Suppressing retriggers (subharmonics)

Polyphony (distributing event triggers)

Polyphonic notes

Granulation

Asynchronous and stochastic grains

Subsample-accurate events from phasor ramps

Overdubbing the future

Whole grains at once

Subsample-accurate grains

A bandlimited saw with hard sync

Adding hard sync

Shaping

Onward

Endnotes