Expand description
§Rack - Audio Plugin Hosting for Rust
Rack is a modern Rust library for hosting audio plugins in your applications. It provides a clean, safe API for discovering, loading, and processing audio through VST3, AudioUnit, CLAP, and other plugin formats.
§Quick Start
use rack::prelude::*;
// Scan for plugins
let scanner = Scanner::new()?;
let plugins = scanner.scan()?;
println!("Found {} plugins", plugins.len());
// Load a plugin
let mut plugin = scanner.load(&plugins[0])?;
plugin.initialize(48000.0, 512)?;
// Process audio (planar format - one buffer per channel)
let left_in = vec![0.0f32; 512];
let right_in = vec![0.0f32; 512];
let mut left_out = vec![0.0f32; 512];
let mut right_out = vec![0.0f32; 512];
plugin.process(
&[&left_in, &right_in],
&mut [&mut left_out, &mut right_out],
512
)?;§Features
- AudioUnit support (macOS, iOS) - built-in
- VST3 support (Windows, macOS, Linux) - built-in
- CLAP support - coming soon
- cpal integration - optional, enable with
cpalfeature
§Platform Support
- macOS: AudioUnit (default) and VST3
- iOS: AudioUnit only (VST3 not available on mobile)
- Windows: VST3 (default)
- Linux: VST3 (default)
AudioUnit provides the best integration on Apple platforms (native GUI support). VST3 is the default on Windows and Linux, and also available on macOS.
Re-exports§
pub use error::Error;pub use error::Result;pub use midi::MidiEvent;pub use midi::MidiEventKind;pub use plugin_info::ParameterInfo;pub use plugin_info::PluginInfo;pub use plugin_info::PluginType;pub use plugin_info::PresetInfo;pub use traits::PluginInstance;pub use traits::PluginScanner;
Modules§
- error
- midi
- MIDI event types and utilities
- plugin_
info - prelude
- Prelude module for convenient imports
- traits