Home Information Classes Download Usage Mail List Requirements Links 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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.