1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! DSP building blocks used by the audio engine.
//!
//! Each module is a self-contained unit processor that accepts `f32` audio
//! samples and exposes a `process` (or `next_sample`) method. All processors
//! are real-time safe: no heap allocation after construction, no blocking I/O,
//! no `unwrap` / `panic!` on the hot path.
//!
//! # Signal chain (per layer)
//!
//! ```text
//! Oscillator(s) --> ADSR --> Waveshaper --> Bitcrusher
//! \
//! --> Master bus:
//! BiquadFilter (LP) --> DelayLine
//! --> Chorus --> Freeverb --> Limiter
//! ```
// Synth primitives are used via dynamic dispatch from the audio engine;
// the compiler can't always see through the call graph, hence these suppressions.
pub use BiquadFilter;
pub use ;
// Freeverb is used by the plugin lib (src/plugin.rs) via this re-export;
// the standalone binary uses FdnReverb instead, so the compiler warns here
// when building the binary target.
pub use Bitcrusher;
pub use Chorus;
pub use DelayLine;
pub use Adsr;
pub use ThreeBandEq;
pub use FdnReverb;
pub use GrainEngine;
pub use KarplusStrong;
pub use Limiter;
pub use ResonatorBank;
pub use Freeverb;
pub use WaveguideString;
pub use Waveshaper;