Skip to content

Releases: gustavokch/DeepSteps

DeepSteps v0.1.1 — full host-test coverage (CLAP + VST3)

14 Jun 18:00

Choose a tag to compare

Maintenance release. No runtime behaviour change from v0.1 — this release adds
full host-level test coverage for both plugin formats and wires it into CI. Version
bumped to 0.1.1; binaries rebuilt and re-validated.

What's new

  • VST3 host-conformance via Tracktion pluginval (strictness 8) → SUCCESS,
    25 test groups, 0 failures (params, buses, state save/restore, threading, fuzz).
  • VST3 14-scale semantic test — a new headless VST3 COM host
    (vst3-host-test/) loads the shipped .vst3, sets params via IParameterChanges,
    drives a playing ProcessContext, and asserts every emitted NoteOnEvent is
    in-scale and matches the reference snap-down → ALL 14 SCALES PASS, identical to
    the CLAP path.
  • CI now runs the CLAP host test, the VST3 host test, and pluginval on every
    push/PR (in addition to cargo test, clippy, and clap-validator).

Both the .clap and .vst3 in this release are the exact binaries that passed all
of the above.

Install (Linux x86_64)

mkdir -p ~/.clap ~/.vst3
unzip deepsteps-plugin-v0.1.1-linux-x86_64.zip
cp    deepsteps-plugin.clap  ~/.clap/
cp -r deepsteps-plugin.vst3  ~/.vst3/

Rescan plugins in your host (Carla, Bitwig, Reaper, …) → DeepSteps. It is a MIDI
generator that follows the host transport. See the README and
deepsteps-plugin/VALIDATION.md for details and known issues.

DeepSteps v0.1 — Linux CLAP/VST3 plugin

14 Jun 17:34

Choose a tag to compare

First Linux release of DeepSteps as a CLAP + VST3 MIDI-generator plugin (Stage 2,
nih-plug Rust rewrite), plus a Linux build of the original openFrameworks standalone
(Stage 1).

Install (Linux x86_64)

mkdir -p ~/.clap ~/.vst3
unzip deepsteps-plugin-v0.1-linux-x86_64.zip
cp    deepsteps-plugin.clap  ~/.clap/
cp -r deepsteps-plugin.vst3  ~/.vst3/

Rescan plugins in your host (Carla, Bitwig, Reaper, …) → DeepSteps.

What it is

A MIDI generator: it emits notes, your host/synth makes sound. No internal clock —
it follows the host transport
(press play). A frozen, offline-trained autoencoder
decoder turns 4 latent params into a 16-step pattern; the sequencer plays it at
4 steps/beat and quantises pitch to a chosen scale + key.

Params: Latent A–D, Gate (ms), Sub-step scale, Seq length (1–16), Key, Scale
(14 options), 16 per-step note pitches. Output: NoteOn/Off, velocity 100, channel 1.

Validation

cargo test (14), clap-validator (18 passed / 0 failed / 3 skipped), and a headless
CLAP host test asserting all 14 scales quantise correctly against this exact build.
CI green.

Known issues

  • Parameters-only — no custom GUI yet (host draws a generic panel).
  • Shipped decoder.json was trained on a synthetic corpus, so patterns are
    reproducible but not musically trained. Train your own from audio with
    tools/build_dataset.py + tools/train_export.py.
  • Two sequencer timing approximations flagged for host A/B (continuous sub-step offset
    vs Pd integer-pulse truncation; block-seam double/drop) — neither observed.
  • VST3 is built but only the CLAP is validator/host-tested so far.

See the README and deepsteps-plugin/VALIDATION.md for detail.