Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   Tutorial


Shakers.h

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.