Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00022 /***************************************************/ 00023 00024 #ifndef STK_BOWED_H 00025 #define STK_BOWED_H 00026 00027 #include "Instrmnt.h" 00028 #include "DelayL.h" 00029 #include "BowTable.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(StkFloat lowestFrequency); 00040 00042 ~Bowed(); 00043 00045 void clear(); 00046 00048 void setFrequency(StkFloat frequency); 00049 00051 void setVibrato(StkFloat gain); 00052 00054 void startBowing(StkFloat amplitude, StkFloat rate); 00055 00057 void stopBowing(StkFloat rate); 00058 00060 void noteOn(StkFloat frequency, StkFloat amplitude); 00061 00063 void noteOff(StkFloat amplitude); 00064 00066 StkFloat tick(); 00067 00069 StkFloat *tick(StkFloat *vector, unsigned int vectorSize); 00070 00072 00078 StkFrames& tick( StkFrames& frames, unsigned int channel = 1 ); 00079 00081 void controlChange(int number, StkFloat value); 00082 00083 protected: 00084 DelayL neckDelay_; 00085 DelayL bridgeDelay_; 00086 BowTable bowTable_; 00087 OnePole stringFilter_; 00088 BiQuad bodyFilter_; 00089 WaveLoop *vibrato_; 00090 ADSR adsr_; 00091 StkFloat maxVelocity_; 00092 StkFloat baseDelay_; 00093 StkFloat vibratoGain_; 00094 StkFloat betaRatio_; 00095 00096 }; 00097 00098 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |