int process()

in pedalboard/plugin_templates/Resample.h [185:236]


  int process(double speedRatio, const float *inputSamples,
              float *outputSamples, int numOutputSamplesToProduce) noexcept {
    // Unfortunately, std::visit cannot be used here due to macOS version
    // issues: https://stackoverflow.com/q/52310835/679081
    if (auto *i =
            std::get_if<juce::Interpolators::ZeroOrderHold>(&interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i =
                   std::get_if<juce::Interpolators::Linear>(&interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::Interpolators::CatmullRom>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i =
                   std::get_if<juce::Interpolators::Lagrange>(&interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::Interpolators::WindowedSinc>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::FastInterpolators::WindowedSinc256>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::FastInterpolators::WindowedSinc128>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::FastInterpolators::WindowedSinc64>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::FastInterpolators::WindowedSinc32>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::FastInterpolators::WindowedSinc16>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else if (auto *i = std::get_if<juce::FastInterpolators::WindowedSinc8>(
                   &interpolator)) {
      return i->process(speedRatio, inputSamples, outputSamples,
                        numOutputSamplesToProduce);
    } else {
      throw std::runtime_error("Unknown resampler quality!");
    }
  }