Crate bbx_dsp

Source
Expand description

§BBX DSP

A block-based audio DSP system for building signal processing graphs.

§Overview

This crate provides a graph-based architecture for constructing DSP chains. Blocks (individual DSP units) are connected together to form a processing graph, which is then executed in topologically sorted order.

§Core Types

  • Block - Trait for DSP processing units
  • BlockType - Enum wrapping all block implementations
  • Graph - Container for connected blocks
  • GraphBuilder - Fluent API for graph construction
  • Sample - Trait abstracting over f32/f64

§Block Categories

  • Generators: Create audio (oscillators)
  • Effectors: Transform audio (gain, overdrive, panning)
  • Modulators: Generate control signals (LFOs, envelopes)
  • I/O: File input/output and graph output

§Example

use bbx_dsp::{graph::GraphBuilder, waveform::Waveform};

let mut builder = GraphBuilder::<f32>::new(44100.0, 512, 2);
let osc = builder.add_oscillator(440.0, Waveform::Sine, None);
let graph = builder.build();

Re-exports§

pub use block::BlockCategory;
pub use channel::ChannelConfig;
pub use channel::ChannelLayout;
pub use frame::Frame;
pub use frame::MAX_FRAME_SAMPLES;
pub use plugin::PluginDsp;
pub use voice::VoiceState;

Modules§

block
DSP block system.
blocks
DSP block implementations.
buffer
Audio buffer types.
channel
Multi-channel audio configuration.
context
DSP processing context.
frame
Audio frame type for inter-thread communication.
graph
DSP graph system.
parameter
Parameter modulation system.
plugin
Plugin DSP trait for FFI integration.
polyblep
PolyBLEP and PolyBLAMP anti-aliasing for band-limited waveform generation.
prelude
Convenience re-exports for common bbx_dsp usage.
reader
Audio file reader trait.
sample
Audio sample type abstraction.
smoothing
Parameter smoothing utilities for click-free parameter changes.
voice
Voice state management for MIDI-controlled synthesis.
waveform
Waveform types and generation.
writer
Audio file writer trait.