executeSpecInto method

void executeSpecInto(
  1. Float32List input,
  2. Float32List outBins, {
  3. SpecMode mode = SpecMode.power,
  4. double dbFloor = -120.0,
})

Zero-allocation API: caller provides output storage for the scalar spectrum.

Example:

final outBins = Float32List(plan.bins);
plan.executeSpecInto(frame, outBins, mode: SpecMode.mag);

Implementation

void executeSpecInto(
  Float32List input,
  Float32List outBins, {
  SpecMode mode = SpecMode.power,
  double dbFloor = -120.0,
}) {
  if (outBins.length != bins) {
    throw ArgumentError('outBins length ${outBins.length} != bins $bins');
  }

  final r = res;
  _loadInput(input);
  yl_fft_plan_execute_r2c_spec(r.plan, r.input, r.spec, mode.value, dbFloor);

  outBins.setAll(0, r.spec.asTypedList(bins));
}