pub fn resample(
samples: &[f32],
orig_sr: u32,
target_sr: u32,
) -> Result<Vec<f32>, AudioError>Expand description
Resamples audio data from one sample rate to another using sinc interpolation.
§Arguments
samples- Input audio samples as a slice off32orig_sr- Original sample rate in Hztarget_sr- Target sample rate in Hz
§Returns
Returns a Result containing a Vec<f32> with the resampled audio data,
or an AudioError if resampling fails.
§Errors
AudioError::ResampleError(ResampleError::RubatoError)- If resampler initialization or processing fails.
§Notes
- If
orig_srequalstarget_sr, returns a clone of the input samples. - If
samplesis empty, returns an empty vector. - Uses sinc interpolation with fixed input length, Blackman-Harris window, and linear interpolation.
§Examples
let samples = vec![0.1, 0.2, 0.3, 0.4];
let resampled = resample(&samples, 44100, 22050).unwrap();