About a hundred VST3 plugins (MIT, C++/DPF): mostly generative and algorithmic MIDI tools, instruments and audio effects. There are screenshots, notes and a plugin finder on the project site.
Install All Plugins (from Releases)
- Download the zip for your platform from GitHub Releases:
downspout-<version>-linux-x86_64-vst3.zipdownspout-<version>-macos-arm64-vst3.zip(Apple Silicon)downspout-<version>-macos-x86_64-vst3.zip(Intel Mac)downspout-<version>-windows-x86_64-vst3.zip
- Unzip it. It contains one
.vst3bundle per plugin. - Copy all the
.vst3bundles into your VST3 folder:
Linux (~/.vst3):
mkdir -p ~/.vst3
cp -r *.vst3 ~/.vst3/macOS (~/Library/Audio/Plug-Ins/VST3, or /Library/Audio/Plug-Ins/VST3 for all users):
mkdir -p ~/Library/Audio/Plug-Ins/VST3
cp -r *.vst3 ~/Library/Audio/Plug-Ins/VST3/Windows (C:\Program Files\Common Files\VST3, run PowerShell as Administrator):
Copy-Item -Recurse -Force *.vst3 "C:\Program Files\Common Files\VST3\"- Restart your DAW or force a VST3 rescan.
I haven't tested the macOS and Windows builds, and those packages leave out
sidecar.vst3. macOS may quarantine unsigned downloads. If a plugin gets
blocked, run xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/VST3/*.vst3.
Details of local installs and release packaging are in docs/install.md and docs/release.md.
Each plugin is a portable C++ core with deterministic tests, a thin DPF wrapper and a custom NanoVG UI in a shared look. The VST3 creator is danja and the group is Downspout.
Some are ports or redesigns of LV2 and JSFX plugins, and the plugin docs say which.
Demos: Jack's Dream, another example. See also: Transmission (Generative Audio Workstation), Valis (Virtual Analog LLM Integrated System), Flues (the earlier LV2 plugins and Web Audio toys).
To build and install locally:
./install.shThat configures ./build, builds the enabled plugins, runs ctest and
installs the bundles into ~/.vst3. To change that:
DOWNSPOUT_VST3_DIR=/some/other/path ./install.sh
DOWNSPOUT_RUN_TESTS=0 ./install.shRestart your DAW or force a rescan afterwards. Some hosts cache plugin names, makers, categories and homepage metadata separately from the bundle.
The plugin reference has the ports, MIDI roles and CC maps for every plugin.
| Plugin | Bundle | Type | Notes |
|---|---|---|---|
| bassgen | bassgen.vst3 |
MIDI generator | Transport-aware bass generator with persistent pattern state, style modes, and MIDI follow/dodge controls. |
| p-mix | p_mix.vst3 |
Audio effect | Transport-aware probabilistic stereo gate/mix effect. Oppose slider: inputs 3–4 sidechain reduces audible bias when busy. |
| e-mix | e_mix.vst3 |
Audio effect | Transport-aware Euclidean stereo gate with redesigned UI. |
| m-mix | m_mix.vst3 |
MIDI effect | Transport-aware MIDI gate combining p-mix transitions with e-mix Euclidean blocks. |
| t-mix | t_mix.vst3 |
Audio mixer | Eight mono input strips with level, pan, mute, solo, metering, and stereo master output. |
| Mixgen | mixgen.vst3 |
MIDI control generator | Random, quasi-random, and Euclidean producer lanes for T-Mix channel gains. |
| Loopdelay | loopdelay.vst3 |
Audio effect | Stereo delay/capture looper with free or BBT-locked time and MIDI-controlled time/feedback. |
| Lightverb | lightverb.vst3 |
Audio effect | Fixed-cost stereo FDN reverb with insert/send operation and MIDI-controlled mix/space. |
| melgen | melgen.vst3 |
MIDI generator | Phrase-aware melody generator with contour, answer, structure, and follow controls. |
| rift | rift.vst3 |
Audio effect | Transport-locked live/sample buffer disruptor with WAV loading, chop/stutter repeats, reverse, skip, smear, and pitch-slip actions. |
| Orchid | orchid.vst3 |
Audio effect | Transport-aware voiced freeze/hold effect with autocorrelation capture and grid-synced loop holds. |
| Ambo | ambo.vst3 |
Audio effect | Stereo ambient processor with rearrangeable time, spectral, tape, shimmer, delay, drive, and feedback modules. |
| drumgen | drumgen.vst3 |
MIDI drum generator | Pattern generator with meter-aware styles, fills, Breakbeat/Amen/Jungle/Hip Hop genres, and clave-led Rumba/Samba/Township Jive grooves. |
| drumkit | drumkit.vst3 |
Instrument | Port of the flues drum synth with stereo output, one MIDI input, and mixer-style UI. |
| syrinx | syrinx.vst3 |
Instrument | Avian syrinx voice (Mindlin-Laje model, 10 bird presets): MIDI plays phrases of chirping syllables, or audio in is tracked for pitch and loudness and steers the bird. |
| cadence | cadence.vst3 |
MIDI effect | Transport-aware MIDI harmonizer and comping generator. |
| arpgen | arpgen.vst3 |
MIDI effect | Transport-synced chord-capture and scale-derived arpeggiator. |
| counterpointer | counterpointer.vst3 |
MIDI generator/effect | Learns incoming MIDI and emits a monophonic counter-melody. |
| Sidecar | sidecar.vst3 |
MIDI generator | MIDI phrase player for generated solo material with local deterministic and localhost coordinator modes. |
| gremlin | gremlin.vst3 |
Instrument | Chaotic glitch instrument with scenes, macros, actions, and performance controls. |
| gremlin-driver | gremlin_driver.vst3 |
MIDI effect | MIDI modulation and action sequencer intended to drive gremlin. |
| ground | ground.vst3 |
MIDI generator | Long-form bass generator with Dub/Jazz styles, phrase planning, and guarded bass-register output. |
| floozy | floozy.vst3 |
Instrument | Corrected 8-voice hybrid physical/modulation synth derived from floozy-poly. |
| basilico | basilico.vst3 |
Instrument | Monophonic bass synth with Dub/Acid wobble, tempo sync, squelch, and upright/electric/industrial models. |
| campione | campione.vst3 |
Instrument | Multi-zone sampler with WAV loading, REX2 slice import, wavetable auto-detection, recording, gap-fill pitch shift, and crossfade looping. |
| canticle | canticle.vst3 |
Instrument | 12-voice keys, reed, pad, pluck, and glass synth for melody, counterpoint, and chords. |
| moka | moka.vst3 |
Instrument | Modal hit-object synth (xylophone, glockenspiel, woodblock, glass, metal, tube) with 10 controls, 10 presets, and selectable 1–12 voice polyphony. |
| tuney-vst | tuney_vst.vst3 |
Instrument/MIDI generator | Turns focused typing or stored text into microtonal synthesized audio and ordinary MIDI notes. |
| luma | luma.vst3 |
MIDI generator | Launchpad-oriented performance generator where lit pads become bass, chord, melody, and drum agents. |
| paunchlad | paunchlad.vst3 |
Audio effect/instrument | Launchpad dub performance effect with echo throws, sirens, spring splashes, dropouts, and chops. |
| lifeform | lifeform.vst3 |
MIDI generator | Conway Game of Life sequencer for Launchpad, evolving one generation per beat into melodic or drum MIDI. |
| plank | plank.vst3 |
Instrument | Eight-voice synthesizer derived from Plinky, played from a Launchpad grid with one voice per column. |
| pratt | pratt.vst3 |
Instrument/Audio effect | Number-theoretic synthesizer and filter built from Pratt polynomials: eleven GM voices, a stable all-pole Pratt filter with two cascading index controls, or both. |
| retune | retune.vst3 |
MIDI effect | Retunes any note stream to a Scala .scl scale with one pitch bend and one output channel per note, for synths with per-channel bend (MPE-style). |
| markov | markov.vst3 |
MIDI generator | Markov-chain melody generator: a random walk through a visible 12x12 transition matrix that you draw, fill from one of eight styles, or learn from a line you play; scale-masked, optional second order, repeatable from any position. |
| sprout | sprout.vst3 |
MIDI generator | L-system melody generator: seven grammars (Plant, Koch, Dragon, Sierpinski, Cantor, Levy, Tree), or your own typed into the Custom editor, rewritten per generation and played as a scale-quantised line, optionally growing one generation every N bars. |
| xoxolo | xoxolo.vst3 |
MIDI generator | Simple x0x-style drum pattern editor with 11 drumkit lanes and a 32-step maximum. |
| Harmonic Atlas | harmonic_atlas.vst3 |
MIDI generator | Autonomous tonal, modal, chromatic-mediant, and neo-Riemannian-inspired harmony. |
| Conductor | conductor.vst3 |
MIDI generator | Long-form section and scene-command generator. |
| Drift | drift.vst3 |
MIDI modulator | Four seeded CC lanes with LFO, sample-and-hold, walk, chaos, and follower modes. |
| Mnemosyne | mnemosyne.vst3 |
MIDI effect | Fixed-capacity motif capture, memory, transformation, and recombination. |
| Polymeter | polymeter.vst3 |
MIDI generator | Four Euclidean lanes with coprime lengths, ratchets, probability, and drift. |
| Oracle | oracle.vst3 |
Audio/MIDI effect | Bounded audio/MIDI analysis with CC and guarded note responses. |
| Mosaic | mosaic.vst3 |
Sampler instrument | Four-slot WAV sampler with deterministic slicing and autonomous triggering. |
| Resonance Garden | resonance_garden.vst3 |
Audio effect | MIDI-tuned damped resonator bank (up to 12 voices) with a 23-scale internal fallback. |
| Orbit | orbit.vst3 |
Audio effect | Seeded transport-aware stereo trajectories, distance filtering, and conservative Doppler. |
| Guardian | guardian.vst3 |
Safety effect | DC removal, look-ahead limiting, true-peak protection, and latched diagnostics. |
| Skream | skream.vst3 |
Audio effect | Scream filter: SVF lowpass/highpass with ADAA2 feedback saturation for dubstep growl. Ten presets, MIDI CC control via Drift. |
| Chipper | chipper.vst3 |
Audio effect | 1980s video game lo-fi processor: bitwise quantization, sample-rate reduction, and clock jitter. |
| magneto | magneto.vst3 |
Instrument | Physically informed combustion engine generator: four-stroke cycle, waveguide cylinders, intake runners, extractors, muffler and tailpipe. RPM follows notes (two octaves down), CC, automation or host tempo. |
| Fathom | fathom.vst3 |
Instrument | Four-voice drone synthesiser: five generator algorithms (analog, shaper, sines, wavetable, cluster) into a notch filter and a delay network with a frequency shifter in its feedback loop. CC 1-4 are Drift's default lane CCs. |
| Trajectory | trajectory.vst3 |
Instrument | Eight-voice polygon-bounce synthesiser: a point bouncing inside a 3-12 sided polygon is the oscillator, with a full ADSR. CC 1-6 are the six oscillator controls, so Drift lanes (CC 1-4) drive it unconfigured. |
| Beards | beards.vst3 |
Audio effect | Granular texture processor after Mutable Instruments Beads: a 4 second stereo buffer replayed by up to 32 grains, with feedback, freeze and reverb; controllable from Drift (CC 1-12) and Conductor (CC 21-24). |
| Primefold | primefold.vst3 |
Audio effect | Prime-harmonic feedback pitch shifter: direct 2x/3x/5x voices, composites via recirculation, bounded loop with explicit delay. |
| Grist | grist.vst3 |
Audio effect | Granular grain delay: tempo-syncable windows, per-grain random start, reverse, pan, length and scale-quantised pitch, with a filtered feedback loop. |
| Ladder | ladder.vst3 |
Audio effect | Four-pole saturating low-pass ladder filter: logarithmic cutoff, self-oscillating resonance, bass compensation, drive, mix, output, and a live response plot. |
| Monochord | monochord.vst3 |
Instrument | Eight-voice waveguide string: pluck, bow or hammer, a loop tuned from its own phase delay, damping, stiffness, pickup comb and body, with a plot of the string and its harmonics. |
| NAM | nam.vst3 |
Audio effect | Neural Amp Modeler player: loads .nam amp models and .wav cabinet IRs, with input gain, noise gate, three-band tone, IR cuts, dry/wet and level meters; models at other sample rates are resampled. |
| Thumper | thumper.vst3 |
Instrument | Kick drum generator: ten engines (virtual analog, modal, FM, 808, 909 and more), style presets, pitch/filter/amp envelopes, second-engine layer and distortion. Any note triggers a kick; channel 10 plays at fixed pitch. |
| Snatch | snatch.vst3 |
Instrument | Snare drum generator: five engines (tone+noise, metal, brush, electronic, acoustic), five presets, Pitch, Tone, Noise, Snap, Body, Decay and distortion. Any note triggers a hit. |
| Tops | tops.vst3 |
Instrument | Hi-hat and cymbal generator: ten instruments, six engines, five presets; a closed or pedal hat chokes an open hat. Any note triggers the selected instrument. |
| Interleaver | interleaver.vst3 |
Audio effect | Two stereo inputs (A on 1/2, B on 3/4) woven into one stereo output: time-domain slicing, free or locked to the tracked pitch of either input, with hard/linear/cosine edges and jitter; or phase-vocoder bin interleaving (Bins, Mag/Phase, Loudest) with drift. Pattern display. 2048 samples latency in both modes. |
| HeavyVerb | heavyverb.vst3 |
Audio effect | Master-bus reverb: one to six dimensions (wall pairs), each with a Distance in metres, Damping and feedback Filter; pre-delay, early reflections, modulation, wet cuts and width; Shimmer, Swell, Duck, Gate and Freeze; fifteen presets. No latency, dry path untouched. |
| Spense | spense.vst3 |
Audio effect | Stereo phase disperser: up to eight cascades of eight all-pass filters (Stack, Frequency, Resonance, Drift, Pre/Post Gain, 0 dB clip) with a group-delay plot; reports 7 samples of latency per cascade. |
| Clatter | clatter.vst3 |
Instrument | General MIDI percussion: toms, bongos, congas, timbales, surdos, agogos, bells, claves, wood blocks, castanets, shakers, vibraslap, clap and guiros on their GM notes (31 sounds in five families), with per-family Tune, Decay and Tone, choke groups and stereo placement. |
| Quartet | quartet.vst3 |
Instrument | Eight-voice four-operator FM synthesizer: eleven algorithms drawn as diagrams, band-limited operators, feedback, pitch envelope, filter and optional 2x oversampling. |
| Strata | strata.vst3 |
Instrument | Eight-voice wavetable synthesizer: band-limited tables with Position, Bend/Sync/Fold warp, sine sub, unison, multimode filter, two envelopes and an LFO. |
| Trio | trio.vst3 |
Audio effect | Three-band dynamics: adjustable flat-summing crossovers, per-band downward compression and upward lift, Time and Amount macros, and live per-band gain bars. |
| Infra | infra.vst3 |
Audio effect | Stereo VCA driven by a beat-locked LFO: a whole multiple of the host beat rate within 1-20 Hz (Auto picks the nearest to 10 Hz), eight waveforms, 0/90/180/270 degree phase per channel, default range 0 to -3 dB. |
| Spindown | spindown.vst3 |
Audio effect | Tape stop and start: the tape slows to a standstill (pitch and time falling together) and spins back up. Trigger by hand, from held MIDI notes, or on a bar cycle locked to the host; Stop Time, Start Time and Curve shape it; CC 1-4 on a channel. |
| Wheelhouse | wheelhouse.vst3 |
Instrument | Tonewheel organ: 91 tone wheels, nine drawbars per manual (upper and lower) and two for the pedals on their own MIDI channels, upper-manual percussion, scanner vibrato and chorus, key click, drive, tone, CC 11 swell. |
| Whirligig | whirligig.vst3 |
Audio effect | Rotary speaker: drum and horn rotors, two microphones, Slow/Fast inertia, optional lock to the host tempo and bar position, CC 1/2 speed switch. |
| Chorale | chorale.vst3 |
Audio effect | Stereo chorus: Juno-style I / I+II / II voicings or a Custom 1-4 voice chorus, Tone, Width, Mix, CC 1-4. |
| Silken | silken.vst3 |
Audio effect | Vocal strip: rumble filter, plosive guard, de-esser (band/wide, listen), warmth / presence / air EQ, sparkle, output. |
| Fresco | fresco.vst3 |
Audio effect | Spectrogram painter: loads a PNG, PGM/PPM or BMP picture and paints it into the audio's spectrogram (height = frequency, brightness = level, playhead sweeps the picture). |
| Octet | octet.vst3 |
Audio effect | Eight-band parametric equalizer: bell, shelves, notch, 12 and 48 dB cuts, Stereo/Left-Right/Mid-Side with per-band channel assignment, and a draggable response plot. |
| Glue | glue.vst3 |
Audio effect | Stereo-linked bus compressor: soft knee, sidechain high-pass, peak or RMS detector, auto release, soft clip, parallel mix, with a transfer-curve and gain-reduction display. |
| Sam | sam.vst3 |
Instrument | Speech synthesiser: SAM (Software Automatic Mouth, 1982) as a MIDI instrument that speaks a word per note at the key's pitch, or as text-to-speech with the words locked to the host transport. Editable text, SAM's voice presets. SAM's source is vendored without a licence: see plugins/sam/third_party/sam/SAM-LICENSE.md. |
| Qune | qune.vst3 |
Audio effect | Pitch quantiser: tracks the pitch of a voice or instrument and moves it to the nearest note of one of 24 scales, or to held MIDI notes. Three quality tiers (splice delay line, PSOLA, phase vocoder), optional glide, formant preserve/shift. Latency is reported and shown. |
| Prism | prism.vst3 |
Audio effect | Banded spectral delay: 1-8 log-spaced bands, each with its own left/right delay (to 2 s) and feedback, per-band solo, low/high cut, four FFT sizes. Latency is reported and shown. |
| Mouth | mouth.vst3 |
Audio effect | Vowel filter: five formant band-passes morph between A, E, I, O and U on an x-y pad (bass, tenor, alto, soprano), with shift, resonance, stereo spread, drive and air. Drift CC 1-4. No latency. |
| Quefrency | quefrency.vst3 |
Audio effect | Cepstral formant and harmonic shifter: envelope and excitation transformed independently; latency reported to the host. |
| ToneWorm | worms.vst3 |
MIDI generator | Paterson's Worm Tonnetz melody generator with six directional rules, scale quantization, Conductor CC, and Randomize/Mutate actions. |
| Ghost | ghost.vst3 |
Audio/MIDI effect | Audio-triggered ghost-note generator: BBT-quantised ghost drums on ch 10 or notes on a selectable channel, driven by Drift CC 1–4. |
| Spliff | spliff.vst3 |
Audio effect | Adaptive transient processor in the Spiff manner: per-band dynamic cuts or boosts only where transient energy lives. |
| HelterSkelter | helterskelter.vst3 |
Audio effect | Automatic wah pedal: resonant lowpass driven by the input envelope and/or a BBT-synced ADSR cycle, with Drift CC control. |
| Treatment | treatment.vst3 |
Audio effect | Physically modelled acoustic treatment panel: a mass-air-mass absorber whose resonance and absorption come from real cavity, gap, facing mass and flow resistivity, with a seeded Randomise and five Drift CC lanes. |
| Voxmod | voxmod.vst3 |
Audio effect | Combined vocoder and ring modulator: a filter-bank vocoder analysing inputs 1/2 colours the modulator on 3/4, in parallel with a band-limited ring modulator, blended by Mix. |
| Sinevox | sinevox.vst3 |
Audio effect | Formant tracker with two voices: speech on inputs 1/2 is analysed for up to eight formants (frequency, Q, amplitude) that drive a band-pass vocoder bank on 3/4 or a bank of sine oscillators (sine-wave speech). MIDI CC and note control, formants out as CCs or notes. |
| Keyframe | keyframe.vst3 |
Audio effect | Extrema-sampling time stretch after DAFx26: the input reduces to timestamped local extrema whose spacing drives the overlap-add splice length. No transient detector. |
Mixgen, T-Mix, Loopdelay and Lightverb can form a loosely coupled automatic mix chain through Producer Control Bus v1.
Every plugin follows the same pattern. DSP, MIDI, transport and state live in a host-agnostic C++ core with deterministic tests. A thin DPF wrapper translates host timing, parameters, MIDI and state. The UI is plugin-specific and driven by the wrapper's parameters and status.
Shared code is in include/downspout and src/common, and the plugins are under plugins.
There's a shared meter model, so transport-aware generators can tell simple, triple, compound and odd groupings apart. Musical style is still uneven: bassgen and drumgen have explicit style modes, while pickups, phrase endings and folk idioms are future work.
Claude Code skills live in skills/<name>/SKILL.md, with relative symlinks in .claude/skills/<name> so Claude Code finds them. The plugin-authoring ones are new-plugin,
drum-voice-plugin, magneto-ui, plugin-core-tests, extend-genre-or-scale and debug-reaper-scan.
To add one, create skills/<name>/SKILL.md and run ln -s ../../skills/<name> .claude/skills/<name>.
The skills point at CLAUDE.md and docs/ instead of copying them, so when a rule changes, edit those.
- docs/pages/plugins-summary.md: per-plugin ports, MIDI roles, CC maps and wiring, written for automated agents (also on the Pages site as "Reference")
- docs/process.md: the AI-assisted workflow, skills, testing, builds, publishing and definition of done
- docs/architecture.md: build graph, layering, state, transport, UI, install and release conventions
- docs/install.md and docs/release.md: local installs, release artifacts and the GitHub Actions workflow
- docs/screenshots.md: capturing UI screenshots for the Pages site
- docs/meter.md: the shared meter model and its musical limits
- docs/requirements.md: build dependencies
- docs/plan.md: direction and remaining work
Everything builds as VST3. What's left is mostly host validation: most of the newer plugins have only had their core tests and a look at the screenshot, not a go in a DAW. After that, release validation, keeping packaging in step with local installs, and the first tagged release. Open ideas are in TODO.md and docs/plan.md.
docs/ is working notes, a lot of them drafts. The GitHub Pages site is built from docs/pages only (Jekyll, .github/workflows/pages.yml).
- Each plugin has
docs/pages/_products/<plugin>.md. The front matter (summary,screenshot,groupand so on) makes the index card and the Markdown body is the plugin page. - Screenshots come from
scripts/capture-plugin-screenshots.sh(see docs/screenshots.md). The text is in the product files. - To preview locally:
jekyll serve --source docs/pages --destination /tmp/downspout-pages-site