Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 /***************************************************/ 00021 /***************************************************/ 00022 00023 #ifndef STK_BRASS_H 00024 #define STK_BRASS_H 00025 00026 #include "Instrmnt.h" 00027 #include "DelayA.h" 00028 #include "BiQuad.h" 00029 #include "PoleZero.h" 00030 #include "ADSR.h" 00031 #include "SineWave.h" 00032 00033 class Brass: public Instrmnt 00034 { 00035 public: 00037 00040 Brass(StkFloat lowestFrequency); 00041 00043 ~Brass(); 00044 00046 void clear(); 00047 00049 void setFrequency(StkFloat frequency); 00050 00052 void setLip(StkFloat frequency); 00053 00055 void startBlowing(StkFloat amplitude, StkFloat rate); 00056 00058 void stopBlowing(StkFloat rate); 00059 00061 void noteOn(StkFloat frequency, StkFloat amplitude); 00062 00064 void noteOff(StkFloat amplitude); 00065 00067 void controlChange(int number, StkFloat value); 00068 00069 protected: 00070 00071 StkFloat computeSample( void ); 00072 00073 DelayA delayLine_; 00074 BiQuad lipFilter_; 00075 PoleZero dcBlock_; 00076 ADSR adsr_; 00077 SineWave vibrato_; 00078 unsigned long length_; 00079 StkFloat lipTarget_; 00080 StkFloat slideTarget_; 00081 StkFloat vibratoGain_; 00082 StkFloat maxPressure_; 00083 00084 }; 00085 00086 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |