MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ apply_trapezoid()

MAYAFLUX_API void MayaFlux::Kinesis::Discrete::apply_trapezoid ( std::span< double >  data,
size_t  fade_len 
)
noexcept

Apply a trapezoid taper in-place without materialising coefficients.

Parameters
dataTarget span (modified in place)
fade_lenRamp length in samples at each end

Definition at line 146 of file Taper.cpp.

147{
148 const size_t n = data.size();
149 if (n == 0)
150 return;
151 const size_t ramp = std::min(fade_len, n / 2);
152 for (size_t i = 0; i < ramp; ++i) {
153 const double r = static_cast<double>(i) / static_cast<double>(ramp);
154 data[i] *= r;
155 data[n - 1 - i] *= r;
156 }
157}