bbx_dsp
A block-based audio DSP system for building signal processing graphs.
Features
- Graph-based architecture: Connect blocks to form processing chains
- Generic sample type: Works with f32 or f64 precision
- Realtime-safe processing: Stack-allocated buffers, no allocations in audio thread
- Parameter modulation: LFOs and envelopes can modulate block parameters
- Topological sorting: Automatic execution order based on connections
Block Types
Generators
OscillatorBlock- Waveform generator (sine, square, saw, triangle, pulse, noise)
Effectors
GainBlock- Level control in dBOverdriveBlock- Asymmetric soft-clipping distortionPannerBlock- Stereo panning with constant power lawDcBlockerBlock- DC offset removalChannelRouterBlock- Channel routing and manipulation
Modulators
LfoBlock- Low-frequency oscillator for parameter modulationEnvelopeBlock- ADSR envelope generator
I/O
FileInputBlock- Read audio from filesFileOutputBlock- Write audio to files (non-blocking I/O)OutputBlock- Terminal graph output
Usage
use ;
// Create a graph with 44.1kHz sample rate, 512 sample buffer, stereo output
let mut builder = new;
// Add an oscillator
let osc = builder.add_oscillator;
// Build the graph (automatically adds output block)
let mut graph = builder.build;
// Process audio
let mut left = vec!;
let mut right = vec!;
let mut outputs: = ;
graph.process_buffers;
License
MIT