A professional multi-module bus channel strip VST3/CLAP plugin built with Rust
Built with NIH-Plug, Airwindows DSP, and vizia GUI framework
[ποΈ API5500 EQ] β [ποΈ ButterComp2] β [π» Pultec EQ] β [β‘ Dynamic EQ] β [π Transformer] β [π₯ Punch]
| Module | Type | Description |
|---|---|---|
| ποΈ API5500 EQ | Semi-Parametric | 5-band equalizer with classic API 5500 character |
| ποΈ ButterComp2 | Compressor | Airwindows bi-polar interleaved compression system |
| π» Pultec EQ | Tube EQ | Custom EQP-1A style EQ with tube saturation modeling |
| β‘ Dynamic EQ | Frequency-Dependent | 4-band dynamic EQ with intelligent compression |
| π Transformer | Saturation | Transformer coloration with 4 vintage models |
| π₯ Punch | Clipper + Transient | Transparent clipping with transient restoration for louder, punchier mixes |
β PRODUCTION READY - Full CI/CD pipeline with automated releases
| Component | Status | Description |
|---|---|---|
| π§ Core DSP | β COMPLETE | All 6 modules implemented and functional |
| ποΈ Parameters | β COMPLETE | ~90 automation parameters with module reordering |
| ποΈ Build System | β COMPLETE | Successful VST3/CLAP bundle creation |
| π€ CI/CD Pipeline | β WORKING | Multi-platform builds (Windows/macOS/Linux) |
| π¨ GUI | β INTEGRATED | vizia-plug with Skia graphics rendering |
| π¦ Releases | β AUTOMATED | GitHub releases with cross-platform binaries |
Recommended for most users
- Go to Releases
- Download the package for your platform:
- πͺ Windows:
Bus-Channel-Strip-windows.zip - π macOS Intel:
Bus-Channel-Strip-macos-intel.tar.gz - π macOS ARM64:
Bus-Channel-Strip-macos-arm64.tar.gz - π§ Linux:
Bus-Channel-Strip-linux.tar.gz
- πͺ Windows:
- Extract to your VST3/CLAP plugin directory
- Restart your DAW and enjoy!
π§ System Requirements
| Requirement | Version | Purpose |
|---|---|---|
| π¦ Rust Nightly | 1.70+ |
Required for vizia-plug GUI features |
| π¨ Build Tools | VS 2022 | C++ compilation for FFI modules |
| πͺ Windows SDK | 10/11 | Windows target compilation |
| β‘ LLVM/Clang | Latest | Bindgen and cross-compilation |
β‘ Quick Build Commands
# π¦ Install Rust nightly
rustup toolchain install nightly
# ποΈ Core build (no GUI)
cargo build --no-default-features --features "api5500,buttercomp2,pultec,transformer"
# π¨ Full build with GUI
cargo +nightly build --features "api5500,buttercomp2,pultec,transformer,gui"
# π¦ Create production bundles (recommended)
set FORCE_SKIA_BINARIES_DOWNLOAD=1
cargo +nightly run --package xtask -- bundle bus_channel_strip --release --features "api5500,buttercomp2,pultec,transformer,gui"πͺ Windows Build Scripts
For Windows users, automated build scripts are provided:
# π Simplified build (recommended)
bin\preflight_build_simple.bat
# π― Full build and install to DAW
bin\debug_plugin_simple.batπ΅ DAW Compatibility Testing
| DAW | VST3 | CLAP | Status | Notes |
|---|---|---|---|---|
| ποΈ Reaper | β | β | Planned | Industry standard compatibility |
| πΉ Pro Tools | β | β | Planned | VST3 support only |
| π Logic Pro X | β | β | Planned | macOS VST3 + AU planned |
| πΌ Cubase | β | β | Planned | VST3 native support |
| πΆ FL Studio | β | β | Planned | Parameter automation testing |
| π Bitwig Studio | β | β | Planned | CLAP native support |
Testing Checklist:
- Parameter automation in each DAW
- Preset save/load functionality
- Plugin scanner compatibility
- Real-time performance optimization
π Audio Quality Verification
| Test Category | Metrics | Status |
|---|---|---|
| π THD+N | < 0.01% @ 1kHz | Planned |
| π Frequency Response | Β±0.1dB 20Hz-20kHz | Planned |
| β±οΈ Phase Response | Linear phase option | Planned |
| π Sample Rates | 44.1-192kHz support | Planned |
| π« Artifacts | Click/pop detection | Planned |
Quality Standards:
- β Lock-free real-time processing
- β Allocation-free audio thread
- β Professional parameter ranges
- π Reference implementation A/B testing
β‘ Performance Benchmarks
| Platform | CPU Usage | Memory | Latency |
|---|---|---|---|
| πͺ Windows 11 | TBD | TBD | TBD |
| π macOS 14+ | TBD | TBD | TBD |
| π§ Linux | TBD | TBD | TBD |
Performance Goals:
- < 5% CPU usage @ 44.1kHz/64 samples
- Zero memory leaks in 24h+ sessions
- Sub-millisecond parameter updates
- Stress testing with 100+ instances
π§ Plugin Framework
| Component | Technology | Purpose |
|---|---|---|
| π¦ Core Framework | NIH-Plug | Modern Rust plugin framework with ~75 parameters |
| π¨ GUI System | vizia + Skia | CSS-like styling with hardware-accelerated rendering |
| π Processing | Lock-free/Allocation-free | Real-time audio thread safety |
| ποΈ Modularity | Dynamic reordering | User-configurable signal chain |
π¦ Dependencies
nih_plug = { git = "https://github.com/robbert-vdh/nih-plug.git" } # Plugin framework
vizia_plug = { git = "https://github.com/vizia/vizia-plug.git" } # GUI integration
biquad = "0.5.0" # Filter implementations
fundsp = "0.20.0" # DSP utilities
realfft = "3.5.0" # FFT processing
augmented-dsp-filters = "2.5.0" # Additional filtersatomic_float = "0.1" # Thread-safe GUI operations
skia-safe = { version = "0.84" } # Graphics rendering- C++ Airwindows:
extern "C"interfaces incpp/directory - Build System: Custom
build.rsfor C++ compilation
π Platform Support
| Platform | Status | Formats | Notes |
|---|---|---|---|
| πͺ Windows | β Production | VST3, CLAP | Primary development platform |
| π macOS Intel | β Production | VST3, CLAP | CI/CD automated builds |
| π macOS ARM64 | β Production | VST3, CLAP | Native Apple Silicon support |
| π§ Linux | β Production | VST3, CLAP | Ubuntu 22.04+ LTS |
| π Audio Units | π Planned | AU | macOS native format |
π Project Structure
ποΈ bus_channel_strip/
βββ π¦ src/ # Rust source code
β βββ lib.rs # Plugin entry point & parameter management
β βββ api5500.rs # 5-band semi-parametric EQ module
β βββ buttercomp2.rs # Airwindows ButterComp2 FFI wrapper
β βββ pultec.rs # Pultec EQP-1A tube EQ implementation
β βββ dynamic_eq.rs # 4-band dynamic EQ (optional feature)
β βββ transformer.rs # Transformer saturation module
β βββ editor.rs # vizia GUI implementation
β βββ components.rs # Reusable GUI components
β βββ shaping.rs # Common DSP math functions
β βββ spectral.rs # FFT analysis utilities
βββ π cpp/ # C++ FFI wrappers for Airwindows
βββ π¨ assets/ # GUI resources and themes
βββ βοΈ xtask/ # Custom build tooling
βββ π οΈ bin/ # Build scripts and utilities
βββ π€ .github/workflows/ # CI/CD automation
βββ π¦ target/bundled/ # Output: VST3/CLAP bundles
CLAUDE.md β’ Development guidelines and AI assistant context
docs/ β’ Extended documentation:
AGENTS.md- Original project specifications and architectureGUI_DESIGN.md- Complete GUI specifications and responsive designPUNCH_MODULE_SPEC.md- Punch module DSP research and implementationVIZIA_AGENT_SPEC.md- vizia GUI specialist documentationCLIPPING_INSIGHTS.md- Professional loudness techniques
Found a bug? Have a feature request? π Open an Issue β’ π¬ Discussions
GPL-3.0-or-later β’ Free and open source