DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
dspark::AlgorithmicReverb< T >::SmoothRandomLFO Struct Reference

Hermite-interpolated random noise generator for organic modulation. More...

#include <AlgorithmicReverb.h>

Collaboration diagram for dspark::AlgorithmicReverb< T >::SmoothRandomLFO:

Public Member Functions

void prepare (double sr, T rate, uint32_t seed) noexcept
 
void setRate (T rate, double sr) noexcept
 
next () noexcept
 
nextStride (int stride) noexcept
 Advances the LFO by stride samples in one call.
 
void reset () noexcept
 

Public Attributes

h0_ = T(0)
 
h1_ = T(0)
 
h2_ = T(0)
 
h3_ = T(0)
 
phase_ = T(0)
 
phaseInc_ = T(0)
 
uint32_t state_ = 1
 

Detailed Description

template<FloatType T>
struct dspark::AlgorithmicReverb< T >::SmoothRandomLFO

Hermite-interpolated random noise generator for organic modulation.

Generates band-limited random values via cubic Hermite (Catmull-Rom) interpolation between xorshift32 random targets. Produces smooth, non-periodic modulation - the key to Lexicon-quality reverb character.

Definition at line 865 of file AlgorithmicReverb.h.

Member Function Documentation

◆ next()

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::next ( )
inlinenoexcept

Definition at line 886 of file AlgorithmicReverb.h.

◆ nextStride()

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::nextStride ( int  stride)
inlinenoexcept

Advances the LFO by stride samples in one call.

Used by Eco quality to run modulation at control rate: the phase advances by stride * phaseInc_ so the effective LFO frequency is unchanged. Rates are clamped well below 1/stride of the sample rate, so at most one Hermite target is consumed per call.

Definition at line 896 of file AlgorithmicReverb.h.

◆ prepare()

template<FloatType T>
void dspark::AlgorithmicReverb< T >::SmoothRandomLFO::prepare ( double  sr,
rate,
uint32_t  seed 
)
inlinenoexcept

Definition at line 872 of file AlgorithmicReverb.h.

◆ reset()

template<FloatType T>
void dspark::AlgorithmicReverb< T >::SmoothRandomLFO::reset ( )
inlinenoexcept

Definition at line 914 of file AlgorithmicReverb.h.

◆ setRate()

template<FloatType T>
void dspark::AlgorithmicReverb< T >::SmoothRandomLFO::setRate ( rate,
double  sr 
)
inlinenoexcept

Definition at line 881 of file AlgorithmicReverb.h.

Member Data Documentation

◆ h0_

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::h0_ = T(0)

Definition at line 867 of file AlgorithmicReverb.h.

◆ h1_

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::h1_ = T(0)

Definition at line 867 of file AlgorithmicReverb.h.

◆ h2_

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::h2_ = T(0)

Definition at line 867 of file AlgorithmicReverb.h.

◆ h3_

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::h3_ = T(0)

Definition at line 867 of file AlgorithmicReverb.h.

◆ phase_

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::phase_ = T(0)

Definition at line 868 of file AlgorithmicReverb.h.

◆ phaseInc_

template<FloatType T>
T dspark::AlgorithmicReverb< T >::SmoothRandomLFO::phaseInc_ = T(0)

Definition at line 869 of file AlgorithmicReverb.h.

◆ state_

template<FloatType T>
uint32_t dspark::AlgorithmicReverb< T >::SmoothRandomLFO::state_ = 1

Definition at line 870 of file AlgorithmicReverb.h.


The documentation for this struct was generated from the following file: