Scaffold NIH-plug project: full-band gain VST3/CLAP with one-slider egui GUI

Sets up the Rust/NIH-plug build (pinned to nih-plug rev f36931f) producing
VST3 and CLAP bundles via 'cargo xtask bundle'. Implements the first landmark:
a full-band gain plugin with a single egui ParamSlider.

- Cargo workspace + xtask bundler, .cargo alias, bundler.toml
- src/lib.rs: Codename206 plugin (gain param, egui editor)
- deploy.ps1/.bat: build + install to system VST3/CLAP folders (real copy,
  not a junction, for FL Studio); -User flag for a no-admin dev loop
- LICENSE: GPL-3.0 (required by NIH-plug's VST3 bindings)
- README: corrected architecture for the 'All' aggregate channel (4th comp/lim
  stack on the summed bands; all-bands-bypassed = simple full-band comp)
- .gitignore excludes /target and the local nih-plug + _template reference clones

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Mikkeli Matlock
2026-06-14 21:22:34 +09:00
parent c398b86d2b
commit d0734ff803
12 changed files with 3574 additions and 22 deletions
+33
View File
@@ -0,0 +1,33 @@
[package]
name = "codename_206"
version = "0.1.0"
edition = "2021"
authors = ["Mikkeli Matlock <matlockib@gmail.com>"]
homepage = "https://github.com/mikkeli/codename-206"
description = "A VST3/CLAP multiband compressor/limiter with a custom gain-curve display"
# VST3 is on by default in nih_plug, and its bindings (vst3-sys) are GPLv3. Any
# distributed VST3 binary built with them must therefore be GPL-3.0-or-later
# (or covered by a commercial Steinberg licence). CLAP carries no such requirement.
license = "GPL-3.0-or-later"
[workspace]
members = ["xtask"]
[lib]
crate-type = ["cdylib"]
[dependencies]
# Pinned to the exact commit of the local ./nih-plug reference clone so the build
# is reproducible and matches the examples we read from. Bump the `rev` together
# with `git -C nih-plug pull` when you want to update.
nih_plug = { git = "https://github.com/robbert-vdh/nih-plug.git", rev = "f36931f7af4646065488a9845d8f8c2f95252c23", features = ["assert_process_allocs"] }
nih_plug_egui = { git = "https://github.com/robbert-vdh/nih-plug.git", rev = "f36931f7af4646065488a9845d8f8c2f95252c23" }
[profile.release]
lto = "thin"
strip = "symbols"
[profile.profiling]
inherits = "release"
debug = true
strip = "none"