Dunes

Dual function generator with GROW/DECAY/WAIT phases, analog logic outputs, and a central VU/mixer section.

Panel map

DUNES is two independent function generators (I and II) with a shared analog logic center.

Each side runs a three-phase GROWTH → DECAY → WAIT cycle with morphable curve shapes and independent time range switching. Polyphonic inputs are supported.

Key controls (each side):
- RISE / FALL / WAIT (phase duration sliders)
- GROW (curve shape: log ↔ linear ↔ exp)
- DECAY (curve shape for fall stage)
- MIXER (control the levels of I and II)
- TRIG (trigger input + button)
- GATE (sustain input + button)
- CYCLE (latch continuous looping + button)
- RANGE switch (LOW / MID / FULL — sets time decade)
- MODE switch (AD / AHD / ADSR-like behavior)

Center section:
- MIN / SUM / MAX outputs (analog min, sum, max of both sides)
- VU meters (5 columns × 10 rows: I, MIN, SUM, MAX, II)
- Phase gate outputs: RISE / FALL / WAIT for each side

Basic use

1. Choose a time range:
   - SLOW: 0.4 s – 409 s (long modulation)
   - MID: 10 ms – 10 s (musical envelopes)
   - FAST: 0.4 ms – 400 ms (fast/percussive)

2. Set phase durations:
   - RISE, FALL, and WAIT sliders set each stage length.
   - Patch CV into the attenuverted inputs to modulate times.

3. Trigger or gate:
   - TRIG fires a single cycle (or retriggers from current position).
   - GATE holds the function at peak while high; decay begins on release.
   - CYCLE button/input sets continuous looping.

4. Shape the curve:
   - GROW and DECAY sliders morph each stage between log, linear, and exponential.
   - MIXER blends the raw output with the shaped signal.

5. Center logic:
   - MIN, SUM, MAX combine both sides for derived modulation without extra modules.
   - Use phase gates (RISE / FALL / WAIT) for sequencing, resets, or chaining.

Context menu:
- Gate threshold (V): adjustable Schmitt comparator level.
- Cycle I/II Jack: Toggle Mode (default: Momentary).

Patching suggestions

• Classic envelope: Patch a gate to GATE I, take OUT I to a VCA.

• Dual correlated envelopes: Run both sides from the same trigger; use GROW/DECAY to give each a different shape. Feed MIN/MAX to filter cutoff and VCA for natural envelope tracking.

• Cycling LFO pair: Enable CYCLE on both sides; dial RISE/FALL for asymmetric ramps. Modulate GROW for continuous waveshaping.

• Phase-clock logic: Patch WAIT I gate → TRIG II for serial function chains. RISE/FALL gates can drive drum voices or sequencer advances.

• Polyphonic envelopes: Patch a poly gate; each voice gets its own independent envelope cycle.

Crosswinds

16-step rhythmic gate displacement sequencer with per-step offset, ratcheting, and an animated waveform display.

Panel map

CROSSWINDS displaces 16 gate events within a sequence by shifting each step's position forward or backward.

The result is a groove or polyrhythm generator where you control not which steps fire, but *when* they land relative to the clock grid.

Key controls:
- 16 OFFSET knobs/trimpots (per-step displacement, −1 to +1 of one step width)
- 16 STEP BUTTONS (enable/disable each step; always visible and editable)
- 16 STEP CV inputs (per-step CV override)
- DEPTH (global displacement amount)
- DEPTH ATT + CV
- LEN (sequence length, 1–16)
- LEN ATT + CV
- MAP CV input (16-ch poly: targets ratchets, offsets, or step gates — set in context menu)
- KNOB MODE button (toggle knobs between Offset and Ratchet control)
- ON/OFF button + jack (start/stop; resets phasor to beat 0 on each start)
- BEAT button + CLOCK jack (tap tempo when unplugged; starts free-running at 120 BPM)
- RESET button + jack (snaps phasor to beat 0, keeps running)
- GATE OUT (displaced gate output)
- END OUT (fires at end of sequence loop, or at end of one-shot pass)
- Waveform display (always shows displaced gate pattern; dimmed when stopped)

Basic use

1. Patch a clock to CLOCK (BEAT jack at the bottom).
   - If no clock is connected, tap BEAT for tempo.
   - The module starts free-running at 120 BPM immediately; no need to wait for a first clock pulse.

2. Enable steps:
   - Each button toggles a step on or off (lit = active).
   - The waveform display is always visible regardless of whether the module is running.

3. Dial offsets:
   - Each OFFSET knob or trimpot shifts that step earlier (−) or later (+) within the beat.
   - DEPTH scales the total displacement range.

4. Set length:
   - LEN selects how many steps play before the sequence loops.
   - END OUT fires a gate on each loop.

5. Watch the display:
   - The waveform shows the resulting gate pattern across the sequence.
   - The moving cursor shows real-time playback position.
   - When stopped, the waveform dims but remains fully visible and editable.

6. On/Off and Reset:
   - ON/OFF stops or starts the sequence; each start resets the phasor to beat 0.
   - RESET snaps back to beat 0 and keeps running.
   - When stopped, all outputs go to 0 V.

Context menu:
- One-shot mode: sequence plays once then stops; ON pulse restarts it.
- Sync to clock on start/reset: when enabled, the module waits for the next clock pulse before advancing (instead of free-running immediately).
- Gate Width (0 = 1 ms trigger, up to 99% of beat = sustained gate).
- MAP CV Destination: Ratchets / Offsets / Step Gates.
- Step Gate CV: Toggle mode vs Direct Set.

Patching suggestions

• Swing/groove: Set most offsets to 0; nudge beats 2 and 4 slightly positive for swing.

