Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
spectral_gate_blur.hpp File Reference

Allocation-free frame-domain spectral gate and bounded temporal blur. More...

#include <pulp/signal/checked_allocation.hpp>
#include <algorithm>
#include <cmath>
#include <complex>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

class  pulp::signal::SpectralGateT< SampleType >
class  pulp::signal::SpectralFrameBlurT< SampleType >

Namespaces

namespace  pulp
namespace  pulp::signal

Typedefs

using pulp::signal::SpectralGate = SpectralGateT<float>
using pulp::signal::SpectralGate64 = SpectralGateT<double>
using pulp::signal::SpectralFrameBlur = SpectralFrameBlurT<float>
using pulp::signal::SpectralFrameBlur64 = SpectralFrameBlurT<double>

Detailed Description

Allocation-free frame-domain spectral gate and bounded temporal blur.

These processors operate on the one-sided complex frames emitted by SpectralFrameEngineT; they deliberately do not own or duplicate an FFT. The gate compares every bin independently with either one scalar magnitude threshold or a caller-owned threshold curve. The blur is a causal finite moving average of bin magnitudes and retains the current non-zero phase (or the last finite phase while a bin decays). A finite complex bin whose mathematical magnitude exceeds SampleType saturates to its maximum finite magnitude without changing phase. Both processors modify frames in place.