Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Audio plugin template

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages