Home Information Classes Download Usage Mail List Requirements Tutorial
00001 /***************************************************/ 00022 /***************************************************/ 00023 00024 #if !defined(__StifKarp_h) 00025 #define __StifKarp_h 00026 00027 #include "Instrmnt.h" 00028 #include "DelayL.h" 00029 #include "DelayA.h" 00030 #include "OneZero.h" 00031 #include "Noise.h" 00032 #include "BiQuad.h" 00033 00034 class StifKarp : public Instrmnt 00035 { 00036 public: 00038 StifKarp(MY_FLOAT lowestFrequency); 00039 00041 ~StifKarp(); 00042 00044 void clear(); 00045 00047 void setFrequency(MY_FLOAT frequency); 00048 00050 void setStretch(MY_FLOAT stretch); 00051 00053 void setPickupPosition(MY_FLOAT position); 00054 00056 00061 void setBaseLoopGain(MY_FLOAT aGain); 00062 00064 void pluck(MY_FLOAT amplitude); 00065 00067 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00068 00070 void noteOff(MY_FLOAT amplitude); 00071 00073 MY_FLOAT tick(); 00074 00076 void controlChange(int number, MY_FLOAT value); 00077 00078 protected: 00079 DelayA *delayLine; 00080 DelayL *combDelay; 00081 OneZero *filter; 00082 Noise *noise; 00083 BiQuad *biQuad[4]; 00084 long length; 00085 MY_FLOAT loopGain; 00086 MY_FLOAT baseLoopGain; 00087 MY_FLOAT lastFrequency; 00088 MY_FLOAT lastLength; 00089 MY_FLOAT stretching; 00090 MY_FLOAT pluckAmplitude; 00091 MY_FLOAT pickupPosition; 00092 00093 }; 00094 00095 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |