JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::ReverbBus Class Reference

#include <JPLSpatial/Auralization/LateReverb.h>

Public Member Functions

 ReverbBus ()=default
 
 ~ReverbBus () noexcept=default
 
void SetRT60 (const simd &newRT60Seconds)
 
void SetDecaySlope (const simd &newDecaySlope)
 
void Prepare (float sampleRate, const SplitFrequencies &splits={})
 
void ProcessInterleaved (std::span< const float > input, std::span< float > output, uint32 numFrames)
 

Detailed Description

Multi-channel reverb processing bus implementing a feedback delay network (FDN) with four-band attenuation filters for dynamic RT60 control.

Constructor & Destructor Documentation

◆ ReverbBus()

JPL::ReverbBus::ReverbBus ( )
default

◆ ~ReverbBus()

JPL::ReverbBus::~ReverbBus ( )
defaultnoexcept

Member Function Documentation

◆ Prepare()

void JPL::ReverbBus::Prepare ( float sampleRate,
const SplitFrequencies & splits = {} )

Prepare FDN and filters for processing. Must be called from a single non-audio thread before the audio thread begins calling ProcessInterleaved().

Parameters
sampleRatesampling rate of the process block
splitssplit frequencies for the attenuation decay crossover filter

◆ ProcessInterleaved()

void JPL::ReverbBus::ProcessInterleaved ( std::span< const float > input,
std::span< float > output,
uint32 numFrames )

Process interleaved block of samples, producing interleaved output. Real-time safe. May be called from one audio thread after Prepare().

Parameters
inputInterleaved input. Multichannel input is mixed down to mono before entering the FDN.
outputInterleaved output buffer.
numFramesNumber of frames in both buffers. Input and output channel counts are inferred from each buffer's size.

◆ SetDecaySlope()

void JPL::ReverbBus::SetDecaySlope ( const simd & newDecaySlope)

Set reverberation time in four frequency bands as decay slope -dB/s. Must be called from a single non-audio thread. May run concurrently with ProcessInterleaved().

◆ SetRT60()

void JPL::ReverbBus::SetRT60 ( const simd & newRT60Seconds)

Set reverberation time in four frequency bands as per split frequencies set in Prepare() Must be called from a single non-audio thread. May run concurrently with ProcessInterleaved().


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