Home Information Classes Download Usage Mail List Requirements Tutorial
00001 /***************************************************/ 00021 /***************************************************/ 00022 00023 #if !defined(__BRASS_H) 00024 #define __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 "WaveLoop.h" 00032 00033 class Brass: public Instrmnt 00034 { 00035 public: 00037 Brass(MY_FLOAT lowestFrequency); 00038 00040 ~Brass(); 00041 00043 void clear(); 00044 00046 void setFrequency(MY_FLOAT frequency); 00047 00049 void setLip(MY_FLOAT frequency); 00050 00052 void startBlowing(MY_FLOAT amplitude,MY_FLOAT rate); 00053 00055 void stopBlowing(MY_FLOAT rate); 00056 00058 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00059 00061 void noteOff(MY_FLOAT amplitude); 00062 00064 MY_FLOAT tick(); 00065 00067 void controlChange(int number, MY_FLOAT value); 00068 00069 protected: 00070 DelayA *delayLine; 00071 BiQuad *lipFilter; 00072 PoleZero *dcBlock; 00073 ADSR *adsr; 00074 WaveLoop *vibrato; 00075 long length; 00076 MY_FLOAT lipTarget; 00077 MY_FLOAT slideTarget; 00078 MY_FLOAT vibratoGain; 00079 MY_FLOAT maxPressure; 00080 00081 }; 00082 00083 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |