Home   Information   Classes   Download   Usage   Mail List   Requirements   Tutorial


StifKarp.h

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.