Function resample

Source
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 of f32
  • orig_sr - Original sample rate in Hz
  • target_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_sr equals target_sr, returns a clone of the input samples.
  • If samples is 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();