CLAP plugin hosting (isolated unsafe crate), stem bouncing

- soundcraft-clap-host: scans standard CLAP folders, loads plugins via
  clap-sys/libloading, implements the Plugin trait (audio, params, latency,
  notes); the only crate allowed unsafe, every block documented; stubs on wasm
- mixer, engine (mix.insert, engine.clap_plugins) and Mix window CLAP menu
- end-to-end tests against a Rust-built fixture plugin
- file.bounce_stems: one soloed file per track

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas
2026-10-05 23:44:22 -04:00
co-authored by Claude Opus 5.5
parent fd2a5fda4a
commit 2fc8e2ecb8
26 changed files with 2603 additions and 11 deletions
Generated
+21
View File
@@ -623,6 +623,12 @@ dependencies = [
"libc",
]
[[package]]
name = "clap-sys"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a76abbdb2907f6fd97fb6bc0b7be96b77d328f2dd9669d1075cc03369ed22154"
[[package]]
name = "clipboard-win"
version = "5.4.1"
@@ -3382,6 +3388,18 @@ dependencies = [
"soundcraft-time",
]
[[package]]
name = "soundcraft-clap-host"
version = "0.1.0"
dependencies = [
"clap-sys",
"libloading",
"log",
"serde",
"soundcraft-dsp",
"thiserror 2.0.21",
]
[[package]]
name = "soundcraft-cli"
version = "0.1.0"
@@ -3413,6 +3431,7 @@ dependencies = [
"serde",
"serde_json",
"soundcraft-audio-io",
"soundcraft-clap-host",
"soundcraft-dsp",
"soundcraft-midi",
"soundcraft-mix",
@@ -3438,6 +3457,7 @@ dependencies = [
"log",
"rayon",
"soundcraft-audio-io",
"soundcraft-clap-host",
"soundcraft-dsp",
"soundcraft-midi",
"soundcraft-model",
@@ -3490,6 +3510,7 @@ dependencies = [
"serde",
"serde_json",
"soundcraft-audio-io",
"soundcraft-clap-host",
"soundcraft-dsp",
"soundcraft-engine",
"soundcraft-midi",