Skip to content
danjaPublic

About

Generative VST Plugin Experiments

Topics

Resources

Stars

26 stars

Watchers

0 watching

Forks

Repository files navigation

downspout

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)

  1. Download the zip for your platform from GitHub Releases:
    • downspout-<version>-linux-x86_64-vst3.zip
    • downspout-<version>-macos-arm64-vst3.zip (Apple Silicon)
    • downspout-<version>-macos-x86_64-vst3.zip (Intel Mac)
    • downspout-<version>-windows-x86_64-vst3.zip
  2. Unzip it. It contains one .vst3 bundle per plugin.
  3. Copy all the .vst3 bundles 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\"
  1. 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.

About

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).

Build and Install

To build and install locally:

./install.sh

That 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.sh

Restart your DAW or force a rescan afterwards. Some hosts cache plugin names, makers, categories and homepage metadata separately from the bundle.

Plugins

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.

Architecture

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.

Agent skills

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.

Reference Docs

Current 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.

Documentation

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, group and 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

About

Generative VST Plugin Experiments

Topics

Resources

Stars

26 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages