Downspout plugins: capability reference for agents

Purpose: let an automated agent decide which plugin provides a capability, what it consumes and emits, and how to wire it. One paragraph per plugin. For user-facing prose and example chains see docs/summary.md; for scale tables see docs/scales.md.

Conventions that apply to every plugin

Quick reference

Plugin Bundle Kind Audio in/out MIDI in/out Transport
ambo ambo.vst3 audio effect 2/2 no/no no
arpgen arpgen.vst3 MIDI processor 0/2 yes/yes yes
basilico basilico.vst3 instrument (mono bass) 0/2 yes/no yes
bassgen bassgen.vst3 MIDI generator 0/2 yes/yes yes
bassops bassops.vst3 audio effect (sidechain) 4/2 yes/no no
beards beards.vst3 audio effect (granular) 2/2 yes/no no
bubbles bubbles.vst3 instrument (water) 0/2 yes/no yes
cadence cadence.vst3 MIDI processor 0/2 yes/yes yes
campione campione.vst3 instrument (sampler) 2/2 yes/no no
canticle canticle.vst3 instrument 0/2 yes/no no
chipper chipper.vst3 audio effect 2/2 yes/no no
conductor conductor.vst3 MIDI generator/controller 0/2 no/yes yes
counterpointer counterpointer.vst3 MIDI processor 0/2 yes/yes yes
damiano damiano.vst3 audio effect 2/2 yes/no no
drift drift.vst3 CC modulator + audio thru 2/2 no/yes yes
drumgen drumgen.vst3 MIDI generator 0/2 yes/yes yes
drumkit drumkit.vst3 instrument (drums) 0/2 yes/no no
e-mix e_mix.vst3 audio effect 2/2 no/no yes
floozy floozy.vst3 instrument 2/2 yes/no no
flues-synth-driver flues_synth_driver.vst3 MIDI controller 0/2 yes/yes no
gater gater.vst3 audio router 2/4 yes/no declared
ghost ghost.vst3 audio-to-MIDI 2/2 yes/yes yes
grist grist.vst3 audio effect (granular grain delay) 2/2 no/no yes
gremlin gremlin.vst3 instrument (glitch) 0/2 yes/yes no
gremlin-driver gremlin_driver.vst3 MIDI controller 0/2 yes/yes yes
ground ground.vst3 MIDI generator 0/2 yes/yes yes
glue glue.vst3 audio effect (compressor, sidechain) 4/2 yes/no no
octet octet.vst3 audio effect (equalizer) 2/2 yes/no no
trio trio.vst3 audio effect (multiband dynamics, sidechain) 4/2 yes/no no
infra infra.vst3 audio effect (beat-locked LFO and stereo VCA) 2/2 no/no no
spindown spindown.vst3 audio effect (tape stop and start) 2/2 yes/no no
strata strata.vst3 instrument (wavetable) 0/2 yes/no no
wheelhouse wheelhouse.vst3 instrument (tonewheel organ) 0/2 yes/no no
whirligig whirligig.vst3 audio effect (rotary speaker) 2/2 yes/no yes (Beat mode)
chorale chorale.vst3 audio effect (chorus) 2/2 yes/no no
silken silken.vst3 audio effect (vocal strip: de-esser, gate, leveller, EQ) 2/2 no/no no
fresco fresco.vst3 audio effect (spectrogram painter: picture to spectrum) 2/2 no/no yes (optional playhead)
quartet quartet.vst3 instrument (FM) 0/2 yes/no no
monochord monochord.vst3 instrument (string) 0/2 yes/no no
nam nam.vst3 audio effect (neural amp + cab IR) 2/2 no/no no
guardian guardian.vst3 audio utility (limiter) 2/2 no/no no
harmonic-atlas harmonic_atlas.vst3 MIDI generator 0/2 yes/yes yes
helterskelter helterskelter.vst3 audio effect (wah) 2/2 yes/no yes
keyframe keyframe.vst3 audio effect (time stretch) 2/2 yes/no no
ladder ladder.vst3 audio effect (filter) 2/2 yes/no no
spense spense.vst3 audio effect (phase disperser) 2/2 no/no no
heavyverb heavyverb.vst3 audio effect (reverb) 2/2 no/no no
interleaver interleaver.vst3 audio effect (two-input interleaver) 4/2 no/no no
lifeform lifeform.vst3 MIDI generator 0/2 yes/yes yes
lightverb lightverb.vst3 audio effect (reverb) 2/2 yes/yes no
loopdelay loopdelay.vst3 audio effect (delay/looper) 2/2 yes/yes yes
luma luma.vst3 MIDI generator 0/2 yes/yes yes
magneto magneto.vst3 instrument (engine) 0/2 yes/no yes
thumper thumper.vst3 instrument (kick) 0/2 yes/no yes
snatch snatch.vst3 instrument (snare) 0/2 yes/no yes
tops tops.vst3 instrument (hi-hat/cymbal) 0/2 yes/no yes
clatter clatter.vst3 instrument (GM percussion) 0/2 yes/no yes
melgen melgen.vst3 MIDI generator 0/2 yes/yes yes
midiscribe midiscribe.vst3 MIDI utility 0/0 yes/yes yes
mixgen mixgen.vst3 CC generator + audio thru 2/2 no/yes yes
m-mix m_mix.vst3 MIDI processor 0/2 yes/yes yes
mnemosyne mnemosyne.vst3 MIDI processor 0/2 yes/yes yes
moka moka.vst3 instrument (modal) 0/2 yes/no no
mosaic mosaic.vst3 instrument (slice sampler) 0/2 yes/no yes
oracle oracle.vst3 audio analyser + MIDI 2/2 yes/yes yes
orbit orbit.vst3 audio effect (spatial) 2/2 no/no yes
orchid orchid.vst3 audio effect (freeze) 2/2 yes/no yes
paunchlad paunchlad.vst3 effect/instrument (Launchpad) 2/2 yes/yes no
plank plank.vst3 instrument (Launchpad) 0/2 yes/yes yes
p-mix p_mix.vst3 audio effect (gate) 4/2 no/no yes
polymeter polymeter.vst3 MIDI generator 0/2 yes/yes yes
pratt pratt.vst3 instrument + filter 2/2 yes/no no
primefold primefold.vst3 audio effect (pitch) 2/2 yes/no no
quefrency quefrency.vst3 audio effect (formant) 2/2 yes/no no
qune qune.vst3 audio effect (pitch quantiser) 2/2 yes/yes no
prism prism.vst3 audio effect (banded spectral delay, tempo sync) 2/2 no/no no
mouth mouth.vst3 audio effect (vowel / formant filter) 2/2 yes/no no
sieve sieve.vst3 audio effect (spectral sieve) 2/2 no/no no
zmorph zmorph.vst3 audio effect (z-plane morph filter) 2/2 no/no no
scope scope.vst3 audio effect (spectrum / meter) 2/2 no/no no
resonance-garden resonance_garden.vst3 audio effect (resonators) 2/2 yes/no no
retune retune.vst3 MIDI processor (tuning) 0/2 yes/yes no
rift rift.vst3 audio effect (buffer) 2/2 yes/no yes
sam sam.vst3 instrument (speech synthesiser) 0/2 yes/no yes
sidecar sidecar.vst3 MIDI generator 0/2 yes/yes yes
skream skream.vst3 audio effect (filter) 2/2 yes/no no
spliff spliff.vst3 audio effect (transients) 2/2 yes/no no
markov markov.vst3 MIDI generator 0/2 yes/yes yes
sprout sprout.vst3 MIDI generator 0/2 yes/yes yes
syrinx syrinx.vst3 instrument + audio-driven voice (birdsong) 2/2 yes/no no
t-mix t_mix.vst3 audio mixer 8/2 yes/yes no
trajectory trajectory.vst3 instrument (polygon bounce) 0/2 yes/no no
fathom fathom.vst3 instrument (drone) 0/2 yes/no no
treatment treatment.vst3 audio effect (acoustic) 2/2 yes/no no
tuney-vst tuney_vst.vst3 instrument + MIDI 0/2 yes/yes yes
sinevox sinevox.vst3 audio effect (formant vocoder / sine wave speech) 4/2 yes/yes no
voxmod voxmod.vst3 audio effect (vocoder) 4/2 yes/no no
worms worms.vst3 MIDI generator 0/2 yes/yes yes
xoxolo xoxolo.vst3 MIDI generator 0/2 yes/yes yes

Some “0/2” generators declare a stereo output they leave silent; that is a host convenience, not audio content. The gater audio bus counts are 2 in, 4 out (two stereo pairs).


MIDI generators

bassgen

Transport- and meter-aware bass line generator with persistent patterns, loop-boundary variation and style set Auto, Straight, Reel, Waltz, Jig, Slip Jig. Emits bass-register MIDI (default channel 1) and consumes incoming MIDI as context: configurable Follow or Dodge, channel/note matching and sensitivity let existing parts guide or suppress generated notes. Conductor Ch (0 = off) maps CC 21 to density, 22 to accent, 23 to auto-variation rate and CC 24 = 127 to a fresh pattern; CC 20 is ignored. The Descending genre plays one line down the scale across the pattern (top of the line at the start, the root at the end), with Color as the amount of wander (0 = strict staircase); Descend/bar restarts it in every bar. Pair with basilico or any bass instrument. Requires host transport.

drumgen

Meter-aware MIDI drum generator with pattern variation and fills; genre vocabulary includes Breakbeat, Amen, Jungle and Hip Hop. Emits drum MIDI (default channel 10) aimed at drumkit’s note map; MIDI input exists only for control (Conductor CCs). Conductor Ch maps CC 21 to density, 22 to variation, 23 to mutation rate and CC 24 = 127 to a new pattern. Persistent patterns. Requires transport. Automaton layer (off by default; appended parameters ca_rule 0-10, ca_target 0-4, ca_every 1-8 loops per generation): the generated pattern is generation 0, then on each generation the targeted lanes (hats, percussion, toms, all three, or every lane) play the next row of a 1-D cellular automaton (rules 30, 90, 110, 150, 18, 54, 60, 22, 105, 126; wrapping edges) seeded from the lane’s own hits; the pass comes from the playback position, the stored pattern is untouched, empty lanes stay silent, and after 64 generations a lane returns to the pattern.

