Sound Byte Libs 0.5.1-121-g3358a44
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
Loading...
Searching...
No Matches
sbl::dsp::modules::AlgoReverb< ScalePercent > Class Template Reference

Detailed Description

template<uint32_t ScalePercent = 100>
class sbl::dsp::modules::AlgoReverb< ScalePercent >

Definition at line 134 of file plate_reverb.hpp.

#include <plate_reverb.hpp>

Public Member Functions

 AlgoReverb ()=default
 
void init (float *pool, uint32_t pool_size)
 Initialize with a pre-allocated float buffer pool.
 
void set_decay_su (float su)
 Set decay [0,1] → [0, 0.99] linear (structural, 50ms settling)
 
void set_damping_su (float su)
 Set damping [0,1] → [0, 1.0] linear (structural, 50ms settling)
 
void set_predelay_su (float su)
 Set pre-delay [0,1] → [0, max] samples linear (structural, 50ms settling)
 
void set_width_su (float su)
 Set stereo width [0,1] → [0, 1.0] linear (timbral, 20ms settling)
 
void set_mix_su (float su)
 Set wet/dry mix [0,1] → [0, 1.0] linear (gain, 15ms settling)
 
void set_bandwidth_su (float su)
 
void set_tank_hp_su (float su)
 
void set_input_diffusion_su (float su)
 
void set_output_scale_su (float su)
 Set output tap scale [0,1] → [0.001, 1.0] linear (gain, 15ms)
 
float decay () const
 
float damping () const
 
float mix () const
 
float width () const
 
float max_predelay_ms () const
 Maximum pre-delay in milliseconds for this scale.
 
void process (float *left, float *right, uint16_t frames)
 Process a stereo block in-place (float)
 
void reset ()
 

Static Public Attributes

static constexpr uint32_t BUFFER_SIZE
 Total float buffer size required for init()
 

Friends

struct AlgoReverbTestAccess
 

Constructor & Destructor Documentation

◆ AlgoReverb()

template<uint32_t ScalePercent = 100>
sbl::dsp::modules::AlgoReverb< ScalePercent >::AlgoReverb ( )
default

Member Function Documentation

◆ init()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::init ( float *  pool,
uint32_t  pool_size 
)
inline

◆ set_decay_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_decay_su ( float  su)
inline

Set decay [0,1] → [0, 0.99] linear (structural, 50ms settling)

Definition at line 267 of file plate_reverb.hpp.

◆ set_damping_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_damping_su ( float  su)
inline

Set damping [0,1] → [0, 1.0] linear (structural, 50ms settling)

Definition at line 274 of file plate_reverb.hpp.

◆ set_predelay_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_predelay_su ( float  su)
inline

Set pre-delay [0,1] → [0, max] samples linear (structural, 50ms settling)

Definition at line 281 of file plate_reverb.hpp.

◆ set_width_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_width_su ( float  su)
inline

Set stereo width [0,1] → [0, 1.0] linear (timbral, 20ms settling)

Definition at line 288 of file plate_reverb.hpp.

◆ set_mix_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_mix_su ( float  su)
inline

Set wet/dry mix [0,1] → [0, 1.0] linear (gain, 15ms settling)

Definition at line 295 of file plate_reverb.hpp.

◆ set_bandwidth_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_bandwidth_su ( float  su)
inline

Set input bandwidth LP [0,1] → [100, 20000] Hz exponential (structural, 50ms) Exponential mapping is handled by OnePole::set_cutoff_su() using the configured range.

Definition at line 304 of file plate_reverb.hpp.

◆ set_tank_hp_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_tank_hp_su ( float  su)
inline

Set tank HP cutoff [0,1] → [0, 500] Hz (structural, 50ms) su = 0 disables the HP filter. OnePoleHP maps [0,1] exponentially across the configured range.

Definition at line 313 of file plate_reverb.hpp.

◆ set_input_diffusion_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_input_diffusion_su ( float  su)
inline

Set input diffusion [0,1] → d1=[0, 0.95], d2=[0, 0.79] (structural, 50ms) Preserves the Dattorro d2/d1 ratio (0.625/0.75) across the range.

Definition at line 321 of file plate_reverb.hpp.

◆ set_output_scale_su()

template<uint32_t ScalePercent = 100>
void sbl::dsp::modules::AlgoReverb< ScalePercent >::set_output_scale_su ( float  su)
inline

Set output tap scale [0,1] → [0.001, 1.0] linear (gain, 15ms)

Definition at line 329 of file plate_reverb.hpp.

◆ decay()

template<uint32_t ScalePercent = 100>
float sbl::dsp::modules::AlgoReverb< ScalePercent >::decay ( ) const
inline

Definition at line 339 of file plate_reverb.hpp.

◆ damping()

template<uint32_t ScalePercent = 100>
float sbl::dsp::modules::AlgoReverb< ScalePercent >::damping ( ) const
inline

Definition at line 340 of file plate_reverb.hpp.

◆ mix()

template<uint32_t ScalePercent = 100>
float sbl::dsp::modules::AlgoReverb< ScalePercent >::mix ( ) const
inline

Definition at line 341 of file plate_reverb.hpp.

◆ width()

template<uint32_t ScalePercent = 100>
float sbl::dsp::modules::AlgoReverb< ScalePercent >::width ( ) const
inline

Definition at line 342 of file plate_reverb.hpp.

◆ max_predelay_ms()

template<uint32_t ScalePercent = 100>
float sbl::dsp::modules::AlgoReverb< ScalePercent >::max_predelay_ms ( ) const
inline

Maximum pre-delay in milliseconds for this scale.

Definition at line 345 of file plate_reverb.hpp.

References sbl::dsp::types::SAMPLE_RATE_F.

◆ process()

◆ reset()

Friends And Related Symbol Documentation

◆ AlgoReverbTestAccess

template<uint32_t ScalePercent = 100>
friend struct AlgoReverbTestAccess
friend

Definition at line 555 of file plate_reverb.hpp.

Member Data Documentation

◆ BUFFER_SIZE

template<uint32_t ScalePercent = 100>
constexpr uint32_t sbl::dsp::modules::AlgoReverb< ScalePercent >::BUFFER_SIZE
staticconstexpr
Initial value:
=
INPUT_AP1 + INPUT_AP2 + INPUT_AP3 + INPUT_AP4 +
TANK_L_AP1 + (TANK_L_DELAY1 + MOD_MARGIN) +
TANK_L_AP2 + (TANK_L_DELAY2 + MOD_MARGIN) +
TANK_R_AP1 + (TANK_R_DELAY1 + MOD_MARGIN) +
TANK_R_AP2 + (TANK_R_DELAY2 + MOD_MARGIN) +
PREDELAY_MAX

Total float buffer size required for init()

Note
All public methods are ISR-safe — bounded computation, no I/O.

Definition at line 195 of file plate_reverb.hpp.

Referenced by sbl::dsp::modules::AlgoReverb< ScalePercent >::init().


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