in pedalboard/plugin_templates/Resample.h [802:874]
inline void init_resample_with_latency(py::module &m) {
py::class_<Resample<AddLatency, float>, Plugin,
std::shared_ptr<Resample<AddLatency, float>>>(
m, "ResampleWithLatency")
.def(py::init([](float targetSampleRate, int internalLatency,
ResamplingQuality quality) {
auto plugin = std::make_unique<Resample<AddLatency, float>>();
plugin->setTargetSampleRate(targetSampleRate);
plugin->getNestedPlugin().getDSP().setMaximumDelayInSamples(
internalLatency);
plugin->getNestedPlugin().getDSP().setDelay(internalLatency);
plugin->setQuality(quality);
return plugin;
}),
py::arg("target_sample_rate") = 8000.0,
py::arg("internal_latency") = 1024,
py::arg("quality") = ResamplingQuality::WindowedSinc32)
.def("__repr__",
[](Resample<AddLatency, float> &plugin) {
std::ostringstream ss;
ss << "<pedalboard.ResampleWithLatency";
ss << " target_sample_rate=" << plugin.getTargetSampleRate();
ss << " internal_latency="
<< plugin.getNestedPlugin().getDSP().getDelay();
ss << " quality=";
switch (plugin.getQuality()) {
case ResamplingQuality::ZeroOrderHold:
ss << "ZeroOrderHold";
break;
case ResamplingQuality::Linear:
ss << "Linear";
break;
case ResamplingQuality::CatmullRom:
ss << "CatmullRom";
break;
case ResamplingQuality::Lagrange:
ss << "Lagrange";
break;
case ResamplingQuality::WindowedSinc:
ss << "WindowedSinc";
break;
case ResamplingQuality::WindowedSinc256:
ss << "WindowedSinc256";
break;
case ResamplingQuality::WindowedSinc128:
ss << "WindowedSinc128";
break;
case ResamplingQuality::WindowedSinc64:
ss << "WindowedSinc64";
break;
case ResamplingQuality::WindowedSinc32:
ss << "WindowedSinc32";
break;
case ResamplingQuality::WindowedSinc16:
ss << "WindowedSinc16";
break;
case ResamplingQuality::WindowedSinc8:
ss << "WindowedSinc8";
break;
default:
ss << "unknown";
break;
}
ss << " at " << &plugin;
ss << ">";
return ss.str();
})
.def_property("target_sample_rate",
&Resample<AddLatency, float>::getTargetSampleRate,
&Resample<AddLatency, float>::setTargetSampleRate)
.def_property("quality", &Resample<AddLatency, float>::getQuality,
&Resample<AddLatency, float>::setQuality);
}