resampleLinear function

Float32List resampleLinear(
  1. Float32List input,
  2. int inRate,
  3. int outRate
)

Implementation

Float32List resampleLinear(Float32List input, int inRate, int outRate) {
  if (inRate == outRate) return input;
  final ratio = inRate / outRate;
  final out = Float32List((input.length / ratio).round());
  for (var i = 0; i < out.length; i++) {
    final pos = i * ratio;
    final idx = pos.floor();
    final frac = pos - idx;
    final a = idx < input.length ? input[idx] : 0.0;
    final b = idx + 1 < input.length ? input[idx + 1] : 0.0;
    out[i] = a + frac * (b - a);
  }
  return out;
}