Cinder  0.9.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cinder::audio::WaveTable2d Class Reference

#include <WaveTable.h>

Inherits cinder::audio::WaveTable.

Public Member Functions

 WaveTable2d (size_t sampleRate, size_t tableSize, size_t numTables)
 
void resize (size_t tableSize, size_t numTables)
 
void fillBandlimited (WaveformType type)
 
float lookupBandlimited (float phase, float f0) const
 
float lookupBandlimited (float *outputArray, size_t outputLength, float currentPhase, float f0) const
 
float lookupBandlimited (float *outputArray, size_t outputLength, float currentPhase, const float *f0Array) const
 
void copyTo (float *array, size_t tableIndex) const
 
void copyFrom (const float *array, size_t tableIndex)
 
float calcBandlimitedTableIndex (float f0) const
 
size_t getNumTables () const
 
void resize (size_t tableSize)
 
void fillSine ()
 
void setSampleRate (size_t sampleRate)
 
size_t getSampleRate () const
 
size_t getTableSize () const
 
float lookup (float phase) const
 
float lookup (float *outputArray, size_t outputLength, float currentPhase, float freq) const
 
float lookup (float *outputArray, size_t outputLength, float currentPhase, const float *freqArray) const
 
void copyTo (float *array) const
 
void copyFrom (const float *array)
 

Protected Member Functions

void calcLimits ()
 
void fillBandLimitedTable (WaveformType type, float *table, size_t numPartials)
 
size_t getMaxHarmonicsForTable (size_t tableIndex) const
 
const float * getBandLimitedTable (float f0) const
 
std::tuple< const float *, const float *, float > getBandLimitedTablesLerp (float f0) const
 
void fillSinesum (float *array, size_t length, const std::vector< float > &partialCoeffs)
 

Protected Attributes

size_t mNumTables
 
float mMinMidiRange
 
float mMaxMidiRange
 
size_t mSampleRate
 
size_t mTableSize
 
float mSamplePeriod
 
BufferDynamic mBuffer
 

Detailed Description

Manages an array of tables that is used for bandlimited wavetable synthesis. Supports table lookup with linear interpolation.

Constructor & Destructor Documentation

cinder::audio::WaveTable2d::WaveTable2d ( size_t  sampleRate,
size_t  tableSize,
size_t  numTables 
)

Member Function Documentation

void cinder::audio::WaveTable2d::resize ( size_t  tableSize,
size_t  numTables 
)

Adjusts the parameters effecting table size and calculate.

Note
This does not update the data, call fill() afterwards to refresh the table contents.
void cinder::audio::WaveTable2d::fillBandlimited ( WaveformType  type)
float cinder::audio::WaveTable2d::lookupBandlimited ( float  phase,
float  f0 
) const
float cinder::audio::WaveTable2d::lookupBandlimited ( float *  outputArray,
size_t  outputLength,
float  currentPhase,
float  f0 
) const
float cinder::audio::WaveTable2d::lookupBandlimited ( float *  outputArray,
size_t  outputLength,
float  currentPhase,
const float *  f0Array 
) const
void cinder::audio::WaveTable2d::copyTo ( float *  array,
size_t  tableIndex 
) const
void cinder::audio::WaveTable2d::copyFrom ( const float *  array,
size_t  tableIndex 
)
float cinder::audio::WaveTable2d::calcBandlimitedTableIndex ( float  f0) const
size_t cinder::audio::WaveTable2d::getNumTables ( ) const
void cinder::audio::WaveTable2d::calcLimits ( )
protected
void cinder::audio::WaveTable2d::fillBandLimitedTable ( WaveformType  type,
float *  table,
size_t  numPartials 
)
protected
size_t cinder::audio::WaveTable2d::getMaxHarmonicsForTable ( size_t  tableIndex) const
protected
const float * cinder::audio::WaveTable2d::getBandLimitedTable ( float  f0) const
protected
std::tuple< const float *, const float *, float > cinder::audio::WaveTable2d::getBandLimitedTablesLerp ( float  f0) const
protected
void cinder::audio::WaveTable::resize ( size_t  tableSize)
inherited
void cinder::audio::WaveTable::fillSine ( )
inherited
void cinder::audio::WaveTable::setSampleRate ( size_t  sampleRate)
inherited

Does not update data, lookup will be inaccurate until next fill.

size_t cinder::audio::WaveTable::getSampleRate ( ) const
inherited
size_t cinder::audio::WaveTable::getTableSize ( ) const
inherited
float cinder::audio::WaveTable::lookup ( float  phase) const
inherited
float cinder::audio::WaveTable::lookup ( float *  outputArray,
size_t  outputLength,
float  currentPhase,
float  freq 
) const
inherited
float cinder::audio::WaveTable::lookup ( float *  outputArray,
size_t  outputLength,
float  currentPhase,
const float *  freqArray 
) const
inherited
void cinder::audio::WaveTable::copyTo ( float *  array) const
inherited
void cinder::audio::WaveTable::copyFrom ( const float *  array)
inherited
void cinder::audio::WaveTable::fillSinesum ( float *  array,
size_t  length,
const std::vector< float > &  partialCoeffs 
)
protectedinherited

Member Data Documentation

size_t cinder::audio::WaveTable2d::mNumTables
protected
float cinder::audio::WaveTable2d::mMinMidiRange
protected
float cinder::audio::WaveTable2d::mMaxMidiRange
protected
size_t cinder::audio::WaveTable::mSampleRate
protectedinherited
size_t cinder::audio::WaveTable::mTableSize
protectedinherited
float cinder::audio::WaveTable::mSamplePeriod
protectedinherited
BufferDynamic cinder::audio::WaveTable::mBuffer
protectedinherited

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