Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount > Class Template Reference

Fixed-depth linear-phase half-band oversampling around a per-sample callback. More...

#include <hysteresis.hpp>

Public Member Functions

void prepare ()
void reset () noexcept
template<typename Callback>
double process (double x, Callback &&callback)

Static Public Member Functions

static constexpr int oversampling_factor () noexcept
static int latency_samples () noexcept
 Group delay of the complete up/down cascade, in host samples.

Detailed Description

template<std::size_t StageCount>
class pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount >

Fixed-depth linear-phase half-band oversampling around a per-sample callback.

Each stage doubles the rate using the house 65-tap / Kaiser β ≈ 8 design. The cascade's group delay is a fixed integer number of host samples, which is exactly what lets the module keep latency_samples() == 0: the constant is subtracted from the delay line's read distance instead of being reported to the host, so echo timing stays right and the loop's total delay is unchanged.

Member Function Documentation

◆ latency_samples()

template<std::size_t StageCount>
int pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount >::latency_samples ( )
inlinestaticnoexcept

Group delay of the complete up/down cascade, in host samples.

◆ oversampling_factor()

template<std::size_t StageCount>
constexpr int pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount >::oversampling_factor ( )
inlinestaticconstexprnoexcept

◆ prepare()

template<std::size_t StageCount>
void pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount >::prepare ( )
inline

◆ process()

template<std::size_t StageCount>
template<typename Callback>
double pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount >::process ( double x,
Callback && callback )
inline

◆ reset()

template<std::size_t StageCount>
void pulp::signal::chardelay::HysteresisHalfBandOversampler< StageCount >::reset ( )
inlinenoexcept

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/character_delay/hysteresis.hpp