Skip to content

rdalverny/dima

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dima

This is an audio plugin template I've progressively built while exploring how to make audio plugins with Rust, nih-plug, JUCE, and considering other UI implementations.

It is very much a work in progress, I opt for the open door garage, while I structure and explore it; don't take anything in it for certain or stable, or even, working.

The main idea is, build the DSP code in full Rust (in dsp_core), and call it from whatever framework you want/need (in plugins/*).

It outputs CLAP, VST3, AUv2 (macOS), and an optional browser demo (WASM).

A working gain processor ships out of the box — replace the DSP, keep the infrastructure.

Claude Code was involved in building this, quite a bit, and it shows. Great tool for exploring unfamiliar territory.


Quickstart

cp -r dima/ myplugin/
cd myplugin/
# Edit config/plugin.toml — all fields marked ← CUSTOMIZE
cargo xtask all

That's it. cargo xtask all runs tests, builds, and installs to your local plugin folders.

What's included

Layer What you get
DSP dsp_core/ — pure Rust, zero framework deps, real-time safe
Plugin plugins/nih-plug/ — CLAP + VST3 exports, egui UI, factory presets, lock-free waveform
Web demo plugins/web/ — WASM build, standalone HTML page (offline, no server)
Build cargo xtask — test, build, install, bundle-au, web-demo, all
macOS AUv2 via vendored clap-wrapper, code signing + notarization scripts
CI/CD GitHub Actions matrix (macOS, Windows, Linux)
Config Single config/plugin.toml → propagates to build.rs, xtask, web

Structure

config/plugin.toml       ← single source of truth for all metadata
dsp_core/                ← your DSP logic (framework-agnostic)
plugins/
  nih-plug/              ← CLAP + VST3 + AUv2 wrapper
  web/                   ← WASM demo
xtask/                   ← build system
scripts/
  sign-and-bundle.sh     ← macOS signing + notarization + PKG

How to use

  1. Copy this directory, initialize a git repo
  2. Edit config/plugin.toml (10 fields marked ← CUSTOMIZE)
  3. Replace dsp_core/src/lib.rs with your DSP
  4. Add parameters in plugins/nih-plug/src/lib.rs
  5. Run cargo xtask all

Full guide/notepad is in TEMPLATE_HOWTO.md.

Requirements

  • Rust stable (edition 2021)
  • cargo install wasm-pack (web demo only)
  • Xcode command-line tools (macOS AUv2 only)

License

MIT — see LICENSE

Releases

No releases published

Packages

 
 
 

Contributors