Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 /***************************************************/ 00034 /***************************************************/ 00035 00036 #ifndef STK_BLOWHOLE_H 00037 #define STK_BLOWHOLE_H 00038 00039 #include "Instrmnt.h" 00040 #include "DelayL.h" 00041 #include "ReedTable.h" 00042 #include "OneZero.h" 00043 #include "PoleZero.h" 00044 #include "Envelope.h" 00045 #include "Noise.h" 00046 #include "SineWave.h" 00047 00048 class BlowHole : public Instrmnt 00049 { 00050 public: 00052 00055 BlowHole(StkFloat lowestFrequency); 00056 00058 ~BlowHole(); 00059 00061 void clear(); 00062 00064 void setFrequency(StkFloat frequency); 00065 00067 void setTonehole(StkFloat newValue); 00068 00070 void setVent(StkFloat newValue); 00071 00073 void startBlowing(StkFloat amplitude, StkFloat rate); 00074 00076 void stopBlowing(StkFloat rate); 00077 00079 void noteOn(StkFloat frequency, StkFloat amplitude); 00080 00082 void noteOff(StkFloat amplitude); 00083 00085 void controlChange(int number, StkFloat value); 00086 00087 protected: 00088 00089 StkFloat computeSample( void ); 00090 00091 DelayL delays_[3]; 00092 ReedTable reedTable_; 00093 OneZero filter_; 00094 PoleZero tonehole_; 00095 PoleZero vent_; 00096 Envelope envelope_; 00097 Noise noise_; 00098 SineWave vibrato_; 00099 unsigned long length_; 00100 StkFloat scatter_; 00101 StkFloat thCoeff_; 00102 StkFloat rhGain_; 00103 StkFloat outputGain_; 00104 StkFloat noiseGain_; 00105 StkFloat vibratoGain_; 00106 00107 }; 00108 00109 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |