Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 #ifndef STK_SHAKERS_H 00002 #define STK_SHAKERS_H 00003 00004 #include "Instrmnt.h" 00005 00006 namespace stk { 00007 00008 /***************************************************/ 00060 /***************************************************/ 00061 00062 const int MAX_FREQS = 8; 00063 const int NUM_INSTR = 24; 00064 00065 class Shakers : public Instrmnt 00066 { 00067 public: 00069 Shakers( void ); 00070 00072 ~Shakers( void ); 00073 00075 00079 void noteOn( StkFloat instrument, StkFloat amplitude ); 00080 00082 void noteOff( StkFloat amplitude ); 00083 00085 void controlChange( int number, StkFloat value ); 00086 00088 StkFloat tick( unsigned int channel = 0 ); 00089 00090 protected: 00091 00092 int setupName( char* instr ); 00093 int setupNum( int inst ); 00094 int setFreqAndReson( int which, StkFloat freq, StkFloat reson ); 00095 void setDecays( StkFloat sndDecay, StkFloat sysDecay ); 00096 void setFinalZs( StkFloat z0, StkFloat z1, StkFloat z2 ); 00097 StkFloat wuter_tick( void ); 00098 StkFloat tbamb_tick( void ); 00099 StkFloat ratchet_tick( void ); 00100 00101 int instType_; 00102 int ratchetPos_, lastRatchetPos_; 00103 StkFloat shakeEnergy_; 00104 StkFloat inputs_[MAX_FREQS]; 00105 StkFloat outputs_[MAX_FREQS][2]; 00106 StkFloat coeffs_[MAX_FREQS][2]; 00107 StkFloat sndLevel_; 00108 StkFloat baseGain_; 00109 StkFloat gains_[MAX_FREQS]; 00110 int nFreqs_; 00111 StkFloat t_center_freqs_[MAX_FREQS]; 00112 StkFloat center_freqs_[MAX_FREQS]; 00113 StkFloat resons_[MAX_FREQS]; 00114 StkFloat freq_rand_[MAX_FREQS]; 00115 int freqalloc_[MAX_FREQS]; 00116 StkFloat soundDecay_; 00117 StkFloat systemDecay_; 00118 StkFloat nObjects_; 00119 StkFloat totalEnergy_; 00120 StkFloat ratchet_, ratchetDelta_; 00121 StkFloat finalZ_[3]; 00122 StkFloat finalZCoeffs_[3]; 00123 StkFloat defObjs_[NUM_INSTR]; 00124 StkFloat defDecays_[NUM_INSTR]; 00125 StkFloat decayScale_[NUM_INSTR]; 00126 00127 }; 00128 00129 } // stk namespace 00130 00131 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |