Home Information Classes Download Usage Mail List Requirements Tutorial
00001 /***************************************************/ 00036 /***************************************************/ 00037 00038 #if !defined(__SAXOFONY_H) 00039 #define __SAXOFONY_H 00040 00041 #include "Instrmnt.h" 00042 #include "DelayL.h" 00043 #include "ReedTabl.h" 00044 #include "OneZero.h" 00045 #include "Envelope.h" 00046 #include "Noise.h" 00047 #include "WaveLoop.h" 00048 00049 class Saxofony : public Instrmnt 00050 { 00051 public: 00053 Saxofony(MY_FLOAT lowestFrequency); 00054 00056 ~Saxofony(); 00057 00059 void clear(); 00060 00062 void setFrequency(MY_FLOAT frequency); 00063 00065 void setBlowPosition(MY_FLOAT aPosition); 00066 00068 void startBlowing(MY_FLOAT amplitude, MY_FLOAT rate); 00069 00071 void stopBlowing(MY_FLOAT rate); 00072 00074 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00075 00077 void noteOff(MY_FLOAT amplitude); 00078 00080 MY_FLOAT tick(); 00081 00083 void controlChange(int number, MY_FLOAT value); 00084 00085 protected: 00086 DelayL *delays[2]; 00087 ReedTabl *reedTable; 00088 OneZero *filter; 00089 Envelope *envelope; 00090 Noise *noise; 00091 WaveLoop *vibrato; 00092 long length; 00093 MY_FLOAT outputGain; 00094 MY_FLOAT noiseGain; 00095 MY_FLOAT vibratoGain; 00096 MY_FLOAT position; 00097 00098 }; 00099 00100 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |