Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00030 /***************************************************/ 00031 00032 #if !defined(__BANDEDWG_H) 00033 #define __BANDEDWG_H 00034 00035 #define MAX_BANDED_MODES 20 00036 00037 #include "Instrmnt.h" 00038 #include "DelayL.h" 00039 #include "BowTabl.h" 00040 #include "ADSR.h" 00041 #include "BiQuad.h" 00042 00043 class BandedWG : public Instrmnt 00044 { 00045 public: 00047 BandedWG(); 00048 00050 ~BandedWG(); 00051 00053 void clear(); 00054 00056 void setStrikePosition(MY_FLOAT position); 00057 00059 void setPreset(int preset); 00060 00062 void setFrequency(MY_FLOAT frequency); 00063 00065 void startBowing(MY_FLOAT amplitude, MY_FLOAT rate); 00066 00068 void stopBowing(MY_FLOAT rate); 00069 00071 void pluck(MY_FLOAT amp); 00072 00074 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00075 00077 void noteOff(MY_FLOAT amplitude); 00078 00080 MY_FLOAT tick(); 00081 00083 void controlChange(int number, MY_FLOAT value); 00084 00085 protected: 00086 00087 bool doPluck; 00088 bool trackVelocity; 00089 int nModes; 00090 int presetModes; 00091 BowTabl *bowTabl; 00092 ADSR *adsr; 00093 BiQuad *bandpass; 00094 DelayL *delay; 00095 MY_FLOAT maxVelocity; 00096 MY_FLOAT modes[MAX_BANDED_MODES]; 00097 MY_FLOAT freakency; 00098 MY_FLOAT baseGain; 00099 MY_FLOAT gains[MAX_BANDED_MODES]; 00100 MY_FLOAT basegains[MAX_BANDED_MODES]; 00101 MY_FLOAT excitation[MAX_BANDED_MODES]; 00102 MY_FLOAT integrationConstant; 00103 MY_FLOAT velocityInput; 00104 MY_FLOAT bowVelocity; 00105 MY_FLOAT bowTarget; 00106 MY_FLOAT bowPosition; 00107 MY_FLOAT strikeAmp; 00108 int strikePosition; 00109 00110 }; 00111 00112 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |