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

◆ apply_trapezoid()

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 122 of file Taper.cpp.

123{
124 const size_t n = data.size();
125 if (n == 0)
126 return;
127 const size_t ramp = std::min(fade_len, n / 2);
128 for (size_t i = 0; i < ramp; ++i) {
129 const double r = static_cast<double>(i) / static_cast<double>(ramp);
130 data[i] *= r;
131 data[n - 1 - i] *= r;
132 }
133}