• Polyrhythmic displacement: Set different OFFSET amounts on alternating steps for complex rhythmic displacement at consistent tempo.

• Ratchet accents: Use the MAP CV submenu to send a poly CV to ratchet counts; modulate with an LFO or envelope for fills that respond to patch energy.

• One-shot fills: Enable one-shot mode and patch END OUT back to ON/OFF to re-trigger a fill pattern on cue.

• Pattern gating: Use END OUT to reset a sequencer or trigger a new section every N beats.

• Humanise: Modulate DEPTH with a slow LFO to make displacement drift in and out over time.

Drifts

Four-layer clock-synced oscillator with morphable waveshapes, harmonic ratios, and a summed wave output. Also features audio-rate capabilities.

Panel map

DRIFTS runs four independently-clocked phasor layers that sum into a single melodic CV output.

Each layer has a frequency ratio (numerator/denominator), a pitch range (min/max semitones), a waveshape morph, and a phase offset. Designed as a melodic source for MIRAGE.

Key controls (per layer, ×4):
- RATIO NUM / DEN (frequency ratio relative to master clock)
- RANGE MIN / MAX (semitone output window)
- WAVE SHAPE slider + CV trimpot (morphs through wave set)
- PHASE slider + CV trimpot (phase offset)
- LAYER BUTTON (enable/disable)
- GATE CV input (per layer)

Global controls:
- CLOCK input (external clock / V/oct pitch input)
- RESET input + button
- OFFSET knob + CV (global transpose)
- REVERSE button + CV (run phasors backward)
- V/OCT button (toggle CLOCK as V/oct pitch source)
- SYNC button (lock all layers to master clock)
- OscSync button (lock layers 1–3 to layer 0)
- WAVE SET switch (A / B / C — 3 wave families)
- CV RANGE switch (Reflect / Wrap / Clip)
- OUT MIN / OUT MAX (output window clamp)

Outputs:
- MIX OUT (sum of active layers)
- LAYER 1–4 individual outs
- POLY OUT (4-ch poly: phasor, layer CV, or bipolar — context menu)

Basic use

1. Set the master clock:
   - Patch a clock to CLOCK for tempo-synced drift.
   - Or enable V/OCT mode (V/OCT button) and patch pitch CV to CLOCK for pitch-driven behavior.

2. Set layer ratios:
   - NUM and DEN define each layer's period relative to the master. e.g., 1/2 = half speed, 3/1 = triple speed.

3. Set output range:
   - Use RANGE MIN / MAX per layer to set the pitch excursion of each oscillator.
   - Use OUT MIN / OUT MAX to clamp the final summed output.

4. Shape the waves:
   - WAVE SHAPE morphs through the selected wave set (A = classic shapes, B = sands shapes, C = phrase shapes).
   - PHASE offsets a layer's start position for stagger.

5. Enable/disable layers:
   - Use the LAYER buttons to bring voices in and out.

6. Try SYNC:
   - SYNC locks all layers to the master clock for tight alignment.
   - OscSync locks layers 1–3 to layer 0 for sync-locked harmonic ratios.

Context menu:
- Reverse CV Mode: Momentary (default) or Toggle.
- Oscillator Sync Mode: Soft Sync (default) or Hard Sync.
- Layer Outs: Semitone Scaled.
- Supersampling + Bandlimit Filter (Audio Mode).
- Oversampling Factor: 2x / 4x / 8x.
- Filter Cutoff slider.
- Poly Output Mode: Phasor / Layer CV semitone / Layer CV bipolar.

Patching suggestions

• Melodic source for MIRAGE: Patch MIX OUT → MIRAGE CV IN. Set ratios to slow musical divisions for wandering lead lines that stay harmonically coherent.

• Slow poly modulation: Patch POLY OUT (phasor mode) into a poly destination for four independently-drifting mod signals.

• Harmonic LFO bank: Set V/OCT mode off, use clock sync; set each layer to a different integer ratio for related but non-repeating motions.

• Audio-rate oscillator: Use V/OCT mode; enable supersampling + bandlimit filter. OscSync layer 0 → locks for sync-style timbres.

Arcs

Probabilistic 8×8 signal router with crossfade, crosstalk control, and an envelope output.

Panel map

ARCS randomly routes up to 8 inputs to up to 8 outputs each time it is triggered, crossfading smoothly between routing states.

Four probability sliders let you control how many inputs participate, how much crosstalk occurs, how long crossfades last, and how many outputs receive signal.

Key controls:
- 8 AUDIO IN jacks (left column)
- 8 AUDIO OUT jacks (right column)
- Routing display (shows arc connections between active ins and outs)
- IN slider + attenuverter + CV (input participation probability)
- CROSS slider + attenuverter + CV (crosstalk arc probability)
- FADE slider + attenuverter + CV (crossfade duration range, 0–4 s)
- OUT slider + attenuverter + CV (output participation probability)
- TRIG button + jack (fire a new routing)
- HOLD button + jack (freeze current routing)
- ENV OUT (crossfade progress envelope, 0→10V)

Poly input support: a poly signal patched to IN 1 spreads across IN 1–N automatically.

Basic use

1. Patch sources into IN 1–8 and destinations from OUT 1–8.
   - You can use fewer than 8 of each — only connected jacks participate.

2. Set probabilities:
   - IN at max: all connected inputs always participate.
   - IN at mid: each input has ~50% chance of being included per trigger.
   - CROSS adds extra arcs between non-primary in/out pairs (crosstalk).
   - OUT works the same way on the output side.

3. Set fade time:
   - FADE sets the max crossfade duration (random pick in [0, max] by default).
   - Set to 0 for immediate switching.

