Workbench User Guide
A modular sound design environment for building effects chains and polyphonic synthesizer voices.
Overview
Workbench is a real-time audio workstation with two modes of operation:
- Effects Mode — Route test signals or live audio through a configurable graph of processing modules. Design and audition effects chains, then export them as recipes.
- Synth Mode — Build polyphonic synthesizer voices from oscillators, filters, and effects. Play them via MIDI keyboard or on-screen keys. Shape envelopes, add post-mix effects, and save patches.
Think of it as a virtual Eurorack system: a collection of oscillators, filters, effects, modulators, and analysis tools that you can patch together in any configuration.
Getting Started
First Launch
- Select a mode from the transport bar: Effects or Synth
- Pick a recipe from the sidebar (bundled presets are included)
- Press Play — audio starts immediately
Navigation
| Area | Purpose |
|---|---|
| Sidebar | Recipe browser — select, create, edit, delete |
| Detail pane | Inspector view (parameters, metadata) or Graph view (visual patching) |
| Transport bar | Playback controls, signal source, levels, meters, envelope |
| Waveform display | Real-time output waveform (green on black, 30 fps) |
Switch between Inspector and Graph views using the segmented picker in the transport bar.
Effects Mode
Signal Sources
The signal source menu offers 15 built-in test signals across six categories:
Basic Tones
- Sine — Pure fundamental. Good for testing frequency response, distortion characteristics, and filter behavior. The cleanest signal — any harmonics in the output were added by your effects chain.
- Sawtooth — Rich harmonic series (all harmonics at 1/n amplitude). The most harmonically complete waveform — excellent for testing filters, since you can hear the cutoff sweep through the full spectrum.
- Square — Odd harmonics only (1/n amplitude). Hollow sound. Good for testing how effects respond to sharp transients and DC offset.
- Noise — White noise (flat spectral density). The ultimate broadband test signal — reveals resonances, filter shapes, and artifacts that tonal signals might miss.
- Silence — No input. Useful for hearing self-oscillating filters, feedback loops, and reverb tails decay to zero.
Tonal Signals
- Gated Burst — 200ms tone / 500ms silence cycle. Reveals how effects behave at signal onset and during silence — essential for testing compressor attack/release, noise gates, and reverb tail behavior.
- PWM — Pulse width sweeps from 10% to 90% duty cycle. Continuously shifting harmonic content exercises filters and distortion differently than a static waveform.
- FM — Two-operator FM with modulating index sweep. Produces complex, time-varying spectra that stress-test any processing chain.
Transients
- Impulse — Single-sample click. The broadband transient reveals the impulse response of your entire chain — essentially a snapshot of what the effects "sound like" in one click.
- Pluck — Karplus-Strong string model. A natural-sounding decaying tone with rich harmonics. Good for hearing how effects interact with realistic instrument timbres.
- Arpeggio — C major arpeggio at 3 notes/sec. Tests how effects handle changing pitch content — particularly useful for pitch-dependent effects like flangers and harmonizers.
Modulated Signals
- Sweep — Logarithmic chirp from 80 Hz to 8 kHz over 3 seconds. Methodically exercises the full frequency range — watch the waveform display to see how your chain responds at every frequency.
- Sample & Hold — Random pitch jumps at 4 Hz. Abrupt frequency changes reveal artifacts, glitches, and tracking behavior in pitch-dependent processors.
Playback & Live
- Sample — Choose from synthesized test patterns (chord, drums, melody) or import your own audio file. The most realistic test — hear how your effects chain sounds on actual music.
- Live — Microphone input. Process your voice, guitar, or any sound source in real time. Requires headphones on iOS to prevent feedback.
The Frequency Slider
When using basic tones (sine, sawtooth, square) or tonal signals, the frequency slider lets you sweep from 20 Hz to 2 kHz. Sweep slowly while listening — you'll hear how filters, resonances, and distortion change with input frequency.
Input Level
The input level slider (default 0 dBFS) controls the signal amplitude before it hits your effects chain. This matters because many effects are level-dependent:
- Distortion/saturation — higher input = more drive
- Compressors — input level relative to threshold determines gain reduction
- Reverbs — input level affects how the reverb tail decays
Think of it as the gain knob on a mixer channel before the insert effects.
Building an Effects Chain
- Click Edit on a recipe (or New Recipe for a blank slate)
- Switch to Graph view
- Click Add Node in the toolbar to open the component browser
- Search or browse by category — select a component to add it to the canvas
- Connect nodes: drag from the output port (right side dot) to the input port (left side dot) of another node
- Click any node to select it — the inspector panel shows its parameters
- Adjust parameters with sliders while audio plays to hear changes in real time
Signal Flow
Audio flows left to right through connected nodes. When multiple nodes feed into one input, their signals are summed. The final node's output becomes the effect chain's output.
Input → [Node A] → [Node B] → [Node C] → Output
↗
[Node D] ──┘ (summed into Node C's input)
The Mixer node is special — it crossfades between exactly two inputs using a Balance parameter (0.0 = first input only, 1.0 = second input only). Use it for parallel processing or A/B blending:
Input → [Distortion] ──→ [Mixer] → Output
└──→ [Clean path] ──↗
Synth Mode
Overview
Synth mode turns Workbench into a polyphonic synthesizer. Each "voice" is a clone of your voice graph — when you play a note, a fresh voice is allocated, its oscillators are tuned to the note frequency, and an amplitude envelope shapes the sound.
Playing Notes
MIDI Keyboard — Connect any MIDI controller. Workbench auto-detects all MIDI sources and shows connection status in the transport bar. Supports note on/off, velocity, pitch bend, and channel pressure.
On-Screen Keyboard — A 2-octave piano keyboard appears below the waveform display. Click or drag across keys to play. Use the octave buttons to shift range (0-7), and the velocity slider to control dynamics.
Voice Architecture
MIDI Note → Voice Graph (per voice)
↓
ADSR Envelope → Stereo Pan
↓
Sum all voices
↓
Post-Mix Effects (shared, runs once)
↓
Output
Each playing note gets its own copy of the voice graph. The voice graph typically contains:
- Oscillators — Sound sources, tuned to the note frequency via note bindings
- Filters — Shape the timbre
- Waveshapers/Distortion — Add harmonics and character
After all voices are mixed to stereo, the optional post-mix effects graph processes the combined output. This is where you put effects that should be shared across all voices — reverb, delay, master EQ, compression. Running these once (instead of per-voice) saves significant CPU and produces a more natural blend.
Note Bindings
Note bindings connect MIDI note data to parameters inside your voice graph. Select a node in the graph editor, and the Note Bindings section appears in the inspector panel.
| Source | Description | Typical Target |
|---|---|---|
| frequency | Note frequency in Hz (A4 = 440 Hz) | Oscillator Frequency |
| velocity | 0.0–1.0 (from MIDI velocity 0–127) | Filter cutoff, amplitude |
| gate | 1.0 while held, 0.0 on release | Gate-triggered effects |
| noteNumber | Raw MIDI note (0–127 as float) | Lookup tables, switches |
| pressure | Channel aftertouch (0.0–1.0) | Filter cutoff, vibrato depth |
| pitchBend | -1.0 to +1.0 (from pitch wheel) | Oscillator pitch modulation |
The most essential binding: frequency → Oscillator Frequency. Without this, all notes play the same pitch.
ADSR Envelope
Every voice has an amplitude envelope that shapes the loudness over the note's lifetime. The four sliders in the transport bar control:
| Stage | Range | Description |
|---|---|---|
| A (Attack) | 1 ms – 2 s | Time to ramp from silence to peak amplitude. Fast (< 10 ms) for percussive sounds, slow (200 ms+) for pads. |
| D (Decay) | 0 – 2 s | Time to fall from peak to sustain level. Creates the initial transient shape. Set to 0 to skip. |
| S (Sustain) | 0 – 100% | Level held while the key is pressed. 100% means no decay. Lower values create plucky, decaying sounds even while held. |
| R (Release) | 1 ms – 3 s | Time to fade to silence after key release. Short for staccato, long for sustained tails. |
Amplitude
^
peak│ /\
│ / \
sus │ / \________
│ / \
│/ \
└──────────────────→ Time
A D S R
Polyphony Controls
| Control | Description |
|---|---|
| Voices | Maximum simultaneous notes (1–16). When exceeded, the oldest voice is stolen. |
| Glide | Portamento time (0 = instant pitch change). When > 0, pitch slides smoothly between notes. |
| Spread | Stereo width of the voice field (0% = mono center, 100% = full stereo). Voices are panned across the stereo field using equal-power panning. |
Post-Mix Effects
When editing a synth recipe in the graph editor, Add Node presents a choice: Voice Graph or Effects Graph.
- Voice Graph nodes run per-voice (N copies running simultaneously). Put oscillators, filters, and per-note processing here.
- Effects Graph nodes run once on the summed stereo output. Put reverb, delay, master EQ, and compression here.
Effects graph nodes appear below a "POST-MIX EFFECTS" divider with an orange border, visually separated from voice nodes. They wire together the same way — drag between ports to connect.
Why this matters for CPU: A reverb running in the voice graph costs N x reverb. In the effects graph, it costs 1 x reverb. With 8 voices, that's an 8x savings on your most expensive effects. The sound is also better — one shared reverb blends all voices into a natural space, while 8 independent reverbs sound artificial.
Bundled Synth Recipes
| Recipe | Description | Envelope | Post-Mix Effects |
|---|---|---|---|
| Warm Pad | Detuned sawtooth pair through SVF lowpass | Slow attack (300 ms), long release (1 s) | FeedbackNetwork reverb |
| Simple Lead | Single sawtooth, legato glide | Fast attack (5 ms), medium release (200 ms) | None |
| Sub Bass | Sine oscillator, mono | Fast attack (5 ms), short release (100 ms) | TapeSaturation (post-mix) |
Module Reference
The 69 available modules are organized into five tiers. Each module is a self-contained DSP processor with its own parameters, snapshot visualization, and bypass capability.
Generators
Sound sources that create audio from nothing. In synth mode, bind their frequency parameter to MIDI note frequency.
Oscillator
The primary sound source. Six waveforms:
| Waveform | Character | Harmonics |
|---|---|---|
| Sine | Pure, clean, subby | Fundamental only |
| Triangle | Soft, flute-like | Odd harmonics, -12 dB/octave rolloff |
| Square | Hollow, reedy, woody | Odd harmonics, -6 dB/octave rolloff |
| Sawtooth | Bright, brassy, full | All harmonics, -6 dB/octave rolloff |
| White Noise | Hiss, texture, percussion | Flat spectral density |
| Wavetable | Morphable, evolving | Depends on table + morph position |
Wavetable mode loads preset waveform tables and lets you morph between frames using the Morph Position parameter. Multi-frame presets create continuously evolving timbres when modulated. Detune parameter adds pitch offset in cents — use multiple oscillators with small detune values (5–15 cents) for chorus/unison thickness.
Noise Generator
Dedicated noise source with selectable color: - White — Equal energy per frequency. Bright, hissy. - Pink — -3 dB/octave rolloff. Perceptually balanced, natural-sounding. - Brown — -6 dB/octave rolloff. Deep, rumbling, thunder-like.
Karplus-Strong
Physical model of a plucked string. An impulse excites a tuned delay line with feedback filtering — the result is a remarkably realistic plucked string that decays naturally. The damping parameter controls how quickly high harmonics decay (more damping = duller, nylon-like; less = brighter, metallic).
Waveguide
Bidirectional delay line physical model with a Friedlander bow friction model. Simulates bowed strings — the bow pressure and velocity parameters create sustained, violin-like tones that respond dynamically to parameter changes.
Hash Oscillator
Experimental sound source that feeds a phase accumulator through hash functions (MurmurHash, FNV-1a, SipHash, CityHash). Produces deterministic pseudo-random waveforms with a metallic, digital character that changes with frequency. Unique timbres not achievable with traditional synthesis.
Reaction-Diffusion Oscillator
Runs a 1D Gray-Scott reaction-diffusion simulation and reads the result as a wavetable. Produces organic, slowly evolving timbres that respond to the feed/kill rate parameters. Alien, biological-sounding textures.
Stigmergic Oscillator
Simulates ant colony pheromone trails on a 1D grid, reading the pheromone field as a wavetable. Produces swarm-like, emergent textures that self-organize over time.
Filters
Shape the frequency content of a signal. The most fundamental tone-shaping tool.
State Variable Filter (SVF)
The workhorse filter. Chamberlin topology, 2x oversampled for stability at high resonance. Four simultaneously computed outputs:
| Type | Effect |
|---|---|
| Lowpass | Removes highs, keeps lows. The classic synth filter — sweeping cutoff from low to high creates the characteristic "opening" sound. |
| Highpass | Removes lows, keeps highs. Thins out a signal, removes rumble. |
| Bandpass | Keeps frequencies near cutoff, removes everything else. Creates a focused, vocal-like quality. |
| Notch | Removes frequencies near cutoff, keeps everything else. Subtle tonal shaping — sweep it slowly for phaser-like effects. |
Resonance boosts frequencies at the cutoff point. At extreme settings (approaching 1.0), the filter self-oscillates — becoming a pure sine wave generator. Use with caution; self-oscillation can be very loud.
Biquad
Precision filter based on the Audio EQ Cookbook. Seven types: lowpass, highpass, bandpass, notch, peaking EQ, low shelf, high shelf. More clinical than the SVF — better for surgical EQ work, less character for creative sound design.
One-Pole
The simplest filter: a single pole, switchable between lowpass and highpass. Gentle 6 dB/octave slope. Useful for subtle high-frequency smoothing or DC removal. Very CPU-efficient.
Dynamics
Control the amplitude envelope and loudness of a signal.
Compressor
Full dynamics processor. Reduces the dynamic range by attenuating signals above a threshold.
- Threshold — Level above which compression begins. Lower = more compression.
- Ratio — How much to reduce. 4:1 means a signal 4 dB over threshold comes out only 1 dB over. At extreme ratios (20:1+), acts as a limiter.
- Attack — How quickly compression engages after signal exceeds threshold. Fast attack catches transients; slow attack lets them through (adds punch).
- Release — How quickly compression releases after signal drops below threshold. Too fast causes "pumping"; too slow causes sustained dullness.
- Knee — Transition sharpness. Soft knee (high values) applies gradual compression around the threshold for transparent dynamics control.
- Makeup Gain — Compensates for volume loss from compression.
Brickwall Limiter
64-sample lookahead peak limiter. Catches peaks before they happen. Always active in the Workbench output chain — your signal passes through one regardless. Use a second one inside your effects chain for creative limiting or to protect downstream effects from clipping.
Transient Shaper
Separates attack and sustain portions of a signal using dual envelope followers, then lets you boost or cut each independently. Boost attack for more punch/snap. Boost sustain for more body. Cut attack for softer, more ambient textures.
Envelope Follower
Tracks the amplitude of the input signal with configurable attack and release times. Useful as a modulation source — the output follows the input's volume contour. Connect it via modulation routing to drive filter cutoff from input dynamics (auto-wah) or to duck other parameters (sidechain-style effects).
Distortion & Saturation
Add harmonics, warmth, grit, or outright destruction.
Overdrive
The most versatile distortion. Seven clipping curves:
| Curve | Character |
|---|---|
| Soft Symmetric | Warm, tube-like, musical. The default — works on everything. |
| Asymmetric | Even harmonics, transistor-like crunch. Adds 2nd harmonic warmth. |
| Hard Clip | Digital, aggressive, buzzy. Flat-top clipping at extremes. |
| Diode | Asymmetric with soft knee — germanium diode character. |
| Full Rectify | Folds negative signal positive — octave-up effect, buzzy and synthy. |
| Half Rectify | Removes negative half — extreme harmonics, very aggressive. |
| Crossover | Zero-crossing distortion — thin, brittle, broken-amp character. |
The Topology switch changes whether distortion is in the signal path (standard) or in a negative feedback loop (softer, more compressed response). Pre-Filter shapes the input before clipping — MidBoost pushes mids into distortion harder for a more focused sound.
Tape Saturation
Models the nonlinear behavior of analog tape: asymmetric soft clipping, magnetic hysteresis, and pre-emphasis/de-emphasis EQ curves. Produces warm, musical saturation with even-order harmonics. Subtler and more "analog" than Overdrive — excellent on buses and master output. 2x oversampled to prevent aliasing.
Tube Warmth
Simulates vacuum tube harmonic generation. Adds both even and odd harmonics with independent control over each. Even harmonics (2nd, 4th) add warmth and body. Odd harmonics (3rd, 5th) add edge and presence. 2x oversampled.
Transformer Color
Models the saturation characteristics of an audio transformer: low-frequency saturation, high-frequency rolloff with resonance. Subtle, warming effect — the kind of coloration that makes analog gear sound "expensive." 2x oversampled.
Console Bus
Analog summing bus model: asymmetric saturation, gentle HF rolloff, and a noise floor. The "glue" effect — makes things sound like they went through a real mixing console. Very subtle at low settings.
Wave Shaper
Raw transfer function distortion. Seven shaping curves (tanh, hard clip, sine fold, asymmetric, rectify, crossover) applied directly to the signal. More mathematical and less "musical" than Overdrive — but sine fold produces unique metallic timbres when driven hard.
Soft Clipper
Threshold-based tanh saturation with adjustable knee. Clean below threshold, soft saturation above. The most transparent saturator — use it when you want controlled clipping without changing the character of the sound.
Bit Crush
Reduces bit depth and sample rate for lo-fi digital degradation. Low bit depths produce staircase-like quantization distortion. Low sample rates produce aliasing artifacts. Optional dither reduces quantization harshness at the cost of added noise.
Sag
Power supply voltage sag simulation. Models how tube amplifiers lose headroom under sustained load — the signal compresses and distorts asymmetrically as the virtual power supply droops. Creates a dynamic, responsive distortion that reacts to playing intensity.
Bias Gate
Transistor bias/starve simulation with splutter gating. Starving the bias voltage creates broken, gated, sputtering distortion — like a dying battery in a fuzz pedal. Extreme settings produce rhythmic, choppy artifacts.
Modulation Effects
Time-varying processes that create movement and animation in the sound.
Chorus
LFO-modulated delay (15 ms center) creates pitch detuning that simulates multiple voices playing the same part. Adds width and thickness. Multiple voices with different LFO rates create a lusher, more complex chorus.
Flanger
Short modulated delay (2.5 ms center) with feedback. The comb filtering produces a metallic, jet-like sweep. Higher feedback creates more pronounced resonant peaks. Negative feedback inverts the comb filter character.
Phaser
Cascaded allpass filters (2–12 stages) with LFO sweep. Creates moving notches in the frequency spectrum. Fewer stages = subtle, watery. More stages = deeper, more complex phase cancellation. Classic "swoosh" effect.
Tremolo
Amplitude modulation via an internal LFO. The simplest modulation effect — volume goes up and down rhythmically. Square LFO creates choppy gating; sine creates smooth pulsing; triangle is somewhere between.
Ring Modulator
Multiplies the input by an internal oscillator. Sum-and-difference frequencies create metallic, bell-like, or robotic timbres. At audio rates, produces inharmonic sidebands. At low rates, acts like a tremolo with a different character. Selectable modulator waveform.
Frequency Shifter
Bode frequency shifter via Hilbert transform. Shifts all frequencies by a fixed Hz amount (not a musical interval). Small shifts (1–5 Hz) create a slow, rotating phaser-like effect. Larger shifts produce metallic, inharmonic transformations. Unlike pitch shifting, frequency shifting doesn't preserve harmonic relationships.
Wow and Flutter
Modulated delay that simulates the speed instability of tape machines and turntables. Wow is slow, periodic pitch variation. Flutter is faster, more random. Combined, they create the warm, imperfect character of vintage playback equipment.
Spatial & Reverb
Create the impression of acoustic space, from small rooms to infinite voids.
Feedback Network (FDN Reverb)
The primary reverb. An 8-line feedback delay network with Hadamard mixing matrix, Thiran allpass interpolation, and 4-stage pre-diffusion.
- Size — Virtual room dimensions. Small values = tight, boxy. Large values = halls, cathedrals.
- Feedback — Decay time. Higher values = longer tails. At extreme settings, reverb sustains indefinitely (infinite reverb).
- Damping — High-frequency decay rate. Higher = darker reverb that loses brightness over time (like a room with soft surfaces). Lower = brighter, more metallic.
- Mod Rate / Depth — Internal LFO modulates delay lengths to reduce metallic coloration. Subtle modulation (< 1 Hz, low depth) adds natural movement.
- Diffusion — Pre-diffusion smooths early reflections. Higher = smoother, more "washed" sound. Lower = more discrete echoes.
- Mix — Dry/wet blend.
Delay Line
Circular buffer delay with feedback. The fundamental echo effect.
- Delay Time — 0–2000 ms. Short times (< 30 ms) create comb filtering and metallic tones. Medium (50–200 ms) creates slapback echo. Long (> 300 ms) creates rhythmic repeats.
- Feedback — Echo regeneration. Higher = more repeats. Above 1.0, echoes grow louder (use with limiter!). Soft clipping on the feedback path prevents runaway.
- Interpolation — Hermite cubic (default) produces cleaner modulated delays than linear. Matters when automating delay time.
Allpass Filter
Passes all frequencies at equal amplitude but shifts their phase. On its own, nearly inaudible on steady-state signals. In combination (cascaded or with feedback), creates the basis for reverbs and phasers. The delay-based variant creates diffusion effects.
Pitch & Granular
Transform pitch and time-domain characteristics.
Pitch Shifter
Granular time-domain pitch shifting with Hann-windowed grains. Shifts pitch up or down while maintaining duration. Small shifts (< 1 semitone) create subtle detuning. Large shifts create harmonizer effects. Quality degrades at extreme shifts — this is time-domain, not spectral.
Granular Engine
Slices incoming audio into tiny grains (1–500 ms) and reassembles them. The grain parameters create textures ranging from subtle time-stretching to complete sonic destruction:
- Grain Size — Small (< 20 ms) = buzzy, granular texture. Medium (50–100 ms) = recognizable but transformed. Large (> 200 ms) = smooth, time-stretched.
- Density — Grains per second. Low density = sparse, pointillistic. High density = dense, cloud-like.
- Pitch — Grain playback speed/pitch. Can transpose without changing speed.
- Position / Scan Rate — Where in the buffer grains are read from. Fixed position = frozen, stuttering. Scanning = time-stretched playback.
- Scatter — Random offset added to grain position. Breaks up regularity, adds organic feel.
Spectral Freeze
FFT-based magnitude freeze with advancing phases. Captures a spectral snapshot and sustains it indefinitely — like an infinite reverb that perfectly preserves the tonal content of one moment. The "freeze" effect heard in ambient music. Mix parameter blends between frozen and live signal.
Modulation Sources
These modules generate control signals rather than audio. Connect them to parameters on other modules using modulation routing.
Chaos Attractor
Four strange attractors (Lorenz, Rossler, Henon, Thomas) generate complex, non-repeating modulation patterns. The output is a 3D trajectory — x, y, and z can each modulate different parameters for correlated but non-identical movement. Rate controls how quickly the system evolves. Produces organic, evolving modulation that never exactly repeats.
Step Sequencer
16-step pattern generator. Each step holds a value, and the sequencer advances through them at a configurable rate. Four direction modes (forward, reverse, ping-pong, random). Glide smooths transitions between steps for portamento-like modulation. 15 built-in pattern presets cover pitch sequences, gate patterns, and contour shapes.
Stochastic Source
Eight stochastic processes for random modulation:
| Process | Character |
|---|---|
| Brownian | Drunken walk — smooth, wandering, unpredictable |
| Ornstein-Uhlenbeck | Mean-reverting random — wanders but returns to center |
| Perlin | Smooth coherent noise — organic, flowing |
| Levy | Mostly calm with occasional large jumps — volatile, spiky |
| Poisson | Random impulses at average rate — sparse, trigger-like |
| Shot Noise | Decaying impulse bursts — crackly, textured |
| Markov | State transitions — switches between levels with memory |
| Sample & Hold | Stepped random — classic synth randomness |
Knot Modulator
Traces 3D mathematical knots (Trefoil, Figure-Eight, Torus, Cinquefoil, Lissajous) as modulation sources. Each knot shape produces a unique pattern of x/y/z modulation with different symmetries and periodicities. More structured than chaos, more complex than simple LFOs.
Avalanche Modulator
Hash cascade modulation with extreme sensitivity to input. Small parameter changes produce large output shifts — the "butterfly effect" as a modulation source. Produces crackling, volatile modulation patterns.
Slew Limiter
Rate limiter with independent rise and fall times. Smooths abrupt parameter changes — fast rise + slow fall creates envelope-follower-like behavior. Useful for taming spiky modulation sources or adding portamento to stepped modulators.
Analysis
Passive modules that extract information from audio without modifying it.
Pitch Tracker
YIN-based pitch detection. Identifies the fundamental frequency of monophonic input and outputs it as a snapshot value. Shows detected note name, frequency, cents deviation, and confidence. Useful for monitoring or as a modulation source (pitch-following effects).
Onset Detector
Spectral flux transient detection. Identifies note onsets, percussive hits, and other transient events in the input. Optional band-split mode separates detection across frequency bands. Useful for triggering effects or modulation on beat.
Exotic Processors
Unusual, experimental modules that use unconventional algorithms.
Moebius Folder
Double-length delay with mathematical "twist" operations. Creates strange, folded delay effects where the signal seems to fold back on itself. Produces sounds ranging from subtle thickening to disorienting spatial effects.
Cipher Stream / Cipher Block / Cipher Duet
Apply cryptographic transformations (reduced-round ChaCha, AES-inspired, etc.) to quantized audio. The encryption/decryption process introduces structured but unpredictable distortion. At low bit depths, produces rhythmic digital artifacts. At higher depths, creates subtle metallic textures.
Reaction-Diffusion Filter
Applies Gray-Scott reaction-diffusion dynamics to spectral bins. Produces organic, self-organizing spectral transformations — frequencies grow, spread, and interact like chemical patterns.
Hydraulic / Wind / Thermal Erosion
Three erosion algorithms applied to spectral magnitudes. Each simulates a different natural erosion process (water, wind, heat) on the frequency spectrum, gradually wearing away or redistributing spectral energy. Subtle, evolving timbral transformations.
Immune Processor
Genetic algorithm that evolves a population of "antibodies" to discriminate spectral features. The system learns to recognize and react to specific frequency patterns in the input. Produces adaptive, evolving filtering effects.
Mycorrhizal Network
Graph-based voice network with Hebbian learning. Multiple processing nodes connected in a fungal-network topology learn from the input signal and adapt their connections over time. Self-organizing, emergent processing.
Allergic Reactor
Monitors spectral band energies and triggers reactions when thresholds are exceeded — like an immune system that reacts to specific frequency content. Creates adaptive, responsive effects that change behavior based on what they hear.
Origami Fold
Spectral fold operations (Valley, Mountain, Squash, Petal) applied to frequency-domain data. Each fold type transforms the spectrum in a geometrically-inspired way, producing unique timbral shifts.
Modulation Routing
Modulation brings patches to life by creating movement and interaction between modules. Any modulation source (Chaos Attractor, Step Sequencer, Stochastic Source, etc.) can modulate any parameter on any other module.
Creating a Modulation Route
- In the graph editor toolbar, click Add Modulation
- Select a source module (must be a modulation source)
- Select a target module and parameter
- Set depth — how much the modulation affects the parameter
- Choose a curve and polarity
Curves
| Curve | Shape | Use |
|---|---|---|
| Linear | Straight line | Even, proportional response |
| Exponential | Slow start, fast end | Subtle at low modulation, dramatic at high |
| Logarithmic | Fast start, slow end | Quick response with gradual saturation |
| S-Curve | Smoothstep | Gentle transitions at extremes, quick through middle |
Polarity
| Polarity | Range | Use |
|---|---|---|
| Bipolar | -1 to +1 | Modulation swings above and below the base value |
| Unipolar | 0 to +1 | Modulation only adds to the base value |
Multi-Output Sources
Chaos Attractor and Knot Modulator output three simultaneous values (x, y, z). Each can be routed independently to different parameters, creating correlated but distinct modulation on multiple targets.
Transport Controls Reference
Common Controls (Both Modes)
| Control | Description |
|---|---|
| Play / Stop | Start or stop audio processing |
| Input | Input level in dB (before processing) |
| Limit | Brickwall limiter ceiling in dB |
| Bypass | Skip all processing — hear raw source through limiter |
| Auto Level | RMS-based auto-gain normalization (-18 dBFS target) |
| Profile | Enable per-node CPU timing (adds overhead) |
| Inspector | Toggle node inspector in detail view |
| CPU meter | Real-time CPU load, peak, and glitch count |
Synth Mode Controls
| Control | Description |
|---|---|
| Voices | Maximum polyphony (1–16) |
| Glide | Portamento time (0 = instant) |
| Spread | Stereo voice width (0–100%) |
| A / D / S / R | ADSR envelope (attack, decay, sustain, release) |
Recipes & Patches
Saving
In the graph editor toolbar, click Save to write the current recipe to the user directory. Saved recipes appear in the sidebar with a user badge and can be reverted to the bundled version if one exists.
Exporting
Export (effects mode only) writes the recipe as a standalone JSON file that can be shared or imported into other Touchstone-based applications.
Recipe Structure
A recipe is a JSON file containing: - Graph — Nodes (modules) and edges (connections) - Exposed Parameters — Parameters surfaced to the user (starred in the inspector) - Modulation Routes — Source → target parameter connections - Metadata — Name, description, category
A synth recipe additionally contains: - Note Bindings — MIDI note properties → node parameters - Polyphony Config — Voice count, steal mode, glide, ADSR - Effects Graph — Optional post-mix effects chain
Tips & Techniques
Building a Subtractive Synth Voice
- Start with a harmonically rich oscillator (sawtooth or square)
- Bind frequency to the oscillator
- Add an SVF in lowpass mode after it
- Set filter cutoff around 2–4 kHz, resonance 0.2–0.4
- Expose filter cutoff as a parameter for real-time control
- Add a post-mix reverb in the effects graph
- Set attack to 5–50 ms, release to 200–500 ms
Creating Unison/Detune Thickness
Add multiple oscillators with the same frequency binding but different Detune values (try 5, -5, 10, -10 cents). Mix them with a Mixer node. This is more CPU-efficient than increasing the voice count — 3 oscillators inside 1 voice is cheaper than 3 voices with 1 oscillator each.
Parallel Processing
Use a Mixer node to blend a processed and unprocessed path:
Input → [Heavy Distortion] → [Mixer] → Output
└─────────────────────────↗
Self-Oscillating Filter Drone
- Set signal source to Silence
- Add an SVF with resonance at 0.95+
- The filter will self-oscillate at the cutoff frequency
- Modulate cutoff with a Chaos Attractor or Step Sequencer
- Add reverb after the filter
Feedback Patch
Connect a Delay Line's output back to its own input (or through other effects back to the delay). The feedback creates evolving, self-generating textures. Keep the limiter engaged — feedback loops can get loud.
Granular Freeze
- Set Granular Engine density high, grain size medium (50–100 ms)
- Set scan rate to 0
- Position controls which moment is frozen
- Modulate position slowly with a Stochastic Source (Perlin) for drifting, textural pads