Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00017 /***************************************************/ 00018 00019 #if !defined(__WHISTLE_H) 00020 #define __WHISTLE_H 00021 00022 #include "Instrmnt.h" 00023 #include "Sphere.h" 00024 #include "Vector3D.h" 00025 #include "Noise.h" 00026 #include "WaveLoop.h" 00027 #include "OnePole.h" 00028 #include "Envelope.h" 00029 00030 class Whistle : public Instrmnt 00031 { 00032 public: 00034 Whistle(); 00035 00037 ~Whistle(); 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 Vector3D *tempVectorP; 00065 Vector3D *tempVector; 00066 OnePole onepole; 00067 Noise noise; 00068 Envelope envelope; 00069 Sphere *can; // Declare a Spherical "can". 00070 Sphere *pea, *bumper; // One spherical "pea", and a spherical "bumper". 00071 00072 WaveLoop *sine; 00073 00074 MY_FLOAT baseFrequency; 00075 MY_FLOAT maxPressure; 00076 MY_FLOAT noiseGain; 00077 MY_FLOAT fippleFreqMod; 00078 MY_FLOAT fippleGainMod; 00079 MY_FLOAT blowFreqMod; 00080 MY_FLOAT tickSize; 00081 MY_FLOAT canLoss; 00082 int subSample, subSampCount; 00083 }; 00084 00085 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |