Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00022 /***************************************************/ 00023 00024 #if !defined(__BOWED_H) 00025 #define __BOWED_H 00026 00027 #include "Instrmnt.h" 00028 #include "DelayL.h" 00029 #include "BowTabl.h" 00030 #include "OnePole.h" 00031 #include "BiQuad.h" 00032 #include "WaveLoop.h" 00033 #include "ADSR.h" 00034 00035 class Bowed : public Instrmnt 00036 { 00037 public: 00039 Bowed(MY_FLOAT lowestFrequency); 00040 00042 ~Bowed(); 00043 00045 void clear(); 00046 00048 void setFrequency(MY_FLOAT frequency); 00049 00051 void setVibrato(MY_FLOAT gain); 00052 00054 void startBowing(MY_FLOAT amplitude, MY_FLOAT rate); 00055 00057 void stopBowing(MY_FLOAT rate); 00058 00060 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00061 00063 void noteOff(MY_FLOAT amplitude); 00064 00066 MY_FLOAT tick(); 00067 00069 void controlChange(int number, MY_FLOAT value); 00070 00071 protected: 00072 DelayL *neckDelay; 00073 DelayL *bridgeDelay; 00074 BowTabl *bowTable; 00075 OnePole *stringFilter; 00076 BiQuad *bodyFilter; 00077 WaveLoop *vibrato; 00078 ADSR *adsr; 00079 MY_FLOAT maxVelocity; 00080 MY_FLOAT baseDelay; 00081 MY_FLOAT vibratoGain; 00082 MY_FLOAT betaRatio; 00083 00084 }; 00085 00086 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |