Skip to main content

rill_core_dsp/
lib.rs

1// rill-core-dsp/src/lib.rs
2//! # Rill Core DSP
3//!
4//! Ядро DSP-абстракций для Rill.
5//!
6//! ## Особенности
7//! - Полная параметризация типами (f32/f64) через `Transcendental`
8//! - RT-safe буферы с const generics (стабильная фича)
9//! - Базовые алгоритмы (Delay, Biquad, и т.д.)
10//! - Макросы для генерации узлов
11
12#![warn(missing_docs)]
13#![deny(unsafe_code)]
14// Для сложных const expr (опционально)
15#![cfg_attr(feature = "unstable", feature(generic_const_exprs))]
16
17pub mod algorithm;
18pub mod context;
19pub mod filters;
20pub mod generators;
21pub mod mapping;
22pub mod math;
23pub mod smoothing;
24pub mod vector;
25
26#[macro_use]
27pub mod macros;
28
29// Re-exports
30pub use algorithm::{Algorithm, AlgorithmCategory, AlgorithmMetadata, ParameterizedAlgorithm};
31pub use context::DspContext;
32pub use filters::{Filter, FilterParams, FilterType};
33pub use generators::{
34    EnvelopeGenerator, Generator, InterpolatedReader, LoopMode, NoiseGenerator,
35    SamplePlayer, LFO, WavetableOscillator,
36};
37
38/// Prelude для удобного импорта
39pub mod prelude {
40    pub use crate::algorithm::{
41        Algorithm, AlgorithmCategory, AlgorithmMetadata, ParameterizedAlgorithm,
42    };
43    pub use crate::context::DspContext;
44    pub use crate::filters::{Filter, FilterParams, FilterType};
45    pub use crate::generators::{
46        EnvelopeGenerator, Generator, InterpolatedReader, LoopMode, NoiseGenerator,
47        SamplePlayer, LFO, WavetableOscillator,
48    };
49    pub use crate::macros::prelude::*;
50    pub use crate::mapping::{ControlMapper, MappingStrategy};
51    pub use crate::math::*;
52    pub use crate::smoothing::ParamSmoother;
53    pub use crate::vector::prelude::*;
54}