Installation

Adding bbx_audio to Your Project

Add the crates you need to your Cargo.toml:

[dependencies]
bbx_dsp = "0.4.0"
bbx_core = "0.4.0"

For JUCE plugin integration, you'll only need:

[dependencies]
bbx_plugin = "0.4.0"

For audio file I/O:

[dependencies]
bbx_file = "0.4.0"

For MIDI support:

[dependencies]
bbx_midi = "0.4.0"

Using Git Dependencies

To use the latest development version:

[dependencies]
bbx_dsp = { git = "https://github.com/blackboxaudio/bbx_audio" }
bbx_plugin = { git = "https://github.com/blackboxaudio/bbx_audio" }

Platform-Specific Setup

Linux

Install required packages for audio I/O:

sudo apt install alsa libasound2-dev libssl-dev pkg-config

macOS

No additional dependencies required. CoreAudio is used automatically.

Windows

No additional dependencies required. WASAPI is used automatically.

Local Development

To develop against a local copy of bbx_audio, create .cargo/config.toml in your project:

[patch."https://github.com/blackboxaudio/bbx_audio"]
bbx_core = { path = "/path/to/bbx_audio/bbx_core" }
bbx_dsp = { path = "/path/to/bbx_audio/bbx_dsp" }
bbx_plugin = { path = "/path/to/bbx_audio/bbx_plugin" }
bbx_midi = { path = "/path/to/bbx_audio/bbx_midi" }

This file should be added to your .gitignore.

Verifying Installation

Create a simple test to verify everything is working:

use bbx_dsp::GraphBuilder;

fn main() {
    let _graph = GraphBuilder::new();
    println!("bbx_audio installed successfully!");
}

Run with:

cargo run