home *** CD-ROM | disk | FTP | other *** search
/ PC Musician 2000 / PC_Musician_2000.iso / PCMUSIC / NOTATION / SILENCE / FORMSWEP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-09  |  1.2 KB  |  47 lines

  1. /*******************************************/
  2. /*  Sweepable Formant (2-pole)             */
  3. /*  Filter Class, by Perry R. Cook, 1995-96*/ 
  4. /*  See books on filters to understand     */
  5. /*  more about how this works.  Nothing    */
  6. /*  out of the ordinary in this version.   */
  7. /*******************************************/
  8.  
  9. #if !defined(__FormSwep_h)
  10. #define __FormSwep_h
  11.  
  12. #include "Filter.h"
  13.  
  14. class FormSwep : public Filter
  15. {
  16.   protected:  
  17.     MY_FLOAT poleCoeffs[2];
  18.     MY_FLOAT freq;
  19.     MY_FLOAT reson;
  20.     int dirty;
  21.     MY_FLOAT targetFreq;
  22.     MY_FLOAT targetReson;
  23.     MY_FLOAT targetGain;
  24.     MY_FLOAT currentFreq;
  25.     MY_FLOAT currentReson;
  26.     MY_FLOAT currentGain;
  27.     MY_FLOAT deltaFreq;
  28.     MY_FLOAT deltaReson;
  29.     MY_FLOAT deltaGain;
  30.     MY_FLOAT sweepState;
  31.     MY_FLOAT sweepRate;
  32.   public:
  33.     FormSwep();
  34.     ~FormSwep();
  35.     void clear();
  36.     void setPoleCoeffs(MY_FLOAT *coeffs);
  37.     void setGain(MY_FLOAT aValue);
  38.     void setFreqAndReson(MY_FLOAT aFreq, MY_FLOAT aReson);
  39.     void setStates(MY_FLOAT aFreq, MY_FLOAT aReson, MY_FLOAT aGain);
  40.     void setTargets(MY_FLOAT aFreq, MY_FLOAT aReson, MY_FLOAT aGain);
  41.     void setSweepRate(MY_FLOAT aRate);    
  42.     void setSweepTime(MY_FLOAT aTime);    
  43.     MY_FLOAT tick(MY_FLOAT sample);
  44. };
  45.  
  46. #endif
  47.