Expand description
Reusable audio-engine core.
This crate owns app-agnostic decoder, DSP, and streaming pipeline building blocks. The application/server crate layers playback control, persistence, HTTP/WebSocket routes, and runtime directory handling on top.
§Example
Apply a 10-band graphic equalizer to a block of interleaved stereo audio:
use audio_engine_core::Equalizer;
let sample_rate = 48_000.0;
let mut eq = Equalizer::new(2, sample_rate);
// Boost the lowest band by +6 dB, leave the rest flat.
eq.set_band_gain(0, 6.0, sample_rate);
eq.set_enabled(true);
// Interleaved L/R samples; `process` filters in place.
let mut buffer = vec![0.1_f64; 2 * 512];
eq.process(&mut buffer);See the examples/ directory for runnable resampling and EQ programs.
Re-exports§
pub use config::LoudnessConfig;pub use config::NormalizationMode;pub use decoder::StreamingDecoder;pub use pipeline::AudioPipeline;pub use pipeline::PipelineError;pub use processor::analyze_automix;pub use processor::AtomicLoudnessState;pub use processor::AutomixAnalysis;pub use processor::AutomixAnalysisMode;pub use processor::AutomixAnalysisOptions;pub use processor::Equalizer;pub use processor::FFTConvolver;pub use processor::GainRamp;pub use processor::LoudnessInfo;pub use processor::LoudnessMeter;pub use processor::LoudnessNormalizer;pub use processor::NoiseShaper;pub use processor::PeakLimiter;pub use processor::Resampler;pub use processor::SpectrumAnalyzer;pub use processor::StreamingResampler;pub use processor::TruePeakDetector;pub use processor::VolumeController;pub use processor::DatabaseStats;pub use processor::LoudnessDatabase;pub use processor::TrackLoudness;pub use processor::CURRENT_SCAN_VERSION;