bbx_dsp/lib.rs
1//! # BBX DSP
2//!
3//! A block-based audio DSP system for building signal processing graphs.
4//!
5//! ## Overview
6//!
7//! This crate provides a graph-based architecture for constructing DSP chains.
8//! Blocks (individual DSP units) are connected together to form a processing graph,
9//! which is then executed in topologically sorted order.
10//!
11//! ## Core Types
12//!
13//! - [`Block`](block::Block) - Trait for DSP processing units
14//! - [`BlockType`](block::BlockType) - Enum wrapping all block implementations
15//! - [`Graph`](graph::Graph) - Container for connected blocks
16//! - [`GraphBuilder`](graph::GraphBuilder) - Fluent API for graph construction
17//! - [`Sample`](sample::Sample) - Trait abstracting over f32/f64
18//!
19//! ## Block Categories
20//!
21//! - **Generators**: Create audio (oscillators)
22//! - **Effectors**: Transform audio (gain, overdrive, panning)
23//! - **Modulators**: Generate control signals (LFOs, envelopes)
24//! - **I/O**: File input/output and graph output
25//!
26//! ## Example
27//!
28//! ```ignore
29//! use bbx_dsp::{graph::GraphBuilder, waveform::Waveform};
30//!
31//! let mut builder = GraphBuilder::<f32>::new(44100.0, 512, 2);
32//! let osc = builder.add_oscillator(440.0, Waveform::Sine, None);
33//! let graph = builder.build();
34//! ```
35
36pub mod block;
37pub mod blocks;
38pub mod buffer;
39pub mod context;
40pub mod graph;
41pub mod parameter;
42pub mod plugin;
43pub mod prelude;
44pub mod reader;
45pub mod sample;
46pub mod smoothing;
47pub mod voice;
48pub mod waveform;
49pub mod writer;
50
51pub use plugin::PluginDsp;
52pub use voice::VoiceState;