33   void setB0( StkFloat b0 ) { b_[0] = b0; };
 
   36   void setB1( StkFloat b1 ) { b_[1] = b1; };
 
   39   void setB2( StkFloat b2 ) { b_[2] = b2; };
 
   42   void setCoefficients( StkFloat b0, StkFloat b1, StkFloat b2, 
bool clearState = 
false );
 
   57   void setNotch( StkFloat frequency, StkFloat radius );
 
   60   StkFloat 
lastOut( 
void )
 const { 
return lastFrame_[0]; };
 
   63   StkFloat 
tick( StkFloat input );
 
   89   void sampleRateChanged( StkFloat newRate, StkFloat oldRate );
 
   94   inputs_[0] = gain_ * input;
 
   95   lastFrame_[0] = b_[2] * inputs_[2] + b_[1] * inputs_[1] + b_[0] * inputs_[0];
 
   96   inputs_[2] = inputs_[1];
 
   97   inputs_[1] = inputs_[0];
 
  104 #if defined(_STK_DEBUG_) 
  105   if ( channel >= frames.
channels() ) {
 
  106     oStream_ << 
"TwoZero::tick(): channel and StkFrames arguments are incompatible!";
 
  111   StkFloat *samples = &frames[channel];
 
  112   unsigned int hop = frames.
channels();
 
  113   for ( 
unsigned int i=0; i<frames.
frames(); i++, samples += hop ) {
 
  114     inputs_[0] = gain_ * *samples;
 
  115     *samples = b_[2] * inputs_[2] + b_[1] * inputs_[1] + b_[0] * inputs_[0];
 
  116     inputs_[2] = inputs_[1];
 
  117     inputs_[1] = inputs_[0];
 
  120   lastFrame_[0] = *(samples-hop);
 
  126 #if defined(_STK_DEBUG_) 
  128     oStream_ << 
"TwoZero::tick(): channel and StkFrames arguments are incompatible!";
 
  133   StkFloat *iSamples = &iFrames[iChannel];
 
  134   StkFloat *oSamples = &oFrames[oChannel];
 
  136   for ( 
unsigned int i=0; i<iFrames.
frames(); i++, iSamples += iHop, oSamples += oHop ) {
 
  137     inputs_[0] = gain_ * *iSamples;
 
  138     *oSamples = b_[2] * inputs_[2] + b_[1] * inputs_[1] + b_[0] * inputs_[0];
 
  139     inputs_[2] = inputs_[1];
 
  140     inputs_[1] = inputs_[0];
 
  143   lastFrame_[0] = *(oSamples-oHop);