OpenWareLaboratory
InterpolatedCompositeTransform< matrix_order > Class Template Reference

This class calculates transformation matrix once per audio block just like the CompositeTemplate. More...

Inheritance diagram for InterpolatedCompositeTransform< matrix_order >:
Collaboration diagram for InterpolatedCompositeTransform< matrix_order >:

Public Member Functions

void computeMatrix ()
 
FloatMatrix getMatrix ()
 
 InterpolatedCompositeTransform (FloatMatrix matrix, FloatMatrix prev_matrix, FloatMatrix delta_matrix, size_t num_transforms, MatrixType **transforms)
 
ComplexFloat process (ComplexFloat input)
 
virtual ComplexFloat process (ComplexFloat input)=0
 
void process (ComplexFloatArray input, ComplexFloatArray output)
 
void resetMatrix ()
 

Static Public Member Functions

static InterpolatedCompositeTransform< matrix_order > * create ()
 
template<typename... Transforms>
static InterpolatedCompositeTransformcreate (Transforms *... transform_ptrs)
 
static void destroy (InterpolatedCompositeTransform *transform)
 

Static Protected Member Functions

static void setTransform (MatrixType **transforms, size_t position)
 
template<typename... Transforms>
static void setTransform (MatrixType **transforms, size_t position, MatrixType *transform, Transforms *... transform_ptrs)
 

Protected Attributes

FloatMatrix delta_matrix
 
size_t num_transforms
 
FloatMatrix prev_matrix
 
MatrixType ** transforms
 

Detailed Description

template<size_t matrix_order>
class InterpolatedCompositeTransform< matrix_order >

This class calculates transformation matrix once per audio block just like the CompositeTemplate.

In addition to that it calculates second matrix with delta values used to smoothly interpolate between matrix states at audio rate. This adds one matrix addition per sample

Definition at line 277 of file ComplexTransform.h.

Constructor & Destructor Documentation

◆ InterpolatedCompositeTransform()

template<size_t matrix_order>
InterpolatedCompositeTransform< matrix_order >::InterpolatedCompositeTransform ( FloatMatrix  matrix,
FloatMatrix  prev_matrix,
FloatMatrix  delta_matrix,
size_t  num_transforms,
MatrixType **  transforms 
)
inline

Member Function Documentation

◆ computeMatrix()

◆ create() [1/2]

static InterpolatedCompositeTransform< matrix_order > * TransformationMatrix< matrix_order, InterpolatedCompositeTransform< matrix_order > >::create ( )
inlinestaticinherited

Definition at line 63 of file ComplexTransform.h.

◆ create() [2/2]

◆ destroy()

◆ getMatrix()

◆ process() [1/3]

ComplexFloat TransformationMatrix< matrix_order, InterpolatedCompositeTransform< matrix_order > >::process ( ComplexFloat  input)
inlinevirtualinherited

Implements ComplexSignalProcessor.

Definition at line 41 of file ComplexTransform.h.

◆ process() [2/3]

virtual ComplexFloat ComplexSignalProcessor::process
inherited

◆ process() [3/3]

◆ resetMatrix()

template<size_t matrix_order>
void AbstractMatrix< matrix_order >::resetMatrix ( )
inlineinherited

◆ setTransform() [1/2]

template<size_t matrix_order>
static void InterpolatedCompositeTransform< matrix_order >::setTransform ( MatrixType **  transforms,
size_t  position 
)
inlinestaticprotected

Definition at line 347 of file ComplexTransform.h.

◆ setTransform() [2/2]

template<size_t matrix_order>
template<typename... Transforms>
static void InterpolatedCompositeTransform< matrix_order >::setTransform ( MatrixType **  transforms,
size_t  position,
MatrixType transform,
Transforms *...  transform_ptrs 
)
inlinestaticprotected

Field Documentation

◆ delta_matrix

◆ num_transforms

template<size_t matrix_order>
size_t InterpolatedCompositeTransform< matrix_order >::num_transforms
protected

◆ prev_matrix

◆ transforms


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