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
- Format and host. VST3 bundles built with DPF (maker
danja, brandDownspout). All have a custom NanoVG editor. Bundle names use underscores where the plugin name has a hyphen (m_mix.vst3,resonance_garden.vst3). - Port fields below.
audio in/outis the channel count of the VST3 audio buses (0 in= pure generator or instrument).MIDI in/outis whether the plugin declares a MIDI input/output port.transportmeans it reads host tempo, play state and bar/beat position (WANT_TIMEPOS), and is silent or idle when the transport is stopped unless noted. A MIDI processor or generator must sit before its receiving instrument in the FX chain, or its MIDI must be routed to another track. - Parameters and persistence. Settings are host parameters (automatable, saved by
the host). A few plugins also keep non-parameter data in DPF text state: sample paths
(mosaic, rift), zone data (campione), patterns (lifeform, luma, plank, bassgen and other
pattern holders), a text/tuning blob (tuney-vst), the export path (midiscribe), a Scala
path (retune).
scripts/check-plugin-state.shaudits this. - Determinism. Generators derive random choices from a seed plus absolute musical position (not wall clock), so loops, restarts and offline renders reproduce.
- Control-change conventions. Drift lanes default to CC 1-4; the audio effects
chipper, damiano, skream, spliff, helterskelter, treatment, magneto, beards, ghost, trajectory and fathom read
those by default so Drift needs no configuration; ladder (Cutoff, Resonance, Drive, Mix), glue (Threshold, Ratio,
Makeup, Mix), trio (Amount, Time, Input, Upward limit) and octet (one band’s Frequency, Gain and Q, chosen by CC Band, and Output) and mouth (Vowel X, Vowel Y, Shift, Resonance) do too, on a CC Channel parameter (default 1, 0 = off). Conductor emits CC 20-24 on channel 16
(Scene, Density, Energy, Mutation, Reset); bassgen, drumgen, ground, melgen, worms, bubbles,
floozy, harmonic-atlas, sprout, lifeform, luma, polymeter, xoxolo, markov, counterpointer
cadence, arpgen, m-mix and beards listen through a Conductor Ch
parameter (0 = off). Mixgen drives T-Mix with CC
20-27 (strips 1-8), Loopdelay with CC 30/31, Lightverb with CC 32/33; CC 19 claims or
releases the producer bus. Details:
docs/midi-mapping.md,docs/producer-control-bus.md. - Per-channel pitch bend. Retune emits one note per MIDI channel (2-16) with its own bend at a configurable range (default 2 semitones). Instruments that follow bend per channel and honour that range: canticle, moka, floozy, syrinx, pratt, basilico, gremlin, campione (Bend Range control, no RPN), mosaic (Pitch bend range control, only when Pitch range = 0), strata, quartet and monochord (Bend range control, no RPN; voices keyed by channel and note). Canticle, moka, floozy, syrinx, basilico and gremlin also accept RPN 0 to set the range per channel. Other instruments ignore or globally apply bend.
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
- Wood: claves 75, wood blocks 76 77, castanets 85. Shaker: cabasa 69, maracas 70, shaker 82, vibraslap
- 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
- Need MIDI from nothing: harmonic-atlas (chords), melgen / worms / sprout / markov / sidecar (melody), bassgen / ground (bass), drumgen / xoxolo / polymeter (rhythm), lifeform / luma (grid-driven), conductor (structure only), tuney-vst (text).
- Need MIDI from MIDI: arpgen, cadence, counterpointer, mnemosyne, m-mix, retune (tuning).
- Need MIDI from audio: ghost (transient-triggered ghost notes), oracle (analysis).
- Need automation CCs: drift (four lanes), mixgen (mix lanes), gremlin-driver and flues-synth-driver (specific targets), conductor.
- Need a pitched sound: monochord (string), strata (wavetable), quartet (FM), canticle (general), basilico (bass), moka (mallets), syrinx (birds), pratt (GM voices), floozy, gremlin (glitch), campione / mosaic (samples), tuney-vst. Bend-aware: see the per-channel list at the top.
- Need an organ or keys: wheelhouse (tonewheel organ), canticle, quartet. Add whirligig (rotary speaker) after an organ or guitar.
- Need to put a picture in the spectrogram: fresco (load an image, feed it noise or a drone, watch an analyser).
- Need to clean up a vocal: silken (rumble filter, plosive guard, gate, de-esser, leveller, EQ, drive), then chorale or a reverb for space.
- Need an unpitched sound: drumkit, magneto, bubbles.
- Need audio processing: filter (ladder, skream), phase dispersion (spense), distortion (damiano, skream, chipper), amp/cab modelling (nam), granular (beards, grist), time/pitch (keyframe, spindown, primefold, quefrency), space (heavyverb, lightverb, loopdelay, orbit, treatment, ambo), rhythm/gating (e-mix, p-mix, orchid, rift), tone/dynamics (trio, octet, infra, glue, bassops, spliff, helterskelter, guardian), spectral (voxmod, sinevox, resonance-garden, fresco), vocals (silken), modulation (chorale, whirligig), two-input interleaving (interleaver).