|
JPL Spatial
Sound spatialization and propagation library
|
#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) |
Multi-channel reverb processing bus implementing a feedback delay network (FDN) with four-band attenuation filters for dynamic RT60 control.
|
default |
|
defaultnoexcept |
| 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().
| sampleRate | sampling rate of the process block |
| splits | split frequencies for the attenuation decay crossover filter |
| 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().
| input | Interleaved input. Multichannel input is mixed down to mono before entering the FDN. |
| output | Interleaved output buffer. |
| numFrames | Number of frames in both buffers. Input and output channel counts are inferred from each buffer's size. |
| 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().
| 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().