Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   Tutorial


Resonate.h

00001 /***************************************************/
00018 /***************************************************/
00019 
00020 #ifndef STK_RESONATE_H
00021 #define STK_RESONATE_H
00022 
00023 #include "Instrmnt.h"
00024 #include "ADSR.h"
00025 #include "BiQuad.h"
00026 #include "Noise.h"
00027 
00028 class Resonate : public Instrmnt
00029 {
00030  public:
00032   Resonate();
00033 
00035   ~Resonate();
00036 
00038   void clear();
00039 
00041   void setResonance(StkFloat frequency, StkFloat radius);
00042 
00044   void setNotch(StkFloat frequency, StkFloat radius);
00045 
00047   void setEqualGainZeroes();
00048 
00050   void keyOn();
00051 
00053   void keyOff();
00054 
00056   void noteOn(StkFloat frequency, StkFloat amplitude);
00057 
00059   void noteOff(StkFloat amplitude);
00060 
00062   StkFloat tick();
00063 
00065   StkFloat *tick(StkFloat *vector, unsigned int vectorSize);
00066 
00068 
00074   StkFrames& tick( StkFrames& frames, unsigned int channel = 1 );
00075 
00077   void controlChange(int number, StkFloat value);
00078 
00079  protected:  
00080   ADSR     adsr_;
00081   BiQuad   filter_;
00082   Noise    noise_;
00083   StkFloat poleFrequency_;
00084   StkFloat poleRadius_;
00085   StkFloat zeroFrequency_;
00086   StkFloat zeroRadius_;
00087 
00088 };
00089 
00090 #endif

The Synthesis ToolKit in C++ (STK)
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.