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.