Skip to main content

Crate audio_engine_core

Crate audio_engine_core 

Source
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;

Modules§

config
decoder
Streaming decoder facade.
diagnostics
pipeline
Streaming Audio Pipeline
processor
Audio Processor Module
runtime