Skip to main content

sim_lib_audio_dsp/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Reusable pure Rust DSP processors, bandlimited sources, and fixed-state
4//! sample-rate conversion for the SIM audio graph.
5
6mod citizen;
7mod common;
8pub mod cookbook;
9mod cookbook_runtime;
10mod delay;
11mod dynamics;
12mod filter;
13mod fixture;
14mod gain;
15mod modulation;
16mod oscillator;
17mod oversampling;
18mod resample;
19mod runtime;
20mod smoothing;
21
22pub use citizen::{DspConfigDescriptor, dsp_config_class_symbol};
23pub use cookbook::{audio_processing_trace_demo, offline_chain_demo};
24pub use delay::{AllPassFilter, CombFilter, DelayLine, DelayProcessor, FractionalDelay};
25pub use dynamics::{
26    Compressor, DynamicsEnvelope, Gate, Limiter, SoftClipper, Waveshape, Waveshaper,
27};
28pub use filter::{
29    BiquadFilter, BiquadKind, OnePoleFilter, OnePoleMode, StateVariableFilter, StateVariableMode,
30};
31pub use fixture::{GoldenFixture, r30_delay_golden_fixture, r30_gain_golden_fixture, run_offline};
32pub use gain::{DcBlocker, Gain, Pan};
33pub use modulation::{Chorus, Flanger, ModulatedDelayProcessor, Vibrato};
34pub use oscillator::{
35    BandlimitPolicy, BandlimitedOscillator, BandlimitedWaveform, OscillatorPolicy,
36};
37pub use oversampling::{NonlinearSampleProcessor, OversampledSoftClipper, OversamplingWrapper};
38pub use resample::{PolyphaseResampler, ResampleError, ResampleReport, ResamplerPolicy};
39pub use runtime::{AudioDspLib, audio_dsp_symbols, install_audio_dsp_lib};
40pub use smoothing::{SmoothValue, SmoothedGain};
41
42/// Cookbook recipes for this lib, embedded at build time.
43pub static RECIPES: sim_cookbook::EmbeddedDir =
44    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
45
46#[cfg(test)]
47mod tests;