pub fn normalize(
samples: &mut [f32],
config: NormalizationConfig,
sample_rate: f32,
) -> Result<LoudnessMetadata, AnalysisError>Expand description
Normalize audio samples
§Arguments
samples- Audio samples to normalize (modified in-place)config- Normalization configurationsample_rate- Sample rate in Hz (required for LUFS method)
§Returns
LoudnessMetadata containing loudness information and applied gain
§Errors
Returns AnalysisError if normalization fails (empty samples, invalid config, etc.)
§Example
use stratum_dsp::preprocessing::normalization::{
normalize, NormalizationConfig, NormalizationMethod
};
let mut samples = vec![0.5f32; 44100];
let config = NormalizationConfig {
method: NormalizationMethod::Peak,
target_loudness_lufs: -14.0,
max_headroom_db: 1.0,
};
let metadata = normalize(&mut samples, config, 44100.0)?;
println!("Applied gain: {:.2} dB", metadata.gain_db);