4. Trigger a new routing:
   - TRIG button or jack selects a new random routing and begins crossfading.

5. Hold:
   - HOLD freezes the current routing (momentary gate by default; toggle mode available in context menu).

6. Use ENV OUT:
   - Rises from 0V to 10V as each crossfade completes — useful for syncing other actions to routing changes.

Context menu:
- IN/OUT: guarantee at least 1 active (default: on).
- FADE: Random time in [0, max] (default: on — off = always use exact max).
- Hold CV: Latching Toggle (default: Momentary Gate).
- Randomize routing now.
- Reset to identity routing (1→1, 2→2, …).

Patching suggestions

• Probabilistic send/return: Patch several FX returns to INs, patch dry signals to other INs; trigger for new send configurations.

• Evolving texture routing: Patch 4–8 oscillator or noise voices; use slow FADE and occasional triggers for slowly morphing timbral blends.

• Poly spread: Patch a poly source into IN 1; ARCS distributes channels across outputs probabilistically.

• ENV-synced events: Patch ENV OUT to a trigger module (using a comparator threshold) to fire events synchronized with routing changes.

• Frozen routing with occasional change: HOLD most of the time; un-hold momentarily every few bars for surprise re-routes.

Mirage

Chord-aware quantizer with expression-graded passing notes, microtonal modes, and velocity output.

Panel map

MIRAGE is a lead quantizer that expands a chord into a scale by scoring and prioritizing passing notes based on the chord's harmonic character.

Key controls and I/O:
- CV IN (lead melody input, V/oct)
- POLY IN (chord input — poly V/oct sets the active chord tones)
- ROOT (root note knob or CV)
- EXPRESSION (how many passing notes are active)
- GATE (open = chord + passing notes; closed = chord tones only; unpatched defaults open)
- MODE (12TET / 24TET / Just — sets the tuning grid of passing notes)
- TRIG IN (optional sample-hold trigger)
- CV OUT (quantized lead output)
- TENSION OUT (always quantizes to full extended scale, ignores gate)
- DELTA OUT (microtonal offset of tension from nearest 12TET semitone, 0V in 12TET mode)
- TRIG OUT (fires on each quantization event)
- VEL OUT (0–10V velocity: 10V for chord tones, graded 1–9V for passing notes by priority)

LED strip: dots show chord tones (bright gold) and active passing notes (dimmer, gate-graded). Dot positions reflect the mode's tuning grid. Interval name labels appear below the top-priority passing notes.

Basic use

1. Set the chord:
   - Toggle notes on the keyboard widget, or patch a poly V/oct to POLY IN.
   - Set ROOT to match your chord root.

2. Choose a mode:
   - 12TET: passing notes are chromatic semitones only. DELTA always 0V.
   - 24TET: adds quarter-tone positions. DELTA = ±1/24 V.
   - Just: adds harmonic series ratios from root. DELTA reflects JI deviations.

3. Dial in expression:
   - EXPRESSION = 0: chord tones only.
   - Turning up adds passing notes in order of harmonic priority (musically important intervals first).
   - The LED strip shows labels (M2, b7, ~P4, 7/4 etc.) for the top active passing notes.

4. Use the gate:
   - With no cable: gate is always open (passing notes active).
   - Patch a gate: high = passing notes accessible; low = chord tones only.
   - Passing note LEDs turn grey when gate is closed.

5. Sample-hold mode:
   - Patch a trigger to TRIG IN to latch the quantized output on each trigger.
   - All outputs (CV, TENSION, DELTA, VEL) hold until the next trigger.
   - TRIG OUT fires on each latch event.

Patching suggestions

• Melodic lead over chord changes: Patch Weave POLY out → POLY IN. Sweep EXPRESSION with an envelope to add passing color only at phrase peaks.

• Microtonal inflection layer: Use TENSION OUT for a second voice detuned by DELTA. Patch DELTA → a VCA or oscillator FM input for subtle just-intonation color.

• Velocity-aware playing: Patch VEL OUT → envelope or VCA amount. Chord tones hit full strength; passing notes are softer, giving melodic lines natural phrasing without extra envelopes.

• Directional scale: The quantizer applies upward snap when the input is rising and downward snap when falling, so a sine LFO sweeping through the scale produces clean ascending and descending lines.

• Just intonation chords: Set MODE to Just, set ROOT, enable only the chord tones on the keyboard. Use TENSION OUT to drive a second oscillator for a naturally-tuned unison or fifth.

Sirocco

Desert ecosystem simulator: evolving grass and locust populations drive CV outputs for wind, rain, and spatial movement.

Panel map

SIROCCO is a spatial predator-prey simulator. Grass and locusts follow Lotka-Volterra predator-prey dynamics in four phases: grass grows and spreads seeds; locusts find the grass and multiply; locusts eat the grass faster than it recovers and their population crashes; grass regrows and the cycle begins again. Because this plays out across a 64-strip circular field rather than a single point, different regions of the strip are at different stages of the cycle simultaneously. Swarms form, move, graze an area bare, and dissolve somewhere else. The outputs never quite repeat.

The four ecology knobs set the four terms of the L-V equations directly. BLOOM is the grass growth rate (prey births). EAT is the predation rate (how fast locusts convert grass into more locusts). GROW is locust survival time (predator lifespan without food). WILT adds a grass death term that is independent of locusts  -  a drought pressure that destabilizes the cycle and pushes the system toward irregular, aperiodic behavior. Wind disperses seeds spatially, so GUST and SQUALL change how far and how unpredictably grass spreads between strip positions, which in turn shapes where the next swarm forms.

Weather controls:
- GUST (wind strength: seed dispersal distance, storm intensity)
- SQUALL (wind variability: direction change rate, dust storm frequency)

