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.