Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00053 /***************************************************/ 00054 00055 #if !defined(__SHAKERS_H) 00056 #define __SHAKERS_H 00057 00058 #include "Instrmnt.h" 00059 00060 #define MAX_FREQS 8 00061 #define NUM_INSTR 24 00062 00063 class Shakers : public Instrmnt 00064 { 00065 public: 00067 Shakers(); 00068 00070 ~Shakers(); 00071 00073 00077 virtual void noteOn(MY_FLOAT instrument, MY_FLOAT amplitude); 00078 00080 virtual void noteOff(MY_FLOAT amplitude); 00081 00083 MY_FLOAT tick(); 00084 00086 virtual void controlChange(int number, MY_FLOAT value); 00087 00088 protected: 00089 00090 int setupName(char* instr); 00091 int setupNum(int inst); 00092 int setFreqAndReson(int which, MY_FLOAT freq, MY_FLOAT reson); 00093 void setDecays(MY_FLOAT sndDecay, MY_FLOAT sysDecay); 00094 void setFinalZs(MY_FLOAT z0, MY_FLOAT z1, MY_FLOAT z2); 00095 MY_FLOAT wuter_tick(); 00096 MY_FLOAT tbamb_tick(); 00097 MY_FLOAT ratchet_tick(); 00098 00099 int instType; 00100 int ratchetPos, lastRatchetPos; 00101 MY_FLOAT shakeEnergy; 00102 MY_FLOAT inputs[MAX_FREQS]; 00103 MY_FLOAT outputs[MAX_FREQS][2]; 00104 MY_FLOAT coeffs[MAX_FREQS][2]; 00105 MY_FLOAT sndLevel; 00106 MY_FLOAT baseGain; 00107 MY_FLOAT gains[MAX_FREQS]; 00108 int nFreqs; 00109 MY_FLOAT t_center_freqs[MAX_FREQS]; 00110 MY_FLOAT center_freqs[MAX_FREQS]; 00111 MY_FLOAT resons[MAX_FREQS]; 00112 MY_FLOAT freq_rand[MAX_FREQS]; 00113 int freqalloc[MAX_FREQS]; 00114 MY_FLOAT soundDecay; 00115 MY_FLOAT systemDecay; 00116 MY_FLOAT nObjects; 00117 MY_FLOAT collLikely; 00118 MY_FLOAT totalEnergy; 00119 MY_FLOAT ratchet,ratchetDelta; 00120 MY_FLOAT finalZ[3]; 00121 MY_FLOAT finalZCoeffs[3]; 00122 MY_FLOAT defObjs[NUM_INSTR]; 00123 MY_FLOAT defDecays[NUM_INSTR]; 00124 MY_FLOAT decayScale[NUM_INSTR]; 00125 00126 }; 00127 00128 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |