Skip to content
danjaPublic

About

Generative VST Plugin Experiments

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Repository files navigation

downspout

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.

The macOS and Windows builds are currently untested, and those packages omit sidecar.vst3. macOS may quarantine unsigned downloads; if a plugin is blocked, run xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/VST3/*.vst3.

See docs/install.md and docs/release.md for the local install and release packaging details.

About

A bunch of mostly generative, algorithmic plugins based around DPF and VST3.

The repository is organized around portable C++ cores, deterministic tests, thin DPF wrappers, and custom NanoVG UIs. VST3 metadata is normalized across the plugins with creator danja, group Downspout, and plugin-specific categories.

Demo -

See also :

  • Transmission Generative Audio Workstation
  • Valis Virtual Analog LLM Integrated System
  • Flues earlier LV2 plugins and Web Audio toys

Build and Install

For local development installs:

./install.sh

This configures ./build, builds the enabled plugins, runs ctest, and installs VST3 bundles into ~/.vst3 by default.

Useful overrides:

DOWNSPOUT_VST3_DIR=/some/other/path ./install.sh
DOWNSPOUT_RUN_TESTS=0 ./install.sh

After reinstalling, restart your DAW or force a VST3 rescan. Some hosts cache plugin names, makers, categories, and homepage metadata independently of the installed bundle.

Plugins

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 Polyphonic MIDI synthesizer based on the Mindlin-Laje biophysical avian syrinx model with 10 bird presets and chromatic pitch mapping.
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 Campione — 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-string synthesizer derived from Plinky, with one voice per Launchpad grid 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) 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 with internal-scale 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.
Primefold primefold.vst3 Audio effect Prime-harmonic feedback pitch shifter: direct 2x/3x/5x voices, composites via recirculation, bounded loop with explicit delay.
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.
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.

The repeated implementation pattern is:

  1. keep DSP, MIDI, transport, and state behavior in a host-agnostic C++ core;
  2. cover deterministic core behavior with tests;
  3. translate host timing, parameters, MIDI, and state in a thin DPF wrapper;
  4. keep UI code plugin-specific and driven by wrapper parameters/status.

The shared code lives under include/downspout and src/common. Plugin-specific implementations live under plugins.

The repository now has a shared meter model so transport-aware generators can distinguish simple, triple, compound, and odd groupings. Musical style behavior is still uneven by design: bassgen and drumgen have explicit style modes, while deeper pickup, phrase-ending, and folk-idiom behavior remains future work.

Reference Docs

Current Work

All current wrapper targets build as VST3 bundles. The main remaining work is host validation, release validation, and incremental DAW-facing fixes rather than large architecture changes.

Near-term priorities:

  1. validate all twenty-five bundles in real hosts after clean installs and rescans;
  2. keep release packaging aligned with local installs;
  3. extend musical style vocabulary where it improves actual generator behavior;
  4. publish and verify the first public tagged release artifact.

Documentation

There's a mess of rough drafts in the /docs dir plus :

GitHub Pages is built from docs/pages, not from the root docs.

The editable plugin screenshot text is here:

  • Card text and plugin-page summary: summary: in each file under docs/pages/_products
  • Longer plugin-page notes: Markdown body below the front matter in the same file
  • Screenshot path: screenshot: in the same front matter, pointing at docs/pages/assets/plugins

Example: docs/pages/_products/bassgen.md:1

summary: Transport-synced bassline generator...

Functionality

BassGen creates...

How it renders:

  • Index cards use plugin.summary in docs/pages/index.md:17
  • Individual plugin pages use page.summary, page.screenshot, then the Markdown body in docs/pages/_layouts/plugin.html:10
  • Jekyll collection config is in docs/pages/_config.yml:6

Build/deploy path:

  • GitHub Actions workflow: .github/workflows/pages.yml:1
  • It runs actions/jekyll-build-pages with source: docs/pages
  • It deploys the generated _site artifact to GitHub Pages

For local preview from repo root:

jekyll serve --source docs/pages --destination /tmp/downspout-pages-site

Screenshot generation is separate. The PNGs are regenerated by scripts/capture-plugin-screenshots.sh, documented in docs/screenshots.md:1, but the descriptive text is in _products/*.md.

About

Generative VST Plugin Experiments

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages