Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 #ifndef STK_BANDEDWG_H 00002 #define STK_BANDEDWG_H 00003 00004 #include "Instrmnt.h" 00005 #include "DelayL.h" 00006 #include "BowTable.h" 00007 #include "ADSR.h" 00008 #include "BiQuad.h" 00009 00010 namespace stk { 00011 00012 /***************************************************/ 00041 /***************************************************/ 00042 00043 const int MAX_BANDED_MODES = 20; 00044 00045 class BandedWG : public Instrmnt 00046 { 00047 public: 00049 BandedWG( void ); 00050 00052 ~BandedWG( void ); 00053 00055 void clear( void ); 00056 00058 void setStrikePosition( StkFloat position ); 00059 00061 void setPreset( int preset ); 00062 00064 void setFrequency( StkFloat frequency ); 00065 00067 void startBowing( StkFloat amplitude, StkFloat rate ); 00068 00070 void stopBowing( StkFloat rate ); 00071 00073 void pluck( StkFloat amp ); 00074 00076 void noteOn( StkFloat frequency, StkFloat amplitude ); 00077 00079 void noteOff( StkFloat amplitude ); 00080 00082 void controlChange( int number, StkFloat value ); 00083 00085 StkFloat tick( unsigned int channel = 0 ); 00086 00087 protected: 00088 00089 bool doPluck_; 00090 bool trackVelocity_; 00091 int nModes_; 00092 int presetModes_; 00093 BowTable bowTable_; 00094 ADSR adsr_; 00095 BiQuad bandpass_[MAX_BANDED_MODES]; 00096 DelayL delay_[MAX_BANDED_MODES]; 00097 StkFloat maxVelocity_; 00098 StkFloat modes_[MAX_BANDED_MODES]; 00099 StkFloat frequency_; 00100 StkFloat baseGain_; 00101 StkFloat gains_[MAX_BANDED_MODES]; 00102 StkFloat basegains_[MAX_BANDED_MODES]; 00103 StkFloat excitation_[MAX_BANDED_MODES]; 00104 StkFloat integrationConstant_; 00105 StkFloat velocityInput_; 00106 StkFloat bowVelocity_; 00107 StkFloat bowTarget_; 00108 StkFloat bowPosition_; 00109 StkFloat strikeAmp_; 00110 int strikePosition_; 00111 00112 }; 00113 00114 } // stk namespace 00115 00116 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |