csl::Filter Class Reference

#include <Filters.h>

Inheritance diagram for csl::Filter:

csl::Effect csl::Scalable csl::FrequencyAmount csl::Controllable csl::Allpass csl::Butter csl::Formant csl::Moog csl::Notch List of all members.

Detailed Description

The n-pole/m-zero filter class.


Public Member Functions

 Filter ()
 Default constructor generates a zeroth order "do-nothing" filter.
 Filter (unsigned num_b, unsigned num_a=1)
 Filter (UnitGenerator &in, unsigned num_b=1, unsigned num_a=1)
 Filter (UnitGenerator &in, sample *bCoeffs, sample *aCoeffs, unsigned num_b, unsigned num_a)
 This constructor takes arrays of coefficients and constructs the filter accordingly.
 ~Filter ()
 Filter destructor frees temp memory.
void clear (void)
 clears the input/output buffers
virtual void setupCoeffs ()
void setupCoeffs (sample *bCoeffs, sample *aCoeffs, unsigned num_b, unsigned num_a)
 supply the coefficients directly
virtual void nextBuffer (Buffer &outputBuffer, unsigned outBufNum) throw (CException)
void dump ()
 log information about myself

Protected Member Functions

void init (unsigned a, unsigned b)
 shared initialization function

Protected Attributes

float mBCoeff [FILTER_MAX_COEFFICIENTS]
 array of numerator coeffs
float mACoeff [FILTER_MAX_COEFFICIENTS]
 array of denominator coeffs
unsigned mBNum
 number of coeffs in b
unsigned mANum
 number of coeffs in a
BuffermPrevInputs
 arrays of past input and output samples
BuffermPrevOutputs
float mFrame
 helpful to keep hold of sample rate for calculating coeffs


Constructor & Destructor Documentation

Filter::Filter  ) 
 

Default constructor generates a zeroth order "do-nothing" filter.

Generic Filter class with scalable order and generic next_buffer method that implememnts the canonical filter diference equation. Subclasses must supply filter order and override the setupCoeffs() method.

Filter::Filter unsigned  num_b,
unsigned  num_a = 1
 

Filter::Filter UnitGenerator in,
unsigned  num_b = 1,
unsigned  num_a = 1
 

Filter::Filter UnitGenerator in,
sample bCoeffs,
sample aCoeffs,
unsigned  num_b,
unsigned  num_a
 

This constructor takes arrays of coefficients and constructs the filter accordingly.

Filter::~Filter  ) 
 

Filter destructor frees temp memory.


Member Function Documentation

void Filter::clear void   ) 
 

clears the input/output buffers

virtual void csl::Filter::setupCoeffs  )  [inline, virtual]
 

Reimplemented in csl::Butter, csl::Formant, csl::Notch, csl::Allpass, and csl::Moog.

void Filter::setupCoeffs sample bCoeffs,
sample aCoeffs,
unsigned  num_b,
unsigned  num_a
 

supply the coefficients directly

to be overloaded by subclasses

void Filter::nextBuffer Buffer outputBuffer,
unsigned  outBufNum
throw (CException) [virtual]
 

Reimplemented in csl::Moog.

void Filter::dump  ) 
 

log information about myself

void Filter::init unsigned  a,
unsigned  b
[protected]
 

shared initialization function


Member Data Documentation

float csl::Filter::mBCoeff[FILTER_MAX_COEFFICIENTS] [protected]
 

array of numerator coeffs

float csl::Filter::mACoeff[FILTER_MAX_COEFFICIENTS] [protected]
 

array of denominator coeffs

unsigned csl::Filter::mBNum [protected]
 

number of coeffs in b

unsigned csl::Filter::mANum [protected]
 

number of coeffs in a

Buffer* csl::Filter::mPrevInputs [protected]
 

arrays of past input and output samples

Buffer* csl::Filter::mPrevOutputs [protected]
 

float csl::Filter::mFrame [protected]
 

helpful to keep hold of sample rate for calculating coeffs


The documentation for this class was generated from the following files:
Generated on Fri Apr 6 20:18:19 2007 for CSL by  doxygen 1.4.5-20051010