Ecology controls:
- BLOOM (grass growth rate  -  L-V prey birth term)
- WILT (drought die-off  -  independent grass death term, destabilizes periodicity)
- EAT (predation rate  -  L-V interaction term)
- GROW (locust lifespan  -  L-V predator decay term)

All knobs have attenuverters and CV inputs.

Trigger buttons + jacks:
- RAIN (force a rain event  -  sudden grass bloom across the strip)
- STORM (trigger a dust storm  -  wind surge that redistributes seeds)
- WADI (toggle circular vs bounded strip topology)
- RESET (reseed the ecosystem from current parameter state)

Outputs:
- GRASS (total grass population, 0-10V)
- SEED (1 ms pulse on each natural seed dispersal event)
- GRASS POLY (16-ch poly: grass density per spatial bin)
- WIND (wind velocity, ±5V  -  changes direction with weather conditions)
- RAIN (rain/storm intensity, 0-10V)
- POP (locust population, 0-10V)
- SWARM (locust centroid position across the strip, 0-10V)

Visual display: animated strip showing grass (green), moisture (blue), seeds, and locust swarm position (yellow).

Basic use

1. Let it run:
   - At default settings the ecosystem self-organizes. Watch the display for grass growth, locust blooms, and rain events.

2. Adjust weather:
   - Increase GUST to drive seeds and trigger storms; increase SQUALL to make wind direction erratic.
   - Press RAIN to force a rain burst; press STORM for a dust storm.

3. Tune the ecology:
   - BLOOM controls how fast grass recovers after a locust pass.
   - EAT and GROW together control locust boom/bust timing.
   - WILT adds drought stress independent of locusts — useful for slower cycles.

4. Change the terrain:
   - WADI toggles the strip between circular (wrapping) and bounded (reflecting walls).

5. Patch outputs:
   - GRASS and POP are slow, anti-correlated waves — good for complementary modulation pairs.
   - SWARM is a spatial position (0–10V) tracking where locusts are concentrated.
   - WIND is bipolar (±5V) and changes direction with weather conditions.
   - SEED fires a 1 ms trigger on each natural seeding event.

Context menu:
- Seed maturation rate.
- Re-seed die-back threshold.
- RAIN Output Mode: Intensity (default) / Rain gate / Dust storm gate.

Patching suggestions

• Dual slow LFOs with ecology: Patch GRASS → filter cutoff and POP → reverb mix. The natural predator–prey cycle creates slow, musically interesting anti-correlated motion.

• Spatial panning: Patch SWARM → stereo panner CV. As locusts move across the strip, a sound source sweeps left to right.

• Weather-triggered events: Use RAIN output (in gate mode) to trigger a reverb tail or filter sweep; use SEED to drive a plucked string or percussion voice.

• Wind modulation: Patch WIND (±5V) into a pitch or delay time input with attenuation for subtle organic drift.

• GRASS POLY as 16-lane CV: The 16-channel poly output gives spatial grass density. Patch to 16 VCA levels or brightness parameters for a moving, organic amplitude field.

Zephyr

Polyphonic V/Oct oscillator and LFO with three morphable wave families, continuous 2D waveshape morphing, FM inputs, and hard/soft sync.

Panel map

ZEPHYR is a polyphonic V/Oct oscillator and LFO built around three families of morphable waveshapes, navigable as a continuous 2D space.

The SHAPE slider morphs through 16 waveshapes within a wave family. The WAVE SET slider morphs continuously between the three families  -  A, B, and C  -  including fractional positions that blend adjacent families together. Both axes wrap at their endpoints, so the full space is a torus: Shape loops through all 16 forms, Wave Set loops A → B → C → A. Modulating both simultaneously produces complex, continuously evolving timbres.

Set A moves through classic oscillator forms  -  pulses, saws, arches, and Gaussian spikes. Set B explores harmonic and timbral space using explicit Fourier series, formant shapes, and spectral redistribution. Set C covers rhythmic and melodic gesture territory  -  bitcrush staircases, supersaw density sweeps, zigzag triangles, and hold patterns. Positions between sets are live crossfades between the adjacent families.

The slider uses a non-linear mapping that creates soft divots at the three integer positions (A, B, C), making it easy to land on a pure family while still allowing smooth morphing through the in-between territory.

Key controls:
- WAVE SET slider + CV (continuous morph between wave families A, B, C  -  wraps A→B→C→A)
- SHAPE slider + trim + CV (morphs through 16 waveshapes in the current family blend)
- PHASE slider + trim + CV (offsets the waveform start position)
- FILTER slider + trim + CV (post-waveshape filter cutoff, log-scaled)
- FREQ knob (coarse pitch offset, ±4V)
- RANGE switch (Audio / Low / Slow  -  sets octave range)
- FM knob (bipolar linear FM depth) + LIN FM input
- EXP TRIM + EXP FM input (exponential FM)
- REV button + LED + gate input (reverse phasor direction)
- HARD SYNC input (rising edge resets all voice phasors)
- SOFT SYNC input (rising edge mirrors phasor direction)
- RESET input
- V/OCT input (polyphonic, up to 16 voices)
- AUDIO output (polyphonic, ±5V)
- PHASOR output (polyphonic, 0-10V)

Wave display: shows the current blended waveshape for voice 0, reflecting both the Shape and Wave Set positions in real time. At LFO rates a playhead dot tracks the live phasor position.

Basic use

1. Set the pitch:
   - Patch a V/oct source to V/OCT. Voice count follows the cable's channel count.
   - Use FREQ to offset pitch and RANGE to shift the octave register.
   - Audio: standard VCO range. Low: −6 oct. Slow: −12 oct (sub-Hz LFO territory).

2. Navigate the waveshape space:
   - WAVE SET morphs continuously between families A, B, and C. Integer positions land on a pure family; fractional positions crossfade between neighbors. The range wraps: sliding past C returns to A.
   - SHAPE slides continuously through 16 positions within the current family blend. Each integer position is a defined waveshape; fractional values morph between neighbors. The range wraps: sliding past shape 16 returns to shape 1.
   - Modulating both WAVE SET and SHAPE simultaneously explores the full 2D timbral surface.

3. The three wave families:
   - A: classic oscillator shapes  -  PWM, saws, arches, hard-edged forms.
   - B: harmonic and timbral shapes  -  Fourier series, formants, spectral sweeps.
   - C: rhythmic and melodic gesture shapes  -  bitcrush, supersaws, zigzag, hold/gate patterns.

4. Offset phase:
   - PHASE shifts the waveform's start position. Polyphonic CV input modulates each voice independently.

5. Use the filter:
   - FILTER controls post-waveshape filter cutoff on a log scale.
   - At high settings (above ~0.8) the filter is transparent  -  useful for anti-aliasing at audio rate.
   - At LFO rates the filter turns off.

6. Add FM:
   - LIN FM is through-zero linear FM  -  patch an audio-rate source for classic FM timbres.
   - EXP FM with TRIM adds exponential pitch modulation.

7. Sync:
   - HARD SYNC resets all voice phasors on a rising edge  -  classic oscillator sync.
   - SOFT SYNC mirrors the phasor direction, creating a softer sync character.

Context menu:
- Reverse CV Mode: Momentary (default) or Toggle.
- Supersampling + Bandlimit Filter (Audio Mode).
- Oversampling Factor: Off / 2x / 4x / 8x.

Patching suggestions

• Polyphonic oscillator: Patch a poly V/oct from a sequencer or MIDI interface. ZEPHYR outputs a poly audio signal with each voice independently pitched. Modulate SHAPE with a poly envelope for per-voice timbral variation, and WAVE SET with a slow LFO for gradual family-level timbral drift.

• 2D timbre morphing: Patch one LFO into WAVE SET CV and another into SHAPE CV at different rates. The two axes are independent, producing complex evolving timbres that never obviously repeat. Set A→B for a classic-to-harmonic sweep; B→C for harmonic-to-rhythmic crossfades.

• LFO with waveshape control: Set RANGE to Slow, leave V/OCT unpatched. The FREQ knob sets rate. Use Set C shapes for rhythmic gate-like modulation contours, or Set B for smooth spectral movement. Morph WAVE SET for continuously evolving modulation character.

• FM voice: Patch a second ZEPHYR's PHASOR output into LIN FM. Set FM depth with the FM knob. Use HARD SYNC from the carrier for sync-FM hybrid timbres.

• Melodic source for MIRAGE: Patch AUDIO out → MIRAGE CV IN. Use Set B harmonic shapes with slow SHAPE and WAVE SET modulation for melodic lines with evolving timbre.

• Phasor as modulation source: PHASOR OUT is a 0-10V ramp following the oscillator phase. Use it to drive waveshapers, scanners, or as a clock-synced LFO with controllable waveshape via external processors.

• Sync pair: Patch two ZEPHYRs  -  master PHASOR OUT → 2nd HARD SYNC. Set lock FREQ higher for classic hard sync timbres. Modulate 2nd SHAPE and WAVE SET while synced for sync-sweep sounds with simultaneous timbral morphing.

Droplet

Polyphonic physical modelling resonator and plate reverb with cross-coupled nodes, dynamics-driven modulation, and audio-rate parameter interpolation.

Panel map

DROPLET is two coupled physical models: an 8-node resonator ring (Drop) feeding an 8-node Schroeder allpass plate reverb (Plate). The module is fully polyphonic, all inputs use a telegraph-down scheme where the deepest poly connection sets the voice count, and the last available channel extends downward to cover all lower layers.

The resonator ring is struck by an internal excitation generator or driven by external audio. Each node has its own delay line, ADAA saturator, and loop compression. The eight nodes are panned across the stereo field and their output feeds the plate. Nearest-neighbour wave coupling (Temper) and skip-link cross-connections (driven by Shimmer) create complex mode interactions across the ring.

The plate is a Hadamard-mixed allpass network with DC blocking on each feedback tap. Its character is shaped by the Plate, Diffusion, Coupling, Decay, and Damp sliders. Cross-group connections between structurally equivalent L/R plate nodes (also driven by Shimmer) widen the reverb tail and increase spatial complexity.

SHIMMER controls two distinct effects simultaneously:
- A slow independent random walk of each the droplet node's tuning, creating organic pitch drift and preventing narrowband buildup in the resonator ring.
- The gain of all cross-connections: skip links in the resonator ring, cross-group plate node links, and plate-to-ring feedback injections - these interconnections follow the pattern indicated on the panel artwork. At zero shimmer the extra cross-connections are bypassed entirely. As shimmer increases, the two models become progressively more coupled and the system takes on a larger, more complex resonant character.

All CV-reachable and dynamics-reachable parameters are interpolated at audio rate toward their targets, eliminating stepping artifacts on fast CV modulation and dynamics sweeps.

A dynamics envelope follower tracks the mid-band energy of each voice independently and can be routed to modulate any of the 9 sliders. The dynamics source button cycles through three modes: Droplet RMS follower (blue), excitation envelope (yellow), and OFF.

Key controls:
- PITCH knob + V/oct input (sets resonator fundamental, polyphonic)
- STRIKE button + TRIG input (fires the internal excitation, polyphonic)
- RESONATOR L/R inputs (external audio into the ring, polyphonic)
- PLATE L/R inputs (external audio directly into the plate, polyphonic)
- VOL knob + trim + CV (output volume)
- DRY/WET knob + trim + CV (blends between the dry resonator input and the combined wet signal)
- BLEND knob + trim + CV (morphs the wet signal between pure plate reverb at full and pure resonator ring at zero; at intermediate positions the two are mixed with the resonator phase-inverted for physical accuracy)
- DYNAMICS slider + trim + CV (envelope follower mod depth, polyphonic)
- 9 DYN buttons (assign each slider as a dynamics modulation target)
- 8 node TRIM trimpots arranged in a circle around the LED grid
- RAND button (randomizes node trims)
- ZERO button (zeros all node trims)

Resonator sliders (blue):
- SHAPE (node spread and chaos character)
- SHIMMER (node pitch drift + cross-connection coupling strength — see above)
- TEMPER (nearest-neighbour wave coupling between ring nodes)
- RESONANCE (loop feedback gain)

Plate sliders (yellow):
- DIFFUSION (allpass g parameter — controls plate resonance density)
- PLATE (node delay spread and chaos)
- COUPLING (inter-node energy coupling in the plate)
- DECAY (plate feedback scalar — tail length)
- DAMP (high-frequency rolloff applied to both ring and plate; fades in smoothly over the bottom quarter of travel, then sweeps from 8kHz down to 200Hz)

Center display: 4×4 LED grid showing per-node energy (large light) and detuning from fundamental (small white light) for both resonator (blue, top rows) and plate (yellow, bottom rows). Display reflects voice 0.

Outputs:
- OUT L / OUT R (stereo audio, polyphonic)
- DROP (per-voice RMS dynamics envelope on the droplet stage, 0–10V, polyphonic)
- STRIKE(per-voice raw excitation shape envelope, 0–10V, polyphonic)

VU meters: blue 10-segment display near DROP envelope output; yellow 10-segment display near STRIKE envelope output.

Basic use

1. Set the pitch:
   - Use the PITCH knob or patch a V/oct source to the PITCH input.
   - The resonator ring's fundamental follows this setting.
   - Patch a polyphonic V/oct cable to play chords — each voice gets its own independent resonator.

2. Strike the resonator:
   - Press STRIKE or patch a trigger/gate to TRIG.
   - Polyphonic gates fire each voice independently.
   - The strike character is shaped in the context menu under Strike Character: length, slant, curve, and intensity.

3. Shape the resonator:
   - SHAPE morphs through four zones: unison, spread, spread-into-chaos, and pure chaos.
   - SHIMMER adds slow organic drift to each node's tuning and progressively couples the ring nodes and plate nodes together via cross-connections. At zero, the two models are fully isolated. At high values, they exchange energy freely.
   - TEMPER adds nearest-neighbour coupling between ring nodes for a more diffuse, wave-like character.
   - RESONANCE sets how long the ring sustains.

4. Shape the plate:
   - PLATE sets the spatial arrangement of the plate nodes.
   - DIFFUSION controls how densely the plate reverberates.
   - COUPLING sets how tightly the plate nodes exchange energy.
   - DECAY sets the reverb tail length.
   - DAMP rolls off high frequencies in both the ring and plate. The bottom quarter fades the effect in; the upper three-quarters sweep the cutoff from 8kHz down to 200Hz.

5. Use external audio:
   - Patch audio to RESONATOR L/R to drive the ring from an external source.
   - Patch audio to PLATE L/R to inject directly into the plate, bypassing the ring.
   - Both inputs accept polyphonic cables.

6. Set the mix:
   - BLEND morphs the wet signal between pure plate reverb (full) and pure resonator ring (zero). At intermediate positions the resonator is phase-inverted and mixed with the plate — this is physically correct and produces a natural comb-like space in the transition zone.
   - DRY/WET then blends the combined BLEND output against the dry input signal. At full wet, only the blended model output is heard.
   - For a standard reverb send/return: set BLEND to full (all plate) and use DRY/WET for mix.
   - To hear the resonator ring directly alongside the plate: reduce BLEND toward zero.

7. Route dynamics:
   - The ENV output tracks the mid-band energy of each voice's input and internal strikes.
   - The EXCITE output carries the raw per-voice impulse shape envelope.
   - Press any DYN button to assign that slider as a dynamics modulation target.
   - The DYNAMICS slider sets the modulation depth and direction.
   - The dynamics source button (above the DYNAMICS slider) cycles through three modes:
     - Blue (Drop RMS): modulation driven by the per-voice RMS envelope follower.
     - Yellow (Strike): modulation driven by the per-voice strike excitation envelope.
     - Off: dynamics modulation disabled regardless of button assignments.

Context menu:
- Follow Time: envelope follower response speed.
- Auto Rand. Threshold: energy level that triggers node trim randomization.
- Rand. Range: spread of randomization.
- Noise Floor: noise level in the resonator impulse strike.
- Resonator Gain: internal overdrive level.
- Strike Character: length, slant, curve, and intensity of the internal impulse.
- Reseed Plate Character: re-randomize the plate node delay offsets defining the plate's unique character.
- Panic: immediately clear all resonator and plate energy.

Patching suggestions

• Basic reverb: Patch any audio source to RESONATOR L/R. Set BLEND to full (all plate). Set DRY/WET to taste. Use DIFFUSION and DECAY to shape the tail. COUPLING adds density. DAMP softens the high-frequency content.

• Resonator only: Set BLEND to zero (all ring). Strike with TRIG or drive with RESONATOR inputs. The ring output is heard directly without the plate. Useful as a tuned comb filter or metallic resonator effect.

• Blended physical space: Set BLEND to 0.5–0.7. The plate reverb and resonator ring mix together, creating a space with both the pitched character of the ring and the diffuse tail of the plate.

• Pitched physical model: Leave RESONATOR inputs unpatched. Set PITCH to a V/oct sequence. Trigger STRIKE from a gate. The ring produces a pitched resonance that decays naturally.

• Polyphonic chords: Patch a polyphonic V/oct cable to PITCH and a polyphonic gate to TRIG. Each voice in the chord gets its own fully independent resonator and plate — up to 16 voices.

• Large coupled resonance: Turn SHIMMER up to 0.5–0.8. The ring and plate nodes begin exchanging energy through the cross-connections, creating longer, more complex decays with emergent inharmonic content. The node pitch drift prevents self-oscillation while the coupling gives the sound a massive, steel-like character.

• Bowed drones: Patch an audio-rate gate to TRIG. The continuous excitation bows the ring. Adjust Strike Length and Slant in the context menu to fine-tune the bowed quality.

• Dynamics-reactive reverb: Patch a drum bus to RESONATOR L/R. Set the dynamics source to blue (Drop). Assign DECAY to a DYN button. Loud transients lengthen the reverb tail automatically.

• Excitation-reactive modulation: Set the dynamics source to yellow (Strike). Assign SHAPE or DAMP to a DYN button. Each strike sweeps the modulation target in sync with the impulse envelope, independently per voice in a poly patch.

• Per-voice envelope routing: Patch STRIKE envelope output to a downstream VCA or filter. In a polyphonic patch each channel carries its own voice's impulse envelope — use it to shape the amplitude or timbre of each note independently.

• Node sculpting: Use the node TRIM trimpots around the LED grid to manually offset individual ring node tunings. RAND randomizes all at once for unpredictable harmonic clusters. ZERO resets to unison.

• Cymbal sounds: From the default position, decrease DAMP to zero, set DECAY to 0.9, and set SHIMMER to 0.6–0.8. Click RAND to randomize the node TRIMs. The cross-connections at high shimmer add metallic complexity to the cymbal character.

Strands

Hurdy-gurdy physical model with six bowed strings, twelve sympathetic resonators, trompette chien, and true stereo dual-mono signal path.

Panel map

STRANDS is a hurdy-gurdy physical model synthesizer. Six bowed strings share a single continuously-rotating wheel (bow speed). The two melody strings (chanterelles) are V/oct pitched and form the stereo left channel; their subtly-detuned counterparts form the stereo right channel. Three drone strings (mouche, bourdon, trompette) sit at fixed intervals below the FREQ root and are centered in the stereo field. Twelve passive sympathetic strings (six tunable pairs) resonate in response to the ensemble. The trompette carries the chien — a buzzing bridge that triggers on the tirant control, producing the characteristic rattling buzz of a real hurdy-gurdy.

The signal path is true dual-mono stereo: the chanterelle pair and the trompette pair each have their own independent DC blocker, ADAA drive saturator, and four-stage allpass body resonator, one chain per channel. The drone strings (mouche and bourdon) are not doubled and are summed equally into both channels. The sympathetic strings are also mono-summed into both channels as centered ambience.

The waveform display shows the standing wave on the melody string in real time, stitching the nut segment and bridge segment together at the bow contact position. A small ellipse tracks the bow wheel contact point. Display color shifts from cool blue-grey toward warm amber as bow speed and drive increase.

Key controls:
- FREQ knob (melody pitch, ±1V range, C4 center) + V/OCT input (tracks external V/oct)
- BOW knob + BOW input + BOW trim (wheel speed, -2 to +2; negative bows in reverse)
- TONE slider + trim + CV (bridge lowpass tone filter; logarithmic 300 Hz to 18 kHz)
- DRIVE slider + trim + CV (ADAA saturator gain applied once per channel after the ensemble sum, before the body resonator; 1.0 clean to ~8.0 saturated)
- POSITION slider + trim + CV (bow contact position along the string; 0=near nut, 1=near bridge; panel range maps to a safe 0.1–0.9 of string length)
- SYMPATHY slider + trim + CV (coupling strength of the sympathetic resonator bank; quadratic taper so low values are subtle)
- TIRANT input + trim (controls the trompette chien trigger threshold; at zero the chien is inactive, increasing tirant brings the buzzing bridge into contact)
- FM input + FM trim (frequency modulation of the melody strings only; depth and semitone range set in context menu)
- VOLUME knob + VOLUME CV
- OUT L / OUT R (stereo audio)

Context menu:
- Bow Junction: Sticking Friction (height of the stick plateau; higher = more energy per release event), Slip Falloff (how abruptly friction collapses past the capture threshold; higher = sharper transient), Capture Velocity (width of the sticking region; narrower = crisper Helmholtz motion), String Impedance (shared scaling of friction coupling into the string; lower = more present transient)
- Drone Strings: Drone Mix Level (balance of mouche/bourdon/trompette relative to the chanterelles in the ensemble sum), Mouche/Bourdon/Trompette intervals (fixed semitone offsets below the FREQ root)
- Melody / FM: FM Depth (semitone range at full CV + trim), 2nd Chanterelle Detune (unison detune between the two chanterelle strings in cents; non-zero creates natural beating and stereo width)
- Sympathetic Strings (12, 6 pairs): Max Coupling (ceiling on the coupling gain before the quadratic SYMPATHY taper), Sympathetic Decay (feedback per round trip; higher = longer shimmer tail), Sympathetic Damping (high-frequency rolloff inside the sympathetic loop), six pair interval sliders (semitone tuning of each of the six string pairs relative to the FREQ root)
- Body / Wobble: Body Feedback (feedback gain of the allpass resonator; adds sustain and body resonance), Body Diffusion (allpass coefficient; shapes the resonator color), Wobble Amount (slow random perturbation of the wheel speed; simulates hand-pressure variation)
- Trompette Chien: Enable toggle, Pulse Width (ms), Amplitude, Threshold (tirant level at which the chien triggers), 2nd Trompette Detune (unison detune of the second trompette in cents; produces independent chien timing per channel, which is what puts the buzz in stereo)
- Panic: immediately clears all string and resonator energy

