Home Information Classes Download Usage Mail List Requirements Links Tutorial

# Bowed.h

    00001 /***************************************************/
    00022 /***************************************************/
    00023
    00024 #if !defined(__BOWED_H)
    00025 #define __BOWED_H
    00026
    00027 #include "Instrmnt.h"
    00028 #include "DelayL.h"
    00029 #include "BowTabl.h"
    00030 #include "OnePole.h"
    00031 #include "BiQuad.h"
    00032 #include "WaveLoop.h"
    00033 #include "ADSR.h"
    00034
    00035 class Bowed : public Instrmnt
    00036 {
    00037  public:
    00039   Bowed(MY_FLOAT lowestFrequency);
    00040
    00042   ~Bowed();
    00043
    00045   void clear();
    00046
    00048   void setFrequency(MY_FLOAT frequency);
    00049
    00051   void setVibrato(MY_FLOAT gain);
    00052
    00054   void startBowing(MY_FLOAT amplitude, MY_FLOAT rate);
    00055
    00057   void stopBowing(MY_FLOAT rate);
    00058
    00060   void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude);
    00061
    00063   void noteOff(MY_FLOAT amplitude);
    00064
    00066   MY_FLOAT tick();
    00067
    00069   void controlChange(int number, MY_FLOAT value);
    00070
    00071  protected:
    00072   DelayL *neckDelay;
    00073   DelayL *bridgeDelay;
    00074   BowTabl *bowTable;
    00075   OnePole *stringFilter;
    00076   BiQuad *bodyFilter;
    00077   WaveLoop *vibrato;
    00078   ADSR *adsr;
    00079   MY_FLOAT maxVelocity;
    00080   MY_FLOAT baseDelay;
    00081   MY_FLOAT vibratoGain;
    00082   MY_FLOAT betaRatio;
    00083
    00084 };
    00085
    00086 #endif

The Synthesis ToolKit in C++ (STK)
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.