Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00017 /***************************************************/ 00018 00019 #if !defined(__BOTTLE_H) 00020 #define __BOTTLE_H 00021 00022 #include "Instrmnt.h" 00023 #include "JetTabl.h" 00024 #include "BiQuad.h" 00025 #include "PoleZero.h" 00026 #include "Noise.h" 00027 #include "ADSR.h" 00028 #include "WaveLoop.h" 00029 00030 class BlowBotl : public Instrmnt 00031 { 00032 public: 00034 BlowBotl(); 00035 00037 ~BlowBotl(); 00038 00040 void clear(); 00041 00043 void setFrequency(MY_FLOAT frequency); 00044 00046 void startBlowing(MY_FLOAT amplitude, MY_FLOAT rate); 00047 00049 void stopBlowing(MY_FLOAT rate); 00050 00052 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00053 00055 void noteOff(MY_FLOAT amplitude); 00056 00058 MY_FLOAT tick(); 00059 00061 void controlChange(int number, MY_FLOAT value); 00062 00063 protected: 00064 JetTabl *jetTable; 00065 BiQuad *resonator; 00066 PoleZero *dcBlock; 00067 Noise *noise; 00068 ADSR *adsr; 00069 WaveLoop *vibrato; 00070 MY_FLOAT maxPressure; 00071 MY_FLOAT noiseGain; 00072 MY_FLOAT vibratoGain; 00073 MY_FLOAT outputGain; 00074 00075 }; 00076 00077 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |