VISR  0.11.6
Versatile Interactive Scene Renderer
visr::rbbl::FIR Class Reference

#include <fir.hpp>

Public Types

using Afloat = float
 

Public Member Functions

 FIR ()
 
int setNumFIRs (int n)
 
int setNumFIRsamples (int n)
 
int setUpsampleRatio (int n)
 
void loadFIRs (efl::BasicMatrix< Afloat > const &filterCoeffs)
 
int createWhiteTristateFIRs (Afloat density)
 
int process (Afloat const *in, Afloat *const *out)
 

Static Public Attributes

static const int nBlockSamples = 64
 
static const int maxnFIRs = 64
 
static const int maxnFIRblocks = 32
 
static const int maxnFIRsamples = nBlockSamples*maxnFIRblocks
 
static const int nBufferSamples = nBlockSamples*(maxnFIRblocks+1)
 

Member Typedef Documentation

◆ Afloat

using visr::rbbl::FIR::Afloat = float

Local typedef for the sample type used in the filter.

Constructor & Destructor Documentation

◆ FIR()

visr::rbbl::FIR::FIR ( )

Member Function Documentation

◆ createWhiteTristateFIRs()

int visr::rbbl::FIR::createWhiteTristateFIRs ( Afloat  density)

Better to ensure fixed number of non-zero samples per FIR

◆ loadFIRs()

void visr::rbbl::FIR::loadFIRs ( efl::BasicMatrix< Afloat > const &  filterCoeffs)

Load the filter coefficients from a matrix.

Parameters
filterCoeffsMatrix of filter coefficients with m_nFirs rows and m_nFIRsamples columns.
Exceptions
std::invalid_argumentif the matrix dimensions do not match the settings of the filter.

◆ process()

int visr::rbbl::FIR::process ( Afloat const *  in,
Afloat *const *  out 
)

◆ setNumFIRs()

int visr::rbbl::FIR::setNumFIRs ( int  n)
inline

◆ setNumFIRsamples()

int visr::rbbl::FIR::setNumFIRsamples ( int  n)
inline

◆ setUpsampleRatio()

int visr::rbbl::FIR::setUpsampleRatio ( int  n)
inline

Member Data Documentation

◆ maxnFIRblocks

const int visr::rbbl::FIR::maxnFIRblocks = 32
static
Note
This constant is just used to calculate the buffer sizes, but never set or checked. IMHO, it is always identical to the total length of the FIR filter (which is not required to be an integer multiple of the block length)

◆ maxnFIRs

const int visr::rbbl::FIR::maxnFIRs = 64
static

◆ maxnFIRsamples

const int visr::rbbl::FIR::maxnFIRsamples = nBlockSamples*maxnFIRblocks
static

◆ nBlockSamples

const int visr::rbbl::FIR::nBlockSamples = 64
static
Note
This shouldn't be a constant.

◆ nBufferSamples

const int visr::rbbl::FIR::nBufferSamples = nBlockSamples*(maxnFIRblocks+1)
static

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