melgen

Phrase-aware melody generator that shapes contour, question/answer structure and longer-range form, and reacts to incoming musical context. Inertia (default 0 = unchanged output) biases the next interval Narmour-style: after a leap it favours reversal, after a step it favours continuation. Accepts MIDI and control MIDI, emits melody MIDI. Persistent state. Requires transport.

ground

Long-form bass generator with Dub and Jazz orientations, phrase planning (phrase roles Statement, Climb, Breakdown, Answer, Cadence) and register-guarded output, for evolving foundation lines rather than short loops. Conductor Ch: CC 20 sets tension and overrides the current phrase role (0-16 Statement, 17-48 Climb, 49-80 Breakdown, 81-112 Answer, 113-127 Cadence), CC 21 density, CC 22 motion, CC 23 vary, CC 24 = 127 regenerates the whole arc. Requires transport.

harmonic-atlas

Autonomous chord generator: emits bounded chords with no input, or treats incoming notes as pitch-class roots. Four movement families (tonal, modal, chromatic-mediant, neo-Riemannian). Gravity (default 0 = unchanged) replaces a chord with probability up to 85% by a functional-harmony target (V to I, IV to V, I to IV/V/vi, otherwise drift to I/IV/V; cadence positions land on the tonic). Voice-leading above 50% (default 75%) chooses inversion and octave by a sorted-voice-distance search against the previous chord (penalty outside C2-C6, voiced six chords back so a chord depends only on its number and seed); at or below 50% it uses the old fixed stacking. Voicing spread limits inversions tried. Output is HarmonyMidi for any chord-capable instrument. Requires transport.

worms (ToneWorm)

Transport-locked melody generator that walks a Tonnetz pitch lattice with Paterson’s Worm algorithm: six directional rules, each choosing among L120, L60, Straight, R60, R120. Scale quantisation, register control and loop-boundary variation; Randomize and Mutate actions make new rule sets. Conductor Ch reads CC 21-24 (density, velocity, vary, mutate). Route its MIDI to melgen or an instrument. Requires transport.

markov

Markov-chain melody generator, transport-locked, monophonic MIDI out. The walk is over the twelve pitch classes counted from Root through a 12 x 12 transition matrix (weights 0-8 per cell) held in plugin state, shown on screen and editable by clicking cells; Style (Stepwise, Triadic, Fifths, Pentatonic, Blues, Chromatic, Tonic pull, Uniform) replaces it, Clear zeroes it (an empty row plays any note in the scale) and Randomise draws one. Scale (the 24 canonical scales) zeroes out-of-scale notes before sampling, Chaos (default 50%) is the exponent 2^(1-2c) on the weights, and Order 1-2 uses the two previous notes where learned second-order data exists for the pair. Notes take the octave nearest the previous one inside Lowest note and Octaves (1-4); Density, Gate, Velocity, Step grid (as Sprout) and Channel shape the rhythm. Each Phrase length (1-8 bars) restarts the walk from the tonic, seeded by Seed, so a note is a pure function of its position: loops, locates, other block sizes and offline renders repeat exactly. Learn counts note-to-note transitions on the MIDI input (relative to Root, octave-equivalent; Learn channel 0 = all; feed one line), Learned mix blends first-order counts into the matrix row by row where a row has data, Clear learned (a counter parameter) forgets them; matrix and counts are saved as the model state. Conductor ch (0 = off): CC 21 Density, 22 Velocity, 23 Chaos, CC 24 = 127 re-rolls the melody at the next bar line. Pair with retune for microtonal melodies.

sprout

L-system melody generator. MIDI input is optional and off by default (see below); output is a monophonic line. Seven grammars (Plant, Koch, Dragon, Sierpinski, Cantor, Levy, Tree) plus Custom (preset 7), a generation count, scale and root, played as a monophonic line locked to the transport on a grid from 1/16 up to 1 bar (bar length from the host time signature). Grow every N bars starts at generation 1 and adds one generation per N bars. Expansion is capped at a fixed symbol count and falls back to the deepest generation that fits; tables are prebuilt, so no allocation occurs in the audio thread. Cantor yields rhythm on one pitch, Koch/Tree contour, Plant long self-similar phrases. Settings are parameters, except the Custom grammar text, which is plugin state grammar (default F; F -> F+F-F-F+F): the start string, then rules X -> rhs, separated by ; or a new line (one letter on the left, letters and + - [ ] on the right, at most 16 rules and 240 characters). The panel’s Rules field edits it live (click it, type; a click on a built-in’s rules copies them in to tweak); text that does not parse is ignored, so the plugin keeps playing the last valid grammar. MIDI input: Pitch source = Held or Latched (default Scale, unchanged) maps degrees onto the notes held on the input (degree 0 = lowest held note, spread over the held tones at about seven degrees per octave; nothing held = rest; Input channel 0 = all) so it can follow harmonic-atlas, cadence or arpgen. Latched keeps the chord after the keys are released and replaces it on the first press after all keys are up. CC channel (0 = off) enables the Drift convention on that channel: CC 1 Probability, 2 Gate, 3 Range, 4 Generations. Conductor ch (0 = off): CC 21 Probability, 22 Velocity, 23 Seed, CC 24 = 127 restarts the pattern at the next bar line. MIDI is applied at block start; CCs write through to the parameters; the Generations count is latched once per bar. Appended parameters, so older projects are unchanged.

polymeter

Four Euclidean lanes, each with independent length, rotation, pulses, ratchets, probability, accent, note and channel; lengths can be coprime so lanes drift against each other. Each lane has an Automaton rule (default 0 = Euclidean; 1-255 selects a one-dimensional cellular automaton such as 30, 90, 110, 150) whose row evolves every lane cycle, with Pulses setting the initial row density. Events are scheduled at sample offsets within the host block on a single MIDI bus separated by note and channel. Requires transport. Conductor ch (0 = off; MIDI input is used only for this) maps CC 21 to a master Density (multiplies every lane’s probability), 22 to a master Energy (scales velocity), 23 to the seed, and CC 24 = 127 restarts every lane at the next bar line. Both masters default to 1 (no change).

xoxolo

x0x-style drum step sequencer with 11 drumkit-oriented lanes and patterns up to 32 steps; use when explicit programmed patterns are wanted rather than generation. MIDI input is used only for Conductor CCs. Requires transport. Evolve: any lane can be marked (per-lane flag in the saved pattern, written only when used); with Evolve rule (ca_rule 0-10, 0 = off) a marked lane plays the programmed grid on pass 0 and then successive rows of a 1-D cellular automaton seeded from it, each held for Evolve every (ca_every 1-8) passes; unmarked lanes always play their grid, the grid itself is never altered, empty lanes stay silent, and the lane returns to the grid after 64 generations. The pass number comes from the playback position, so it is repeatable. Conductor Ch (0 = off): CC 21 sets density (probability a programmed hit plays, seeded so it is repeatable), 22 sets energy (velocity 100 down to 40), 23 adds 0-63 generations to the Evolve layer, and CC 24 = 127 restarts the pattern and evolve generation at the next bar line. Defaults leave the pattern as programmed.

lifeform

Conway’s Game of Life sequencer for Launchpad (or UI-only use). Each beat advances a generation and living or newly born cells become melodic or drum notes, with scale mapping, velocity, gate, density, seed pattern and randomise/clear/step actions. The live 64-cell pattern is saved as a bitmap in plugin state; restoring a seed does not reseed over it. LED feedback is sent back to the controller. Clock mode is transport or free running. Requires transport in transport mode. Conductor Ch (0 = off) maps CC 21 to density, 22 to velocity, 23 to mutation and CC 24 = 127 to a fresh random pattern; Conductor CCs still pass through when Pass Input is on.

luma

Launchpad performance generator: lit grid cells drive coordinated bass, chord, melody and drum agents, with transport-clocked or free-running steps, multi-part MIDI output and LED feedback. Pattern state is saved. Conductor Ch (conductor_ch 0-16, default 0 = off) maps CC 21 to density, CC 22 to energy and CC 24 = 127 to scatter; CC 20 and 23 are unused.

sidecar

Phrase player for generated solo material. Deterministic local generation, with an optional localhost coordinator mode for phrases supplied by an external process (docs/sidecar-plan.md, docs/ai-api.md). Emits melody MIDI; requires transport.

tuney-vst

Text-to-music instrument and MIDI generator derived from Tuney 0.3.39. Typed or stored Unicode text is mapped through configurable alphabets, scales and microtonal tunings and played as seeded free-time phrasing through a small polyphonic internal synth, while also emitting ordinary MIDI. Text and tuning data are persistent state.

conductor

Arrangement controller. Emits bar-aligned section notes plus scene, density, energy, mutation and reset CC values on a configurable channel (default 16) at each section boundary, from a fixed musical form (Intro, Develop, Break, Reprise, Coda) or seeded weighted section selection with bounded durations. CC 20 Scene (0/32/64/96/127), 21 Density, 22 Energy, 23 Mutation, 24 Reset (127 at Intro and Coda). MIDI out only; it never alters the host graph. Targets: bassgen, drumgen, ground, worms, bubbles.

MIDI processors and utilities

arpgen

Transport-synced arpeggiator. Chord mode captures incoming chord slices; Scale mode derives scale runs, triads or sevenths from held register anchors. Rates quarter through thirty-second, straight and triplet; one to four octaves; up, down and alternating orders. Latch and capture state are internal. Requires transport. Conductor Ch (0 = off): CC 21 Density sets Octaves (1-4), CC 22 Energy sets Rate (1/4 up to 1/32).

cadence

Transport-aware harmoniser and comping generator that learns harmony from incoming MIDI (learned transition model) and emits chord/comping MIDI. No gravity control yet; a progression chosen by learned transitions, not a functional-harmony graph. Persistent state. Conductor Ch (0 = off): CC 21 Complexity, 22 Movement, 23 Variation, CC 24 = 127 relearns.

counterpointer

Learns incoming MIDI and emits a monophonic counter-melody. Counterpoint mode and Bass Descend mode; Inertia (default 0 = unchanged) is a scoring term in Counterpoint mode only. Routing column provides Freeze and channel selectors. Persistent state. Conductor (0 = off): CC 21 Density, 22 Embellish, 23 Short Rnd, CC 24 = 127 relearns.

mnemosyne

Phrase memory. Stores eight bounded phrases, accompanies incoming MIDI, or generates from recalled and transformed material; an internal motif covers an empty reservoir. Persistent motif state; requires transport.

m-mix

Transport-aware MIDI gate combining probabilistic P-Mix-style transitions with E-Mix-style Euclidean blocks: removes or passes notes before they reach an instrument. Conductor Ch (0 = off): CC 21 Density sets Open Bias, CC 22 Energy sets Maintain inverted (busier gating).

retune

MIDI effect that retunes a note stream to a Scala .scl scale. For each held note it sends a pitch bend that moves the nearest 12-TET key onto the scale degree, on its own channel (2-16), so the downstream instrument must follow per-channel bend at the same range (Bend range, 1-24 semitones, default 2, must equal the synth’s). CC and program change reach every channel; incoming pitch bend and channel aftertouch are dropped. With no file loaded it passes 12-TET unchanged. Only the scale file path is saved, not its contents; .kbm keyboard maps are not supported. Place between a generator and a per-channel-bend instrument.

midiscribe

MIDI capture utility, no audio. Passes all MIDI through unchanged; while Armed (default off) it records into a rolling window (Capture Beats 8/16/32/64) and writing (Write momentary trigger) exports a Type 0 Standard MIDI File at 480 PPQ with the host tempo. The export path is state (key exportPath, default /tmp/midiscribe.mid).

flues-synth-driver (FlueSynthDriver)

MIDI controller for the external Flues vocal/physical-model synthesizer. Converts plugin parameters (Disyn algorithm and three Disyn parameters, noise/DC level, interface type, formants F1-F4, nasal/sing/shout/fry modes, attack, release, tuning, delays, filter feedback, gain, trajectory controls) into CCs, with 31 selectable programs (MIDI program change 0-30) that remap nine sliders to CCs. Only changed parameters are sent (dirty tracking), and the first block after activation resends the sliders. Output channel and a Conductor channel are selectable; input MIDI passes through unless blocked, and Panic and Randomize actions are provided. No transport use.

gremlin-driver

Automation companion for gremlin. Several modulation lanes (shape, rate, depth, centre, target) and trigger slots (action, rate, chance) emit CC, scene/action commands and randomisation bursts, clocked by transport or an internal clock (BPM 40-220). Optional input MIDI pass-through (default on).

drift

Four-lane transport-synchronised MIDI CC modulator that also passes audio unchanged. Each lane is an LFO, sample-and-hold, bounded random walk, deterministic chaos source or audio envelope follower, with a target CC, depth and centre. Default CCs 1-4 so the effects that read those need no setup (see conventions).

mixgen

Transport-synchronised automatic producer for t-mix. Eight repeatable gain lanes use random, low-discrepancy or Euclidean patterns and send CC 20-27 to strips 1-8. T-Mix, FX-only and Full-bus profiles add four macros that route to loopdelay (CC 30, 31) and lightverb (CC 32, 33); CC 19 claims or releases the producer bus. Audio passes through.

oracle

Self-influence analyser: bounded analysis of level, onset, brightness, density, pitch class and incoming MIDI, mapped to rate-limited, guarded CC and note responses. Fixed analysis storage and a refractory interval after each response keep feedback bounded. Audio in and out, MIDI in and out.

ghost

Audio-triggered ghost-note generator: listens to audio (output silent unless Audio Thru is on) and emits MIDI quantised to the transport 16th grid. Onset accents jump to the next slot; quieter fills land on off-16th slots with probability Density, pushed late by Drag. Drums mode emits kick 36 and ghost snare 38 on channel 10; Notes mode walks a pentatonic-minor ladder from Base Note on a selectable channel. Sensitivity, Density, Velocity and Drag read Drift CC 1-4. Fires only while the transport runs. Natural chain: dry drum bus into ghost, ghost MIDI into drumkit.

Instruments

drumkit

Stereo synthesised drum instrument with one MIDI input and a mixer-style panel, one instrument per note: eleven instruments (Kick, Clap, Snare, Crash, Closed HH, Tom 1, Open HH, Tom 2, Bash, Cowbell, Clave), each with a mute. Natural target of drumgen, xoxolo, luma drum output and GM-style drum MIDI. Notes select unpitched drums, so pitch bend has no effect. Settings are parameters only.

basilico

Monophonic bass with five core models Upright, Electric, Dub, Acid and Industrial plus Reese and Hoover profiles; note priority (last-held), glide with legato behaviour, velocity accent, per-model filter and drive, free or tempo-synced wobble (amplitude, filter and stereo phase/flange targets with 0-360 degree start offset), and a Squelch acid macro. Follows per-channel pitch bend (sounding note’s channel, RPN 0 range, applied instantly rather than gliding). Host tempo used for wobble sync. Bypass silences it.

canticle

Twelve-voice instrument with keys, reed, pad, pluck and glass timbres for melody, counterpoint and chords. Per-channel pitch bend with RPN 0 range, voices keyed by channel and note.

floozy

Eight-voice hybrid physical/modulation synthesiser derived from floozy-poly; expressive leads, plucks and unusual textures. Declares audio input. Per-channel pitch bend with RPN 0.

moka

Modal “hit object” synth: eight damped modes per voice, six instrument tables (xylophone, glockenspiel, woodblock, glass bowl, metal sheet, tube), polyphony 1-12 (default 4), eleven presets including Kalimba. Note onset ramps over the mallet contact time (no click). Per-channel pitch bend with RPN 0, voices keyed by channel and note.

syrinx

Avian syrinx voice: the Mindlin-Laje ODE solved per voice at audio rate, with the oscillator pitch-locked to its target f0 so contours really sweep the source, a pitch-tracking vocal-tract bandpass, tracheal formant comb, respiration and noise/roughness modifiers. Eleven presets (Wren to Crow), up to eight voices. Source picks the player. MIDI: each note-on plays a phrase of 1-16 short syllables (Chirp sets speed and sweep depth, Variation the spread, Gap the silence between). Audio in: the input is analysed for pitch (autocorrelation), loudness, sibilance and onsets, and that steers a free-running bird voice (Pitch Multiplier, Voice Range, Gate, Pitch Glide, Hiss to Turbulence, Bird Mix); the keyboard is ignored. Both runs the two together. Status outputs (input level, input Hz, bird Hz, state) feed the live pitch plot in the UI. CCs 1 vibrato depth, 7 volume, 11 level, 71 roughness, 73 duration, 74 timbre, 76 vibrato rate, 77 noise, 78 harmonic, 79 coupling, 80 AM depth, 81 syllables, 82 chirp, 83 pitch, 84 variation, 85 respiration, 86 gap, 87 bird mix, 91 distance, 94 contour bend. Per-channel pitch bend with RPN 0.

pratt

Number-theoretic synthesiser and filter built on Pratt polynomials. Synth mode plays eleven General MIDI voice families (piano, electric piano, organ, pluck, bass, strings, brass, reed, flute, pad, timpani) with spectra from the stable all-pole filter H_n at n = (note + 1) x base; handles sustain pedal, volume, expression, pan, pitch bend (own Bend Range control, per channel) and channel-10 drums. Filter mode filters the audio input through cascaded Index controls (n = A x B), Cutoff and Filter Mix; Synth + Filter does both. Timbre Index (separate fixed chain) darkens voices. Audio input is ignored in Synth mode. Persistent state.

magneto

Physically informed four-stroke engine synthesiser (Baldan et al., SIVE’15): per-cylinder digital waveguides feed intake runners, extractors, a straight pipe, a four-element muffler and a tailpipe; outputs intake, block vibration and tailpipe mixed to stereo for a Cabin/Front/Rear/Exterior listening position. Controls: RPM, Throttle, cylinders, displacement, compression, ignition width, Growl, pipe lengths, Silencing, Backfire, Inertia (flywheel). A MIDI note sets RPM (transposed down two octaves; C4 hits the 9000 rpm limit) and velocity sets Throttle; note-off is ignored. CC 1 throttle, 2 RPM, 3 silencing, 4 growl, 5 pipe, 6 turbulence, 7 output. Speed source Host Sync locks the engine cycle to tempo and idles when the transport stops. Sounds immediately at 850 rpm idle. Not a pitched voice: pitch bend is not applicable.

thumper

Kick drum generator with ten synthesis engines (virtual analog, modal, subtractive, FM, phase distortion, wavetable, 808, 909, physical, noise burst) and style presets (techno, gabber, rock, latin, house, trap, acoustic). Independent pitch/filter/amp envelopes, layering of two engines, output distortion. Velocity sets level. Note Map General MIDI (default): only notes 35 and 36, at the Pitch parameter; Selected: channel 10 plays at the Pitch parameter, other channels at the note’s pitch for that hit only.

snatch

Snare drum generator with six engines (Tone+Noise, Metal, Brush, Electronic, Acoustic, Side Stick) and five presets (rock, jazz, electronic, latin, brushed). Controls: Pitch 100-400 Hz, Tone, Noise, Snap, Body, Decay, Volume, Distortion. Note-on triggers one monophonic hit; velocity sets level. Note Map General MIDI (default): 37 side stick, 38 selected engine, 40 Electronic, others ignored; Selected: any note plays the chosen engine. Selecting a Preset overwrites the other sound controls. No CCs.

tops