Basic use

1. Set the pitch:
   - Use the FREQ knob to set the melody string pitch. Center position is C4.
   - Patch a V/oct source to V/OCT to play from a sequencer or keyboard.
   - The drone strings (mouche, bourdon, trompette) track the FREQ knob only — they do not follow V/OCT. Their intervals relative to the root are set in the Drone Strings context submenu.

2. Start the wheel:
   - Turn the BOW knob above zero. The strings begin vibrating when bow speed exceeds the minimum threshold. The module sleeps at zero bow speed.
   - Patch a CV to BOW (with BOW trim set) to automate bow speed — a slow envelope opening the wheel at note start is a natural pairing.
   - Negative BOW values reverse the wheel direction. The sound is nearly identical but can introduce subtle timbral differences.

3. Shape the bowed tone:
   - TONE sets the brightness of the bridge filter. Dark settings produce a warm cello-like character; bright settings reveal more upper harmonics.
   - POSITION moves the bow contact point along the string. Near center (low values) gives a rounder, fundamental-heavy tone. Toward the bridge (high values) gives a brighter, edgier sul-ponticello character.
   - DRIVE adds saturation after the ensemble. Use it lightly for warmth or push it further for harmonic grit.
   - The friction character of the stick-slip cycle (what gives bowed strings their edge) is tuned in the Bow Junction context submenu. Narrower Capture Velocity and higher Slip Falloff produce a crisper Helmholtz motion. The waveform display will visibly sharpen from a rounded shape toward a kinked sawtooth-like profile as the bow junction gets crisper.

4. Engage the tirant and chien:
   - The TIRANT input controls the trompette chien — the buzzing bridge. Patch a CV (or use a manual offset) to bring the tirant level up.
   - The Chien Threshold in the context menu sets the tirant level at which the buzz engages. At moderate tirant levels the buzz is periodic and locked to the trompette string cycle. At high levels it fires very frequently.
   - The chien runs as two independent instances, one per trompette. With 2nd Trompette Detune set above zero (default 4 cents), the two instances trigger at slightly different moments, putting the buzz naturally in stereo.

5. Add sympathetic resonance:
   - Raise the SYMPATHY slider to bring up the passive sympathetic string bank. These strings resonate in response to the ensemble without being directly bowed.
   - Their tuning (six pairs, twelve strings total) is set per-pair in the Sympathetic Strings context submenu. The defaults are tuned to complement common hurdy-gurdy modes.
   - Sympathetic Decay and Sympathetic Damping shape the shimmer tail length and brightness.

6. Use the body resonator:
   - Body Feedback and Body Diffusion (Body / Wobble submenu) shape the resonant body of the instrument. Higher Body Feedback adds sustain and a warm, boxy coloration. Body Diffusion adjusts the allpass character of the resonator stages.

7. If the module clips or locks up on high notes:
   - The model folds notes above approximately +2V back down by octaves automatically. If the model still saturates (rare at extreme settings), use the Panic item in the context menu to clear all energy and resume.

Patching suggestions

• Basic melody voice: Patch a V/oct sequencer to V/OCT, an envelope to BOW (with BOW trim to taste). The bow opens at each note, the melody string speaks, the drone strings fill the lower register continuously. POSITION and TONE shape character; DRIVE adds grit at the top.

• Drone texture without melody: Set BOW to a fixed positive value, leave V/OCT unpatched. The drone strings and sympathetic bank create a static, harmonically rich drone tuned to the FREQ knob. Use SYMPATHY for shimmer depth and Body Feedback for sustain length.

• Expressive bowing: Patch a CV from a mod wheel or expression pedal to BOW (with trim). Slow, manual bow speed sweeps let you recreate the feel of changing bow pressure — slower speeds give a fragile, breathy tone; faster speeds push into a louder, more saturated zone.

• Chien rhythmic patterns: Patch a sequenced CV to TIRANT. When the tirant CV crosses the Chien Threshold the buzz engages; when it drops below, it silences. Stepped sequences on TIRANT create rhythmic buzzing patterns locked to the melody.

• FM timbre variation: Patch an envelope or LFO to FM input with FM trim set low. Small amounts add expressive vibrato. Higher FM Depth (context menu) with a faster LFO produces sitar-like metallic timbres.

• Sympathetic shimmer layer: Set BOW to zero (no bowing), raise SYMPATHY to maximum, and drive the sympathetic bank with an external audio signal patched nowhere — just the natural excitation from a separate instance of STRANDS. The 12 sympathetic strings bloom and shimmer in response to any nearby energy, usable as a passive reverb-like layer.

• Sul ponticello bowing: Push POSITION toward maximum and select a bright TONE setting. The bow near the bridge produces intense upper harmonic content. Add moderate DRIVE and tight Capture Velocity (Bow Junction menu) for a nasal, folk fiddle tone.

• Stereo width control: The stereo image comes from the two detuned chanterelle/trompette pairs running through independent signal chains. Increasing 2nd Chanterelle Detune (Melody/FM menu) and 2nd Trompette Detune (Trompette Chien menu) widens the image with natural beating. Reducing both toward zero collapses to near-mono.