-
Notifications
You must be signed in to change notification settings - Fork 0
Cheatsheet
LX Audiolabs edited this page Aug 9, 2026
·
2 revisions
# Scaffold
cargo aura init [path] # init in existing empty dir (name from dir)
cargo aura new <name> # new single-plugin workspace
cargo aura new <name> --vst3 --lv2 # with VST3 + LV2 support
cargo aura new <name> --kind analyzer # kind: effect (default), effect-mono, analyzer
cargo aura add <name> # add plugin to existing workspace
cargo aura add <name> --vst3 --lv2
cargo aura add-ui <name> # add shared Slint UI crate
# Build
cargo aura build --clap -plug <name> # CLAP
cargo aura build --vst3 -plug <name> # VST3
cargo aura build --lv2 -plug <name> # LV2
cargo aura build --clap -plug a b c # multiple plugins
cargo aura build --clap -plug <name> --release
# Install
cargo aura install --clap -plug <name>
cargo aura install --clap -plug a b c
# Doctor
cargo aura doctor # toolchain, AURA_PATH, clap-validator, agal
# UI preview (without compiling plugin)
cargo aura preview # default: ui/main.slint
cargo aura preview path/to/ui/main.slint --no-watch- Env:
CLAPINS/CLAP_PATHorVST3INS/VST3_PATH -
aura.toml[install]per-format path -
aura.toml[install] dir+ subdir (CLAP, VST3, LV2) - OS defaults (Program Files Common / ~/Library / ~/.clap)
Paths expand %VAR% (Windows), $VAR / ${VAR} (Unix), and ~.
| Variable | Purpose |
|---|---|
AURA_PATH |
AURA framework root (crates/, tools/) |
CLAPINS / CLAP_PATH
|
CLAP install directory |
VST3INS / VST3_PATH
|
VST3 install directory |
| Crate | Role |
|---|---|
aura |
Umbrella re-export (use aura::prelude::*) |
aura-core |
PluginLogic trait, host handle, bus layouts |
aura-params |
Param types, normalization, #[derive(Params)]
|
aura-derive |
Params, ParamEnum proc macros |
aura-clap |
CLAP wrapper (factory, params, process, state, GUI) |
aura-vst3 |
VST3 wrapper (IPlugView, process, params, state) |
aura-lv2 |
LV2 wrapper (ports, state blob, TTL bundle; no GUI yet) |
aura-baseview |
baseview window host + renderer backends |
aura-editor |
AuraSlintEditor — high-level builder for Slint editors |
aura-build |
Slint compile-time (@aura widgets: Knob, Slider, Toggle, Meter, XYPad) |
aura-dsp |
Oscillators, filters, dynamics, effects, synth modules |
aura-midi |
MIDI events, ProcessContext.midi routing |
aura-shm |
Cross-plugin shared memory IPC (publishers, consumers, spectrum) |
aura-test |
State round-trip + process smoke-test helpers |
cargo-aura |
CLI build tool |
# 1. Create
cargo aura new my-synth
cd my-synth
# 2. Implement PluginLogic in plugins/my-synth/src/lib.rs
# 3. Build + lint
cargo aura build --clap -plug my-synth
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
# 4. Install to host
cargo aura install --clap -plug my-synth
# 5. Smoke in Bitwig / REAPERuse aura::prelude::*;
struct MyPlugin;
impl PluginLogic for MyPlugin {
fn process(&mut self, ctx: &mut ProcessContext, audio: &mut AudioBuffer) {
// DSP here — called from audio thread
}
}Params via derive:
#[derive(Params)]
struct MyParams {
#[paramid(0)]
gain: f32,
}use aura_shm::Hub;
// Publish spectrum from audio thread
let hub = Hub::get();
hub.write_spectrum(0, &spectrum_data); // slot index, [f32; 1024]
// Consume in UI
let data = hub.read_spectrum(0);← Install & Setup | Home →