pub fn normalize(
signal: &AudioData,
target: f32,
mode: &str,
) -> Result<AudioData, AmplitudeError>Expand description
Normalizes an audio signal to a target peak or RMS level.
This function scales the signal so its peak amplitude or RMS (root mean square) level matches the target value. Useful for ensuring consistent loudness.
§Arguments
signal- The input audio signal.target- The target level (e.g., 1.0 for full scale).mode- “peak” for peak normalization, “rms” for RMS normalization.
§Returns
Returns Result<AudioData, AmplitudeError> containing the normalized signal or an error.
§Examples
let signal = AudioData { samples: vec![0.5, 1.0, 0.5], sample_rate: 44100, channels: 1 };
let normalized = normalize(&signal, 1.0, "peak")?;
assert_eq!(normalized.samples, vec![0.5, 1.0, 0.5]); // Already at peak 1.0
let signal = AudioData { samples: vec![0.2, 0.4, 0.2], sample_rate: 44100, channels: 1 };
let normalized = normalize(&signal, 1.0, "peak")?;
assert_eq!(normalized.samples, vec![0.5, 1.0, 0.5]); // Scaled to peak 1.0