Hi-hat and cymbal generator: ten Instruments (closed, open and pedal hat, crash, ride, splash, china, cowbell, tambourine, triangle), six engines (Metallic, Noise, FM, Physical, Wavetable, RingMod) and five presets. Controls: Pitch 1-12 kHz, Decay, Tone, Noise, Brightness, Volume, Distortion, and a Pan per instrument. Velocity sets level. Note Map General MIDI (default): notes 42 closed, 44 pedal, 46 open, 49 crash, 51 ride, 52 china, 54 tambourine, 55 splash, 56 cowbell, 81 triangle, others ignored; Selected: any note plays the selected Instrument. Closed and pedal hats choke a sounding open hat. No CCs.

clatter

General MIDI percussion generator for the sounds Thumper, Snatch and Tops leave out: 31 sounds in five families on their GM notes. Membrane: toms 41 43 45 47 48 50, bongos 60 61, congas 62 (mute) 63 (open) 64, timbales 65 66, surdos 86 (mute) 87 (open). Metal: agogos 67 68, mute triangle 80, jingle bell 83, bell tree

  1. Wood: claves 75, wood blocks 76 77, castanets 85. Shaker: cabasa 69, maracas 70, shaker 82, vibraslap
  2. Clap + guiro: clap 39, guiros 73 74. Whistles (71, 72) and cuicas (78, 79) are not provided. Velocity sets level. Note Map General MIDI (default): only those notes play; Selected: any note plays the Sound parameter. Each family has Tune (+-12 st), Decay (x0.25-x4) and Tone; Level and Width (stereo spread of each sound’s fixed pan) and a Pan offset per family. Open and mute congas and surdos, and the two guiros, choke each other. 16 voices. No CCs.

trajectory

Eight-voice synthesiser whose oscillator is a point bouncing inside a regular polygon (3-12 sides); the waveform is the point’s x and y position, mixed. Ported from the Flues Trajectory experiment with the reverb dropped and the attack/release envelope widened to a full ADSR (per voice). Six oscillator controls: Sides, Start Position, Launch Angle, Bounce Jitter, X Level, Y Level; plus Attack, Decay, Sustain, Release, Velocity, Level. Notes play it (note-on re-seats and relaunches the point); pitch follows the note proportionally but the absolute pitch depends on the shape (a square at 45 degrees is in tune, a dodecagon about a fourth flat). The six oscillator controls are CC 1-6 and CC 7 is Level, so Drift’s default lanes (CC 1-4) drive Sides, Start Position, Launch Angle and Bounce Jitter with no setup. A CC moves the sound but not the on-screen slider.

fathom

Four-voice drone synthesiser modelled on the Vhikk X algorithm reference: a generator, a per-voice notch filter, then a delay network with a frequency shifter in its feedback loop. Five generator algorithms (Analog, Shaper, Sines, Table, Cluster) share five controls (Warp, Span, Morph, Seed, Fuse) that mean something different in each; two processors (Metallic, Diffuse) with Time, Form, Feed, Shift and Mix. Attack and Release are long by default, Hold (sustain pedal, CC 64) keeps notes sounding, Glide slides between notes. Stereo out, the four voices panned apart. CC 1-4 are Warp, Span, Morph, Seed (Drift’s default lanes), 5 Fuse, 6 Field, 7 Level, 8 Notch, 9 Mix, 10 Time, 11 Form, 12 Feed, 13 Shift, 14 Basis. A CC moves the sound but not the on-screen slider.

qune

Stereo pitch quantiser. Tracks one pitch from the L+R sum (McLeod NSDF, 4 ms hop) and moves it to the nearest note of Scale (24 scales in the canonical ordering, Root) or to MIDI notes: Target = Scale, MIDI chord (nearest held pitch class, any octave) or MIDI note (last note played, plus pitch bend of Bend Range). No Notes chooses Bypass or Use scale while no key is held; MIDI In is All or one channel. Amount (-100 to +200 %: above 100 overshoots, negative pushes away from the note), Glide (0 = stepped, longer = slide), Stickiness (cents of hysteresis) and Transpose (whole semitones) shape the shift. Quality picks Fast (splice delay line, about 4 ms, formants follow pitch), Good (PSOLA, 2.4 periods of the Range floor: 16/28/61 ms for Lead/Voice/Bass at 48 kHz) or Best (phase vocoder, about 43 ms); Good and Best take Formant (Follow pitch / Preserve) and Formant Shift (+-24 st). Voicing, Mix, Level. Unvoiced input passes through. Latency is reported to the host (it changes with Quality and Range) and an output parameter shows it. MIDI in maps only notes, pitch bend, CC 64 (hold) and CC 120/123 (clear). MIDI out (MIDI Out, Out Channel, Out Velocity) sends the quantised target as legato note-on/note-off; everything else is a host parameter. No plugin state. Monophonic: one pitch at a time.

prism

Banded spectral delay, stereo. An STFT (sqrt-Hann windows, 8x overlap, FFT Resolution 512 / 1024 / 2048 / 4096) reads each frequency bin back from the spectrum stored some whole number of frames ago and applies the sub-hop remainder as a phase rotation. The delay of a bin comes from up to 8 bands (Bands), log-spaced from 31.25 Hz to 16 kHz, interpolated in log frequency. Per band: L Delay and R Delay (0-2000 ms), Feedback (0-95 %) and Solo (heard wet only, overriding Mix). Link L/R makes the right side follow the left. Sync L and Sync R (ms / RATE) switch a side to note divisions of the host BBT tempo (13 divisions, 1/64 to 1/1 with triplets and dotted, per band b1_div_l / b1_div_r; 120 BPM if the host gives none; limited to 2 s); an output parameter shows the tempo. Low Cut (20 Hz-2 kHz) and High Cut (200 Hz-20 kHz) leave everything beyond them undelayed over a third of an octave; both are off at the ends of their ranges. Mix. Latency is the FFT size (512-4096 samples) and is reported to the host; an output parameter shows it. No MIDI, no plugin state: every setting is a host parameter (band parameters are b1_delay_l … b8_solo). Delays between band centres are approximate; feedback repeats lose level at some delays (worst case about 2 dB by the fourth repeat).

mouth

Vowel filter, stereo, no latency. Five parallel formant band-pass filters (zero-delay-feedback state-variable) are placed at the formants of a vowel blended from A, E, I, O and U by inverse-distance weighting on an x-y pad (Vowel X, Vowel Y: down = open mouth, across = tongue front to back). Voice picks the Csound formant table (Bass, Tenor, Alto, Soprano); Shift (+/-12 st) scales every formant, Resonance scales bandwidth (50 % as tabulated), Spread detunes formants 2-5 oppositely on left and right, Drive saturates before the filters (0 = off), Air returns unfiltered highs, Mix (0 = bit-exact dry) and Output. Wet level is normalised so noise keeps about its level. MIDI in is used only for Drift CC 1-4 on CC Channel (default 1, 0 = off): Vowel X, Vowel Y, Shift, Resonance. No plugin state. Colours any source; it does not take a modulator (see voxmod).

sieve

Spectral sieve, stereo, ~1024 samples latency. An STFT mask keeps only partials near the notes of a chosen scale (or held MIDI notes), in every octave, preserving the source’s own texture. Controls: Root, Scale, Source (Scale/Held MIDI), MIDI In, Width (cents half-width), Floor (dB minimum gain), Tilt (odd/even harmonic tilt), Mix, Level. No plugin state.

zmorph

Z-plane morph filter, stereo, no latency. Morphs between low-pass and high-pass shapes at the chosen Cutoff and Resonance. Controls: Cutoff, Resonance, Morph (0 = low-pass, 1 = high-pass), Mix, Level. No plugin state.

scope

Spectrum analyser and level meter, stereo, no latency. Audio passes through. 64 log-spaced bands (20 Hz to 20 kHz) with a labelled frequency grid and a 60/90/120 dB scale; levels view shows peak, RMS and correlation. Controls: Range (60/90/120 dB), Speed, Peak hold (off/on), Display (spectrum/levels). No plugin state.

bubbles

Water sound generator, stereo, continuous without MIDI (note-on/off optionally gates and modulates). Seven modes (Stream, River, Ocean, Bubbles, Drips, Rain, Custom) over subtractive noise layers plus physical models (up to 36 bubble voices, 16 drip voices, four modal body resonances), with Flow, Turbulence, Size, Density, Heat, Depth, Brightness, Resonance, Randomness, Space, Drive and Output. Conductor Ch is accepted.

gremlin

Chaotic glitch instrument, monophonic source with performance scenes (Manual plus Splinter, Melt, Rust, Tunnel), 17 live and eight hidden parameters, eight macros, eight momentary controls, randomisation actions (reseed, burst, random source/delay/all, panic), delay behaviours, LED/controller feedback for a Launchpad-style surface, and master trim. Also accepts CC 16-31, 46-62 and button notes as a hardware surface. Plays pitch from MIDI notes above the controller button range and follows per-channel pitch bend for the last-played channel. Companion: gremlin-driver. Keeps its patch across activation and sample-rate change.

campione

Multi-zone sampler: each zone maps a WAV to a note range, pitch-shifts to the target pitch, fills gaps by nearest root, with per-zone ADSR, biquad filter (LP/BP/HP/notch), pan, zero-crossing-snapped and crossfaded loops, and mute. Loads WAV PCM and float32, REX2 slices (consecutive notes from C1), and Serum clm wavetables (first cycle extracted); records live input into a new zone with auto root-note detection; beat slicing; embedded MCP HTTP server (default on) for programmatic zone control (docs/mcp.md). Global MIDI channel filter (0 = all). Voices keyed by note and channel; per-channel pitch bend with the Bend Range control (0-24, default 2, no RPN). Eight voices, oldest stolen. A zone pinned to one channel will not sound for Retune’s other channels. Zone data and sample paths are state. Loop end is treated as exclusive (the WAV smpl spec is inclusive, so the last loop frame is skipped).

mosaic

Four-slot WAV sampler with MIDI and autonomous triggering (Trigger source MIDI, Autonomous, Both). Seeded slice selection, grain size, slice size, reverse chance, stereo spread, attack/release, 16 voices, zero-crossing boundary snapping. Pitch range (default 7) gives each slice a random transposition within the range and ignores the note; at 0 the note sets pitch (note - 60) and Pitch bend range (1-24, default 2) applies per channel. Sample paths are state. Requires transport for autonomous mode.

plank

Eight-voice touch-synth derived from Plinky, driven from a Launchpad grid (each column a voice, each row a scale degree; polyphony held rather than allocated). PolyBLEP oscillator pair morphing across 17 band-limited wavetables, resonant two-pole filter, two envelopes, tape delay, shimmer reverb, mid/side width, and several resonator engines. Emits LED and note MIDI (note-on/off on a base channel, with a MIDI thru switch). 24 scales, ordering governed by docs/scales.md. Input notes are grid presses, not pitches, so pitch bend is not applicable. Persistent state; host validation pending.

Audio effects

ambo

Stereo ambient processor with four rearrangeable module chains over Time, Spectral, Tape, Shimmer, Delay, Drive, Feedback, Mix and Output controls: granular smear, frozen-band motion, tape colour, shimmer diffusion, ping-pong echo, saturation and regenerative ambience. High Feedback and stacked shimmer become dense quickly; keep Output trimmed.

chipper

Lo-fi crusher: sample-and-hold rate reduction (Rate Div 1-64, optional Jitter 0-100%) followed by midtread bit quantisation (Bit Depth 1-16), then Mix and Output Gain (-12..+12 dB). CC overrides (default CC 1 bit depth, 2 rate div, 3 jitter, 4 mix on the selectable channel; CC 0 disables) so Drift drives it directly.

damiano

Six-mode stereo distortion (Soft, Tanh, Fuzz, Overdrive, Tube, Wavefold) with Drive 1-10, Tone (one-pole high shelf before the shaper, about 3 kHz, 50% = flat), Folds 1-8 (Wavefold only), Mix and Output Gain (+-24 dB). Stereo Linked/Split (default Linked, identical to before): Split gives the right channel its own Mode, Drive, Tone and Folds for a binaural effect. Selectable CC numbers (all on one CC channel, 0 = off): CC Drive and CC Shape (waveshaper mode in six steps) for the left or both channels, and CC Drive R and CC Shape R for the right channel (Split only), so two Drift lanes can modulate the channels independently.

skream

Scream filter: input through an ADAA2 anti-aliased tanh saturator and an SVF low-pass, with a high-passed, saturated feedback path gated by an envelope-follower expander. Ten presets. Controls Input Gain, Cutoff, Scream (feedback high-pass cutoff, clamped to Cutoff), Resonance (HP Q and feedback gain), Mix, Output Gain. Morph (-100..+100 %, default 0 = off, appended parameter) crossfades the forward SVF between low-pass and high-pass by a weight that follows the effective cutoff position (+: LP at low cutoff to HP at high; -: reverse; weight 0.5 is a notch), so Drift/CC sweeps of Cutoff also sweep the shape; 0 leaves output bit-identical to the plain low-pass. Selectable CC numbers override Cutoff and Scream.

bassops

Sidechain ducker plus mid/side bass management. Inputs 1-2 are the main signal, 3-4 a control signal (typically a dry kick send) driving an envelope follower whose inverse ducks the main signal. After ducking the signal is summed to mono (a one-sided mono feed is treated as dual mono); a waveshaper’s added harmonics, high-passed at the cutoff, form the side, so bass stays clean mono and highs gain width. An optional Bass 90 (Off/Left/Right, default off and idle) shifts the bass below the cutoff 90 degrees between the channels for low-end width. With Attack and Release both at 0 the follower is bypassed and the main signal is multiplied by the signed sidechain (ring mod, blended by Duck Depth). Delay (beats) (12 steps, Off to 1 beat, locked to the host tempo, 120 bpm if none) and Delay (ms) (0-200) add together and hold the main input back before the ducker and the dry path, so a bass note starts just after the kick; crossfaded over 10 ms, total limited to 2 s, not reported as latency. Read-only status_delay_ms shows the total. Reports 64-sample latency to the host.

e-mix

Transport-aware Euclidean stereo gate: deterministic block rhythms applied to audio.

p-mix

Transport-aware probabilistic stereo gate/mixer producing evolving channel switching and rhythmic dropouts. Oppose uses a sidechain on inputs 3-4: loud sidechain tends to make it quieter and vice versa.

t-mix

Eight-input mono-to-stereo mixer with level, pan, mute, solo, meters and master fader. Accepts Mixgen CC 20-27 as click-smoothed transient gain multipliers while the manual faders stay as the saved balance. Passes producer MIDI through.

loopdelay

Stereo delay and capture looper. Time is free (20-4000 ms) or follows host BBT from a quarter beat to four bars. Fixed CC 30 time and CC 31 feedback temporarily override the panel until Release MIDI; optional CC 19 gating, per-chain channel filter and MIDI through. Intended order t-mix -> loopdelay -> lightverb -> guardian.

lightverb

Fixed-cost stereo feedback-delay-network reverb, low CPU, usable as insert or 100% wet send. Fixed CC 32 Wet mix and CC 33 Space; same CC 19 lifecycle, channel isolation and MIDI-through behaviour as loopdelay.

monochord

Eight-voice waveguide string (a redesign, not a port, of the Oxide Studio Tension). MIDI in (velocity, pitch bend over Bend range, sustain pedal CC 64, CC 120 and 123), stereo out (mono voices, both channels equal), no audio input, no transport use, no plugin state: 14 automatable parameters. A delay line closed into a loop with a damping low-pass, a fractional-delay all-pass and a four-section stiffness all-pass; the loop is tuned from its own phase delay (error about 1e-12 samples), so every note is within 0.4 cents whatever the damping and stiffness. Exciter Pluck (a triangle, rounded as Hardness falls), Bow (friction while the key is held; Bow pressure) or Hammer (a half-sine pulse); Position 0.05-0.5 sets where along the string. Decay 0.1-20 s is the fundamental’s 60 dB time (within 12 % at Damping 0), Damping makes the high partials die faster (partial 8 at about 2x the fundamental’s rate at 0.7; per pass, so stronger on high notes), Stiffness sharpens the upper partials (on a low note partial 6: +3 cents at 0.5, +20 at 0.7, +62 at 0.9) without moving the fundamental. Pickup is a comb at a fraction of the string (at 1/n it removes every n-th harmonic), Body size and Body level add two resonances, Release is the damper after note-off. The panel plots the string’s initial shape and the harmonics it gives. About 0.8 % of a core for a note, 6 % for eight.

quartet

Eight-voice four-operator FM synthesizer (a redesign, not a port, of the Oxide Studio Operator). MIDI in (velocity, pitch bend over Bend range, sustain pedal CC 64, CC 120 and 123), stereo out (mono voices, both channels equal), no audio input, no transport use, no plugin state: 59 automatable parameters (opa_wave … glide; Play mode Poly/Mono/Legato and Glide 0-2000 ms). Each operator A-D has a Waveform (sine, or a band-limited saw or square), Ratio 0.25-32 with Fine +-50 cents or a Fixed Hz, a Level (a carrier’s output, a modulator’s FM amount) and its own ADSR. Algorithm 1-11 routes them (1 D>C>B>A; 4 D>(B+C)>A; 11 all additive; carriers are averaged); the panel draws the routing from the same table. FM Depth (0-4 cycles; the index in radians is 2 pi x depth x level) and Feedback (D into itself). A Pitch envelope (+-48 st, ADSR) and one Filter (LP 12, LP 24, HP 12, BP, Notch; cutoff, resonance, key track). Quality 2x runs the voice oversampled and decimates with a 63-tap half-band FIR (flat to 18 kHz, -89 dB stopband): on a deliberately extreme patch it lowers aliasing from -17 to -53 dB at note 72, -8 to -26 at note 84, -2 to -8 at note 96. Saw and square operators stay under -77 dB inharmonic at every pitch. About 1 % of a core for a note and 5 % for eight at 1x; 2 % and 13 % at 2x.

strata

Eight-voice wavetable synthesizer (a redesign, not a port, of the Oxide Studio Wavetable). MIDI in (velocity, pitch bend over Bend range, sustain pedal CC 64, CC 120 and 123), stereo out, no audio input, no transport use, no plugin state: 43 automatable parameters (osc1_table … glide; Play mode Poly/Mono/Legato and Glide 0-2000 ms). Two oscillators each read one of five table families (Table: Basic, Harmonics, Formant, Digital, Vintage) of eight frames that Position scrolls through; every frame is stored in 21 band-limited versions and the read picks the one that stays under Nyquist, so a square measures -77 to -89 dB away from its harmonics at every pitch (a naive read: -12 to -25 dB). Warp is None, Bend, Sync or Fold (Fold is antialiased), with an amount; warp aliasing at note 60, amount 0.7 is -42.6, -38.5 and -33.1 dB. Per oscillator Transpose +-24 st, Fine +-50 ct, Level. A sine Sub (-1 or -2 octaves), Unison (Classic, Shimmer or Noise; 1-8 voices; Amount; the voices are in step at Amount 0, so the fundamental never cancels), one Filter (LP 12, LP 24, HP 12, BP, Notch; cutoff, resonance, key track, filter envelope to cutoff and to position), amplitude and filter ADSRs, one LFO (five shapes; to position, pitch, cutoff), Master, Velocity. A one-pole DC blocker at about 4 Hz is on the output. Eight voices; a ninth steals the quietest. About 2 % of a core for a note, 9 % for eight at the defaults, 28 % for the heaviest unison, up to about 90 % with Fold and Sync together. The panel plots each oscillator’s warped waveform.

trio

Three-band dynamics, stereo, no transport, latency or plugin state; MIDI in for Drift: CC Channel (0-16, default 1) and CC 1-4 drive Amount, Time, Input and Upward limit until the panel or host moves the control (a redesign, not a port, of the Oxide Studio Multiband Dynamics). Two adjustable Linkwitz-Riley crossovers (Low 40-1000 Hz, default 250; High 1-12 kHz, default 2.5 kHz, held at least 1.25 x the low one) split the signal into bands that sum flat; the low band is passed through the high crossover’s all-pass. Each band has On, a Down threshold (-60 to 0 dB) and ratio (1-20:1) that compress what is loud, an Up threshold (-80 to 0 dB, held at or below the down one) and ratio (0.2-10:1; 1 = no lift, below 1 expands downward: 0.5 = a 2:1 expander) that lift or expand what is quiet, Attack 0.5-200 ms, Release 5-2000 ms and Gain +-18 dB. Globally: Input (into the bands only), Output, Amount (dry/wet; 0 is bit-exact dry), Time (0.1-10 x on every attack and release) and Upward limit (0-24 dB). One detector per band, linked across the two channels. Defaults are gentle (2:1 down, 1.5:1 up; 4:1 and 2.5:1 give the “OTT” sound); set every ratio to 1 for a transparent split. Six output parameters (status_gain_1-3, status_level_1-3) drive the panel’s per-band gain bars; the crossover lines on the plot are draggable. Upward lift raises the noise floor. Knee (0-24 dB, default hard) softens both thresholds; Solo (Off/Low/Mid/High) plays one band’s processed signal alone (no dry, Amount ignored); Detectors listen to Input or Sidechain (inputs 3-4, split into the same three bands; with nothing connected it falls back to the input). The status_* meters are followed by cc_channel, knee, solo and sidechain (41 parameters).

infra

A stereo VCA driven by a beat-locked LFO (a new plugin, no source LFO); stereo in and out, no MIDI, no latency, no plugin state, reads the host transport. The LFO runs at Multiple whole cycles per host beat, 0 = Auto (the multiple whose rate is nearest 10 Hz, 5 at 120 BPM), and any request is moved into the range that keeps the rate within 1-20 Hz. It is a function of the transport position, so it repeats exactly on every pass, and free-runs while the transport is stopped (at 120 BPM when the host reports no tempo). Eight Waveforms (sine default, triangle, ramp up, ramp down, square, soft square, sample & hold, smooth random); each channel has its own Phase of 0, 90, 180 or 270 degrees (default 90 on both, which puts the LFO at its peak on each beat). Range (0-40 dB, default 3) is how far the VCA falls from 0 dB at the LFO peak, so the default swings 0 to -3 dB. Four output parameters (status_rate, status_multiple, status_lfo_l, status_lfo_r) drive the panel (9 parameters). See plugins/infra/docs/design.md.

spindown

Tape stop and start (a new plugin, clean-room from the general behaviour of a tape transport; the JSFX Analog Jam port of cStop, GPLv3, was only read as a reference). Stereo in and out, MIDI in, reads the host transport, no plugin state. The input is written to a ring buffer and read back by a head whose speed is the tape speed, so pitch and time fall together as the tape slows. Stop Time (20-4000 ms) takes the speed from 1 to 0 as (1 - t/T)^Curve (Curve 0.5-4, default 1.5); Start Time (20-4000 ms) brings it back, and a stop released part-way restarts from the speed it reached. When the tape is up to speed the output crossfades (12 ms) from the lagging head to the live input; idle, the output is the input sample for sample with no latency. Trigger: Manual (the automatable Stop switch), MIDI (any held note stops the tape, all notes released start it, sample-accurate; CC 123 clears hung notes) or Cycle (the tape is stopped for the last Length beats, 0.25-16, of every 1, 2, 4 or 8 bars, from the transport position, only while the transport plays). Controllers on the CC Channel (0 = off, default 1): CC 1 Stop Time, CC 2 Start Time (both logarithmic, 20-4000 ms), CC 3 Curve, CC 4 Stop (64+); a CC takes the control over until the panel or host moves that parameter again, so Drift CC 1-3 modulate it unconfigured. Two output parameters (status_speed, status_delay) drive the panel (10 parameters). See plugins/spindown/docs/design.md.

wheelhouse

Tonewheel organ (a new plugin, clean-room from the published behaviour of a tonewheel organ; the JSFX Lord of the Rinks port of setBfree, GPL, was only read as a reference). MIDI in, stereo out, no audio input, no plugin state. Ninety-one equal-tempered tone wheels (MIDI notes 24-114) turn all the time; a held key connects nine footages to the bus through that division’s drawbars (0-8, 3 dB per step, off at 0): 16’, 5 1/3’, 8’, 4’, 2 2/3’, 2’, 1 3/5’, 1 1/3’, 1’. Footages that would need a wheel above the top one fold back by octaves. Upper and Lower manuals (C2-C7, nine drawbars each, default 888000000 and 008530000) and the Pedals (C2-G4, 16’ and 8’) answer Upper/Lower/Pedal Channel (default 1, 2, 3; 0 = off); velocity is ignored, as on an organ. Percussion (upper only, on or off, 2nd or 3rd harmonic, fast 0.35 s or slow 1.5 s to -60 dB, soft or normal) fires on the first key of a legato run and silences the 1’ drawbar. The scanner gives V1-V3 vibrato and C1-C3 chorus (a delay swinging +-0.20/0.35/0.55 ms) at Scanner Rate 4-9 Hz (6.9), applied to the upper and/or lower manual (Vibrato Upper/Lower); the pedals bypass it and Width offsets the right channel’s scanner. Key Click adds a noise burst on every key movement, Drive is a preamp tanh (0 is a bypass), Tone a low-pass (1.5-16 kHz, 100% is open), Volume the output. CC 11 is the swell pedal (squared); CC 123/120 release the keys on that channel. 36 parameters, no outputs. Not built: a Leslie (use a rotary effect after it), reverb, hardware drawbar CCs, tonewheel leakage, key transpose. See plugins/wheelhouse/docs/design.md.

whirligig

Rotary speaker (a new plugin, clean-room from the geometry of a rotating directional source; the JSFX Dizzy port, GPL, was only a reference). Stereo in (summed to mono) and out, MIDI in for CC 1 (64+ Fast, else Slow) and CC 2 (64+ Stop, else Slow) on CC Channel (default 1), no MIDI out. A Linkwitz-Riley crossover (Crossover, default 800 Hz) feeds a drum and a horn rotor, each with Slow and Fast rates, Accel inertia, Depth (swell) and Doppler, heard by two microphones Mic Angle apart. Sync: Beat reads the host tempo and BBT position (stopped or no transport: 120 BPM, free-running) and locks each rotor at a chosen number of beats per turn, with Sync Phase. Settings are parameters; no state; wet and dry both sit about 0.7 ms behind the input (not reported). Key parameters: Speed, Sync, rates, Crossover, Depth, Doppler, Mic Angle, Mix.

chorale

Stereo chorus (a new plugin; Juno modes after junologue-chorus, MIT, via the JuKnow Chorus JSFX port, MIT; Custom mode is original). Stereo in and out (Input: Stereo, a delay line per side, default; or Mono sum as in the source), MIDI in for CC 1 Rate (log), CC 2 Depth, CC 3 Width and CC 4 Mix on CC Channel (default 1), no MIDI out, no transport. Mode I, I+II, II (fixed sweeps of 0.513 and 0.863 Hz, 1.5-5.4 ms) or Custom (Rate, Depth, Delay, 1-4 Voices); Tone, Width and Mix apply to all. No latency (dry path undelayed); the wet signal is the L+R sum, about 6 dB above the dry for a centred signal. Settings are parameters; no state. Key parameters: Mode, Rate, Depth, Delay, Voices, Input, Tone, Width, Mix.

silken

Vocal strip (original design, RBJ biquads). Stereo in and out, no MIDI, no transport, no latency. In signal order: Rumble Filter (high-pass, 80 Hz), Plosive Guard (150 Hz detector, fades towards a high-pass), Gate (2:1 expander: Gate Threshold, Gate Range; off by default), Harsh tamer (Harsh Amount, Harsh Frequency, Harsh Threshold; 0 is off), De-esser (Ess Frequency, Ess Threshold, Ess Range, Ess Mode Band or Wide, Ess Listen), Leveller (compressor: Leveller Threshold, Leveller Ratio, Leveller Mix; off by default), Mud, Warmth, Presence, Air (-12..+12 dB), Drive, Sparkle and Output. Detectors are linked across the channels. Every stage is exactly neutral when off or at zero. Settings are parameters; five output parameters feed the meters; no state.

fresco

Spectrogram painter (original design: a 2048-point STFT, Hann, hop 512, magnitudes replaced). Stereo in and out, no MIDI, optional transport, latency 2048 samples (reported to the host). A picture is loaded from a PNG, PGM/PPM (P2/P3/P5/P6) or BMP file by the panel’s Load picture button (JPEG, GIF, WebP and video are refused with a message; decoders are written in the plugin, no libraries added); its path is the plugin’s one piece of state, so a project reopens with the same picture, and the built-in rings-and-cross picture is used when none is loaded. The picture’s height is frequency (Bottom 20 Hz-10 kHz to Top 200 Hz-20 kHz, Axis Log or Linear) and its brightness is level (Range 20-100 dB, Contrast gamma 0.25-4, Pixels Bright = loud or Dark = loud; black is silence). A playhead crosses the picture in Length 0.5-120 s, free-running or locked to the host timeline (Playhead: Free loop or Follow host). Source Input keeps the input’s phase (timing and pitch character) and imposes the picture’s magnitudes; Tone paints with a steady bank of bin-centred sinusoids. Follow input level (default 100 %) scales the result by the input’s level, so silence in is silence out; at 0 the picture drones with no input. Mix, Output -24..+12 dB. A white pixel is a 0.02-amplitude sinusoid per bin, so bright pictures are loud: trim with Output. Settings are parameters; three output parameters feed the panel (playhead, column level, loaded). Key parameters: Length, Source, Follow input, Bottom, Top, Range, Contrast, Mix.

octet

Eight-band parametric equalizer, stereo, MIDI in for Drift (CC 1-4 on CC Channel, default 1, drive the band chosen by CC Band, default 4: Frequency, Gain, Q; CC 4 Output), no transport, latency or plugin state (a redesign, not a port, of the Oxide Studio EQ Eight). Each band has On, Type (HP 12, HP 48, Low shelf, Bell, Notch, High shelf, LP 12, LP 48), Frequency 20 Hz to 20 kHz (logarithmic), Gain +-18 dB (bell and shelves only), Q 0.1 to 18 (bell, shelves and notch) and Channel (Both, A, B). The 48 dB cuts are 8th-order Butterworth, -3 dB at the cutoff. Mode is Stereo, Left/Right or Mid/Side; in the last two, Channel picks left or mid (A), right or side (B) or both, and in Stereo it is ignored. Output +-12 dB, a large vertical slider at the right of the panel with a small stereo peak meter below it. Defaults: bands 2-7 on at 0 dB and the two cuts off, so a fresh instance is bit-exact transparent. Fifty-three automatable parameters (band1_freq, band8_channel, mode, output, cc_channel, cc_band, spectrum_source, …) and 66 read-only outputs (64 analyser bands, 2 meter channels). The panel draws each band’s curve and the total from the coefficients in use, with a draggable node per band (across for frequency, up and down for gain; scroll for Q). A Spectrum switch (Off / Pre / Post, default Post) draws a 64-band analyser behind the curve from 64 read-only output parameters.

glue

Stereo-linked feed-forward bus compressor (a redesign, not a port, of the Oxide Studio Glue Compressor). Threshold -60 to 0 dB (default -18), Ratio 1.1 to 20:1 (4), Knee 0 to 24 dB (6, soft), Range 1 to 40 dB cap on the reduction, Attack 0.1 to 100 ms (10), Release 20 to 2000 ms (200) or Auto (about 40 ms after a transient, up to 800 ms once compression has been sustained; the knob is ignored), Sidechain HPF 20 to 400 Hz (60; 20 = off, detector only), Detector Peak or RMS (10 ms), Makeup 0 to 24 dB, Soft clip Off/On (off by default; linear below 0.5, never exceeds 1), Mix (parallel). The louder channel sets the reduction for both. Detector listens to Input or Sidechain (inputs 3-4; with nothing connected it falls back to the input). CC Channel (0-16, default 1; 0 = ignore MIDI): CC 1-4 drive Threshold, Ratio, Makeup and Mix until the panel or the host moves the control (the Drift convention). Look-ahead 0 to 10 ms (off) delays the audio, not the detector, and is reported to the host as latency. No transport or plugin state; every control is an automatable parameter. Two output parameters, status_reduction and status_level, are measured from the audio and drive the panel’s transfer curve, live dot and reduction history. Not a limiter; put Guardian after it.

guardian

Output safety processor for the end of autonomous chains: input gain (+-24 dB), look-ahead limiter with attack/release, clipper shape (none through gentle tanh to near hard clip), DC removal, true-peak guard, silence detection, bypass and latched fault diagnostics. Reports ceiling and latency to the host. No MIDI. Place last.

beards

Granular texture processor after Mutable Instruments Beads: stereo input is recorded into a 4 second buffer and replayed by up to 32 overlapping grains, with Position, Size (below a third reads backwards), Shape, Pitch and Density, four scatter amounts, Feedback, Dry/Wet, a Griesinger reverb, Freeze, a Grain button and a Quality setting (Digital, Vintage 12 bit, Tape 8 bit mu-law). Density 48-52% is a silent dead zone. Transport sync (1/1 to 1/32) fires a grain on every host bar/beat grid line while the transport plays, replacing the random clock. CC 1 Position, 2 Size, 3 Density, 4 Dry/Wet (Drift defaults), 5 Shape, 6 Pitch, 7 Feedback, 8 Reverb, 9-12 scatter, 64 Freeze on the MIDI in channel; Conductor CC 21 Density, 22 Energy (Dry/Wet), 23 Mutation (scatter), 24 Reset (fires a grain) on Conductor. Settings are ordinary parameters; the buffer is not saved. Feedback and reverb can build up; trim output. The Beads delay mode and CV/gate inputs are not ported.

grist

Granular grain-delay effect (no MIDI): stereo in/out, tempo from the host. One grain starts every Window / Density (1-1000 ms, or a 1/64 to 8/1 division with triplets and dotted values; 1-4 grains per window) and plays a windowed slice of the recent input, so grains scroll even at Pitch 0. Per grain, drawn from a seeded generator (reproducible, Seed): Blur is a random start 0-2 windows back, Reverse the chance it plays backwards, Spread its stereo position, Variance shortens it to as little as 25 % of the window, and Range moves its pitch up, down or both (up to 24 semitones) around Pitch (+-24), optionally only onto a Scale (Free, Semitones, Octaves, Fifths + octaves, Major, Minor, Pentatonic) counted from the input’s own pitch. Shape blends a Hann bell with a percussive curve; both keep the same average level. Feedback (up to 0.95, soft-limited) returns the grain output through its own Delay (free or synced) and an optional Lowpass/Highpass/Bandpass filter. Average latency is Blur x Window / 2 plus (ratio - 1) x Window when pitched up, shown on the panel; the plugin does not report it to the host. Output parameters: status_latency, status_grains, status_window, status_delay. Pairs with resonance-garden (grains in, tuned resonators after). Unlike beards it has no reverb, freeze or MIDI control; its window and feedback delay lock to the tempo and its cloud follows a scale.

ladder

Stereo four-pole saturating low-pass ladder (zero-delay-feedback, 2x oversampled, a tanh at each stage), ported from the Oxide Studio DSP and measured against the analytic response first. Cutoff 20-18000 Hz (logarithmic; -12 dB at the cutoff with no resonance), Resonance 0-100 % (exponential taper in the feedback: peak over the passband about 6 dB at 20 %, 18 dB at 50 %, 28 dB at 70 % with full Bass Comp; rings on its own from about 85 %), Drive 0-24 dB into the saturators, Bass Comp 0-100 % (restores the low end the feedback removes; 100 % returns the passband to unity; default 50 %, so the defaults sit about 3.5 dB low), Mix, Output, CC Channel (0-16, default 1; 0 = ignore MIDI). MIDI in: CC 1-4 on that channel drive Cutoff, Resonance, Drive and Mix until the panel or the host moves the control (the Drift convention). No transport, latency or plugin state: every control is an automatable parameter. The panel plots the small-signal response (Drive not included) from the model the tests hold to the real filter. Resonance with full Bass Comp is loud; trim Output.

spense

Stereo phase disperser (port of the Dispenser DSP): Stack 1-8 cascades in series, each eight second-order all-pass stages (trapezoidal SVF, unity gain at every frequency, so level is unchanged), Frequency 40-20000 Hz (logarithmic, default 1 kHz) and Resonance 0.1-10 Q (logarithmic, default 0.707; low Q a broad gentle smear, high Q a narrow long one), Drift 0-1 (fans the stages apart in frequency, differently left and right), Pre Gain and Post Gain -100 (silence) to +12 dB, Clip at 0 dB (hard clip after Post Gain). Stereo in/out, no MIDI, no transport, no plugin state. Reports Stack x 7 samples of latency to the host (the stages are chained through a one-sample delay each). At Q 0.707 the group-delay peak sits at about 0.64 x Frequency; by Q 5 it is on Frequency. The panel plots the stack’s group delay from the model the tests hold to the real filter. Use it on transients or to widen a sound without changing its level; use ladder or skream to change the tone instead.

heavyverb

Stereo master-bus reverb (original, no latency, dry path untouched, Mix 0 is bit-exact dry). Dimensions 1-6 (default 3); each dimension is a wall pair: two delay lines of length Distance / 343 m/s (0.5-100 m, logarithmic) in a 2N-line Householder feedback network, with its own Damping (0-100 %, high-frequency absorption) and Filter (-100..+100 %: negative low-pass, positive high-pass, applied each pass). Shared: Decay (RT60 0.1-60 s), Pre-delay, Mix (equal power), Width, Modulation, Diffusion (at 0 the input all-passes are a 30.4 ms delay), Early Level (taps from the distances), Low Cut / High Cut on the wet, Output. Effect Off / Shimmer (pitch-shifted tail fed back; Shift -12..+24 st) / Swell (fade-in after each onset) / Duck / Gate, with Effect Amount (level, fade-in time, depth, hold time respectively), and Freeze (lossless hold, input off). Preset 0 = Custom, 1-10 typical spaces, 11-15 effects: applied by the panel as ordinary parameters, ignored by the engine. A Randomise button on the Dimensions panel draws a new space the same way (keeps Mix, Output, Effect and Freeze). Stereo in/out, no MIDI, no transport, no plugin state, no latency. Swell, Duck and Gate follow the dry input level (gate threshold -40 dBFS). Use it on the master bus or a return; use lightverb for a minimal, fixed-cost four-line reverb instead.

interleaver

Two-input interleaving effect (original; 4 audio in, 2 out; no MIDI, no transport, no plugin state; reports 2048 samples of latency). Inputs 1/2 are A, 3/4 are B (a second bus). Mode Time / Spectral. Balance 0-100 % (A share of each cycle), Stereo Split 0-100 % (shifts the right channel’s pattern by up to half a cycle), Output -24..+12 dB. Time: Slice 0.02-200 ms (cycle = 2 x slice), Sync Free / Track A / Track B (autocorrelation pitch tracker, 50 Hz-1 kHz; falls back to Slice when unvoiced), Periods 0.25-16 (cycle = 2 x Periods x pitch period), Edge Shape Hard / Linear / Cosine, Crossfade 0-100 % of the shorter segment, Jitter 0-100 %. Spectral (2048 FFT, hop 512): Scheme Bins / Mag/Phase / Loudest, Bin Width 1-64 (a period is 2 x width bins), Drift -200..+200 bins/s. Read-only outputs: Detected Pitch (Hz) and Cycle Length (ms). Use it on two tracks you want to fuse rather than mix.

