Skip to content

fsecada01/bus_channel_strip

Repository files navigation

πŸŽ›οΈ Bus Channel Strip VST Plugin

A professional multi-module bus channel strip VST3/CLAP plugin built with Rust

Rust VST3 CLAP License Cross Platform

Built with NIH-Plug, Airwindows DSP, and vizia GUI framework


✨ Features

πŸ”Š Signal Chain

[🎚️ API5500 EQ] β†’ [πŸ—œοΈ ButterComp2] β†’ [πŸ“» Pultec EQ] β†’ [⚑ Dynamic EQ] β†’ [🎭 Transformer] β†’ [πŸ’₯ Punch]

πŸŽ›οΈ DSP Modules

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

πŸš€ Current Status

βœ… 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

πŸš€ Quick Start

πŸ“¦ Download Ready-to-Use Binaries

Recommended for most users

  1. Go to Releases
  2. 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
  3. Extract to your VST3/CLAP plugin directory
  4. Restart your DAW and enjoy!

πŸ› οΈ Build From Source

πŸ”§ System Requirements

πŸ“‹ Dependencies

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

πŸ§ͺ Testing & Quality Assurance

🎡 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

πŸ—οΈ Technical Architecture

πŸ”§ 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

πŸ”‘ Core 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 filters

🎨 GUI Dependencies

atomic_float = "0.1"                    # Thread-safe GUI operations
skia-safe = { version = "0.84" }        # Graphics rendering

πŸ”— FFI Integration

  • C++ Airwindows: extern "C" interfaces in cpp/ directory
  • Build System: Custom build.rs for 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

🀝 Contributing & Support

πŸ“š Documentation

CLAUDE.md β€’ Development guidelines and AI assistant context

docs/ β€’ Extended documentation:

πŸ› Issues & Features

Found a bug? Have a feature request? πŸ”— Open an Issue β€’ πŸ’¬ Discussions

πŸ“„ License

GPL-3.0-or-later β€’ Free and open source


🎡 Ready for Production β€’ September 2025 β€’ Rust + NIH-Plug + vizia + Airwindows

Download Latest Release