Deluge Firmware 1.3.0
Build date: 2026.10.14
Loading...
Searching...
No Matches
deluge::dsp::reverb::FxEngine Class Reference
Collaboration diagram for deluge::dsp::reverb::FxEngine:

Classes

class  Context
struct  DelayLine
struct  AllPass

Public Member Functions

 FxEngine (std::span< float > signal, std::array< float, 2 > lfo_freqs)
void Clear ()
void SetLFOFrequency (LFOIndex index, float frequency)
void Advance ()
float & at (size_t index)
float LFO (LFOIndex lfo)

Static Public Member Functions

static void ConstructTopology (FxEngine &e, std::initializer_list< DelayLine * > delays)

Static Public Attributes

static constexpr float kLFOStride = 32.0f

Private Member Functions

void StepLFO ()

Private Attributes

int32_t write_ptr_ = 0
std::span< float > buffer_
DualCosineOscillator lfo_
size_t mask

Member Function Documentation

◆ LFO()

float deluge::dsp::reverb::FxEngine::LFO ( LFOIndex lfo)
inline

Reads the current value; stepping is Advance()'s job, so that a topology with several modulated delay lines still only advances the oscillators once per frame.

Member Data Documentation

◆ kLFOStride

float deluge::dsp::reverb::FxEngine::kLFOStride = 32.0f
staticconstexpr

The LFOs only step once every 32 frames, so a configured frequency has to be scaled up to compensate. Skip this and the normalised frequency stays small enough that the approximate cosine's 2 - 32f^2 coefficient rounds to exactly 2.0f – at which point both lanes collapse onto one much slower oscillation and the modulation stops being two independent voices.


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