nam

Neural Amp Modeler player (NeuralAmpModelerCore vendored in third_party/). Stereo in/out, no MIDI, no transport. Two plugin states: model_file (a .nam, one input and one output channel) and ir_file (mono or stereo .wav, resampled to the host rate, trimmed to 2 s), both paths only and both loaded on the main thread. Chain: Input gain -24..+24 dB, Noise gate -90 (off)..-20 dB before the model, model, loudness normalisation to -18 dB when Normalise model is on and the model reports one, Bass/Mid/Treble +-12 dB (120 Hz shelf, 750 Hz peak, 3.5 kHz shelf), cabinet IR (zero-latency partitioned FFT), IR low cut 20 (off)-500 Hz, IR high cut 2k-20k (off) Hz, IR gain -24..+12 dB, Mix (dry delayed to match), Output gain. Channels Mono sum folds L+R into one chain, Stereo runs one network per side (twice the CPU). Model on / IR on bypass each stage. A model trained at another rate is resampled around the network and the resulting latency (about 37 samples at 44.1 kHz) is reported to the host. Output is clamped to +-8. Read-only outputs: input and output level, model and IR status (0 empty, 1 loaded, 2 unreadable), model rate, IR length. All other controls are automatable parameters. A standard WaveNet is about 37 % of a core per network; prefer A2-sized models for several instances.

sam

Speech instrument: the 1982 SAM (Software Automatic Mouth) formant synthesiser, vendored from ~/github/SAM. No audio in; stereo out (one mono voice). Text is a state (text, up to 2000 ASCII characters, 512 whitespace-separated words, a lone _ is a rest) read as English (SAM’s rules) or SAM phoneme codes (Phonetic). Mode Keys: each MIDI note on the MIDI In channel (default all) speaks one word, sung at the key’s pitch (nearest whole SAM pitch tick, then resampled; within about 12 cents), velocity sets level, note-off fades over Release, pitch bend is +-2 semitones, CC 120 and 123 release all, eight voices; Advance Next word cycles through the text (restarting when the host starts playing) and Key = word speaks word (note - 48) modulo the count. Mode Transport: word n starts at step n (Step 1/16 to 4 bars, Start Bar, Loop) from the host BBT, to the frame, independent of block size; a locate or loop wrap speaks the word under the playhead from the matching point; silent while stopped or without BBT; Speak (trigger) plays one pass without the transport at the host tempo (120 if none). Voice: Speed 20-200 (lower is faster), Pitch 16-255 (Transport mode), Mouth, Throat, Monotone; Tone low-pass and Level. Output parameter out_word is the 1-based slot being spoken (0 idle); mcp_port is the port of the embedded MCP server. Remote control: an HTTP MCP server on 127.0.0.1 (7230, then up to 7239 for further instances; started at first activation; DOWNSPOUT_SAM_MCP=0 disables) with tools say (replace the text and speak it once now in either mode), set_text, get_text, check_text (vet words/phonemes), set_parameter / set_parameters (number, boolean or panel label), get_parameters, set_voice, get_status, get_port; scripts/sam-say.sh is a command-line client (plugins/sam/docs/mcp.md). Words render on the audio thread (30-50 us); nothing is allocated. SAM has no licence; see plugins/sam/third_party/sam/SAM-LICENSE.md.

rift

Transport-locked live/sample buffer disruptor: WAV loading, chop and stutter repeats, reverse, skip, smear and pitch-slip actions, for fills, transitions and glitches. Sample path is state. Repeats can get loud; trim output.

orchid

Transport-aware voiced freeze/hold: autocorrelation capture and grid-synchronised loop holds turn incoming notes or textures into sustained rhythmic freezes.

keyframe

Extrema-sampling time stretch (Nielsen, DAFx26-26). Input reduced to timestamped local extrema whose spacing sets content-adaptive overlap-add splices; no transient detector. Time is a rate (1.00x down to slower; never faster, since input is live), Pitch is independent playhead rate (pitch ratio = Pitch / Time), Splice leash length K, Max Splice cap, Threshold (-60 dB default), Hold freezes the reference playhead. CC 1 time, CC 2 pitch, CC 7 output. Constant 8192-sample reported latency with the dry path matched; slow-downs reach an internal 65536-sample depth limit and then loop the held material. Default (unity, 60% wet) is nearly transparent.

quefrency

Cepstral formant and harmonic shifter ported from JigDAW. Each frame (2048 samples up to 50 kHz, 4096 above, hop a quarter) is split via the cepstrum into formant envelope and harmonic excitation, shifted and reshaped independently, and multiplied back: Formant shift (+-12 st), depth (0-200%), tilt, Pitch shift (+-24 st) and fine, Freq shift (+-1000 Hz), Harmonic depth, Lifter (0.5-5 ms), Estimator (Cepstral or True envelope), Mix, Output. CC 70-80 drive the eleven parameters in order. Reports 2047 or 4095 samples of latency.

primefold

Prime-harmonic feedback shifter: direct 2x, 3x, 5x pitch voices (time-domain dual-tap resamplers sharing a grain window of 512, 1024 or 2048 samples) recirculated all-to-all through a 256-sample delay and per-pass damping low-pass, so 4x, 6x, 8x, 9x, 10x emerge from feedback. Feedback is capped at 0.90, the loop contractive, with NaN guard. Dry, 2x/3x/5x levels, Feedback (CC 1), Damp, Grain, Mix (CC 2), Width, Output (CC 7). Feedforward latency equals the grain window and is reported; in-loop latency is not compensated, so composites arrive late.

voxmod

Vocoder and band-limited ring modulator in parallel, blended by Mix. Inputs 1-2 carry the carrier (selectable: inputs 1/2 or internal oscillator) and inputs 3-4 the modulator. Ring modulator frequency = Ring Freq x Ring Ratio, ratio quantised to 16 steps from -12 to +35 semitones, Ring Depth, polyBLEP saw/square. Vocoder: logarithmic filter bank across Spread octaves with asymmetric envelope followers; Sync feeds the ring-modulated signal back as the vocoder carrier. MIDI CC input. A panel XY pad maps X to Mix, Y to ring frequency. Needs a modulator with harmonics.

sinevox

Formant tracker with two voices. Inputs 1-2 (speech) are summed to mono and analysed by LPC for up to eight formants (default four): centre frequency, Q and amplitude each. Mode picks Vocoder (a parallel band-pass bank on inputs 3-4 follows the formants), Sine Speech (one sine per formant) or Both. Shift, Q Scale, Tilt, Gate, BW Limit, Glide, Attack/Release, Level, Speech Mix, Carrier Norm, Sine Spread, Fundamental (a sine at the tracked pitch, 60-500 Hz, mixed into every mode). MIDI in on one channel: CC 1-5 = Shift, Q Scale, Formants, Tilt, Mode; Note Shift makes the held note transpose the formants from middle C. MIDI out (off by default): formant frequency on CC 20-27 and level on CC 102-109, or one note per formant. Panel x-y pad: X Shift, Y Q Scale. Vocoder mode needs a carrier with harmonics.

resonance-garden

Up to twelve bounded damped resonators (Voice limit 1-12) tuned by held MIDI notes (HarmonyMidi) or an internal scale picked from a dropdown of BassGen’s 23 scales plus a root, turning arbitrary audio into pitched evolving material: damping, inharmonicity, freeze, bounded feedback and deterministic voice replacement.

orbit

Ordinary stereo spatial processor (no HRTF or binaural claim): seeded orbit, pendulum, random-walk and figure-eight trajectories with distance filtering and conservative Doppler. Transport-aware and deterministic.

helterskelter

Automatic wah: resonant low-pass (Q 0.5-12) whose cutoff follows the input envelope (touch wah) and/or a BBT-synced ADSR cycle (1, 2, 4 or 8 beats, Gate Beats, Invert), Blend takes whichever opens further. Sensitivity, Depth, Resonance, Mix read Drift CC 1-4.

spliff

Adaptive transient processor in the Spiff manner: 3-band transient detector applies dynamic cuts or boosts only at transients. Cut mode tames clicks and harsh sticks (late in a chain); Boost lifts drum and piano attacks (before compression). Depth, Sensitivity, Decay and Mix read Drift CC 1-4; Sharpness, Decay LF/HF tilt, band splits, Trim, Delta monitoring and Bypass. Detector is mono, so the stereo image is preserved.

treatment

Physically modelled acoustic treatment panel: facing sheet (mass), porous fill (flow resistance) and air gap to the wall form a mass-air-mass resonator, with resonance w0 = c * sqrt(rho0 / (m D)) and an impedance match at r = rho0 c. Cavity and Air Gap in mm, Facing Mass in kg/m2, Flow Resist in Rayl/m; Amount scales absorption itself (0% is transparent). Read-only readouts report resonance, Q, peak absorption and diffusion corner. Seeded Randomise preserves Amount and Bypass. CC 1-5 read Amount, Cavity, Air Gap, Facing Mass, Flow Resist (panel 1). Panels (1-4) chains panels in series (Edit selects the one the sliders drive); Mode Ring boosts resonances (<= +9 dB per section) where Absorb cuts; Sweep rate/depth/stereo flexes every panel’s facing mass (+/-1 octave at 100%) and Sweep Sync locks it to host tempo and song position.

paunchlad

Launchpad dub performance effect and instrument: pads trigger echo throws, spring splashes, sirens, alarms, synthetic snare/crash/sub hits, lasers, thunder, rewind, bubbles, risers, horn effects, dropouts, chops and freezes over a processed audio pass-through, with LED feedback. Pad cells are momentary, so only the nine settings are saved.

gater

Routes one stereo input to one of two stereo output pairs by incoming MIDI: even note numbers to Output 1, odd to Output 2. It has no parameters and no saved state. It reads only note-on status byte 0x90 on channel 1 (a note-on with velocity 0 is treated as a note-on), so it does not follow other channels.


Choosing between plugins