OpenWareLaboratory
InterpolatingSignalGenerator< im > Class Template Reference

Signal Generator that generates an arbitrary number of in-between points, interpolated between two (linear, cosine) or more (cubic, hermite) reference points. More...

Collaboration diagram for InterpolatingSignalGenerator< im >:

Public Member Functions

InterpolatingSignalGenerator< NO_INTERPOLATION > * create ()
 
InterpolatingSignalGenerator< LINEAR_INTERPOLATION > * create ()
 
InterpolatingSignalGenerator< COSINE_INTERPOLATION > * create ()
 
InterpolatingSignalGenerator< CUBIC_3P_INTERPOLATION > * create ()
 
InterpolatingSignalGenerator< CUBIC_4P_INTERPOLATION > * create ()
 
InterpolatingSignalGenerator< CUBIC_4P_SMOOTH_INTERPOLATION > * create ()
 
InterpolatingSignalGenerator< HERMITE_INTERPOLATION > * create ()
 
float generate ()
 
float generate ()
 
float generate ()
 
float generate ()
 
float generate ()
 
float generate ()
 
float generate ()
 
float generate ()
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
void generate (FloatArray output)
 
float getPeriod ()
 Get period in samples. More...
 
 InterpolatingSignalGenerator (CircularFloatBuffer *points)
 
void set (float x)
 Reset interpolator to a fixed value. More...
 
void setPeriod (float period)
 Set period in samples. More...
 
void update (float x)
 Update the interpolator with a new reference point. More...
 

Static Public Member Functions

static InterpolatingSignalGenerator< im > * create ()
 
static InterpolatingSignalGenerator< im > * create (size_t period)
 
static void destroy (InterpolatingSignalGenerator< im > *obj)
 

Static Protected Member Functions

static InterpolatingSignalGenerator< im > * allocate (size_t len)
 

Protected Attributes

float inc = 0
 
float mu = 0
 
CircularFloatBufferpoints
 

Detailed Description

template<InterpolationMethod im = LINEAR_INTERPOLATION>
class InterpolatingSignalGenerator< im >

Signal Generator that generates an arbitrary number of in-between points, interpolated between two (linear, cosine) or more (cubic, hermite) reference points.

Can be used e.g. to convert a block rate signal to audio rate.

Definition at line 15 of file InterpolatingSignalGenerator.h.

Constructor & Destructor Documentation

◆ InterpolatingSignalGenerator()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
InterpolatingSignalGenerator< im >::InterpolatingSignalGenerator ( CircularFloatBuffer points)
inline

Definition at line 25 of file InterpolatingSignalGenerator.h.

Member Function Documentation

◆ allocate()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
static InterpolatingSignalGenerator<im>* InterpolatingSignalGenerator< im >::allocate ( size_t  len)
inlinestaticprotected

◆ create() [1/9]

template<InterpolationMethod im = LINEAR_INTERPOLATION>
static InterpolatingSignalGenerator<im>* InterpolatingSignalGenerator< im >::create ( )
static

◆ create() [2/9]

◆ create() [3/9]

◆ create() [4/9]

◆ create() [5/9]

◆ create() [6/9]

◆ create() [7/9]

◆ create() [8/9]

◆ create() [9/9]

template<InterpolationMethod im = LINEAR_INTERPOLATION>
static InterpolatingSignalGenerator<im>* InterpolatingSignalGenerator< im >::create ( size_t  period)
inlinestatic

◆ destroy()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
static void InterpolatingSignalGenerator< im >::destroy ( InterpolatingSignalGenerator< im > *  obj)
inlinestatic

◆ generate() [1/16]

template<InterpolationMethod im = LINEAR_INTERPOLATION>
float InterpolatingSignalGenerator< im >::generate ( )

◆ generate() [2/16]

Definition at line 70 of file InterpolatingSignalGenerator.h.

◆ generate() [3/16]

Definition at line 81 of file InterpolatingSignalGenerator.h.

References Interpolator::linear().

◆ generate() [4/16]

Definition at line 110 of file InterpolatingSignalGenerator.h.

References Interpolator::cosine().

◆ generate() [5/16]

◆ generate() [6/16]

◆ generate() [7/16]

◆ generate() [8/16]

◆ generate() [9/16]

template<InterpolationMethod im = LINEAR_INTERPOLATION>
void InterpolatingSignalGenerator< im >::generate ( FloatArray  output)

◆ generate() [10/16]

Definition at line 65 of file InterpolatingSignalGenerator.h.

References FloatArray::setAll().

◆ generate() [11/16]

◆ generate() [12/16]

◆ generate() [13/16]

◆ generate() [14/16]

◆ generate() [15/16]

◆ generate() [16/16]

◆ getPeriod()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
float InterpolatingSignalGenerator< im >::getPeriod ( )
inline

Get period in samples.

Definition at line 31 of file InterpolatingSignalGenerator.h.

References InterpolatingSignalGenerator< im >::inc.

◆ set()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
void InterpolatingSignalGenerator< im >::set ( float  x)
inline

Reset interpolator to a fixed value.

Sets all reference points to x.

Definition at line 46 of file InterpolatingSignalGenerator.h.

References InterpolatingSignalGenerator< im >::mu, InterpolatingSignalGenerator< im >::points, and CircularBuffer< DataType, IndexType >::setAll().

◆ setPeriod()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
void InterpolatingSignalGenerator< im >::setPeriod ( float  period)
inline

Set period in samples.

Definition at line 27 of file InterpolatingSignalGenerator.h.

References InterpolatingSignalGenerator< im >::inc.

Referenced by InterpolatingSignalGenerator< im >::create().

◆ update()

template<InterpolationMethod im = LINEAR_INTERPOLATION>
void InterpolatingSignalGenerator< im >::update ( float  x)
inline

Update the interpolator with a new reference point.

update() must be called once every period.

Definition at line 38 of file InterpolatingSignalGenerator.h.

References InterpolatingSignalGenerator< im >::mu, InterpolatingSignalGenerator< im >::points, and CircularBuffer< DataType, IndexType >::write().

Field Documentation

◆ inc

template<InterpolationMethod im = LINEAR_INTERPOLATION>
float InterpolatingSignalGenerator< im >::inc = 0
protected

◆ mu

template<InterpolationMethod im = LINEAR_INTERPOLATION>
float InterpolatingSignalGenerator< im >::mu = 0
protected

◆ points


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