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

#include <JPLSpatial/Auralization/EarlyReflectionsBus.h>

Classes

struct  ERUpdateData
 

Public Member Functions

 ERBus ()
 
 ERBus (float sampleRate, uint32 numChannels)
 
 ~ERBus ()
 
void Prepare (float sampleRate, uint32 numChannels)
 Must be called from single non-audio thread.
 
void ProcessInterleaved (std::span< const float > input, std::span< float > output, uint32 numInputChannels, uint32 numFrames)
 
uint32 GetNumChannels () const
 
void SetTaps (std::span< const ERUpdateData > newERs)
 Must be called from the same non-audio thread.
 
uint32 GetNumTaps () const
 

Detailed Description

Early Reflection Bus transfering ER data to audio rendering thread. It uses its own delay line with at least 2 seconds buffer space and performs rendering of early reflection using interpolating delay line taps, simulating propagation delay, applying pan and propagation filtering. The memory is managed by internal memory pool and default global JPL PMR allocator.

Constructor & Destructor Documentation

◆ ERBus() [1/2]

JPL::ERBus::ERBus ( )

◆ ERBus() [2/2]

JPL::ERBus::ERBus ( float  sampleRate,
uint32  numChannels 
)

◆ ~ERBus()

JPL::ERBus::~ERBus ( )

Member Function Documentation

◆ GetNumChannels()

uint32 JPL::ERBus::GetNumChannels ( ) const
inline

◆ GetNumTaps()

uint32 JPL::ERBus::GetNumTaps ( ) const
inline

◆ Prepare()

void JPL::ERBus::Prepare ( float  sampleRate,
uint32  numChannels 
)

Must be called from single non-audio thread.

◆ ProcessInterleaved()

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

Must be called from audio thread

Parameters
numInputChannels: number of input channels, number of output channels in the output buffer must be equal to what ERBus was initialized to.

@input and @output must have the same nubmer of frames

◆ SetTaps()

void JPL::ERBus::SetTaps ( std::span< const ERUpdateData newERs)

Must be called from the same non-audio thread.


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