Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   Tutorial


Bowed.h

00001 /***************************************************/
00022 /***************************************************/
00023 
00024 #ifndef STK_BOWED_H
00025 #define STK_BOWED_H
00026 
00027 #include "Instrmnt.h"
00028 #include "DelayL.h"
00029 #include "BowTable.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(StkFloat lowestFrequency);
00040 
00042   ~Bowed();
00043 
00045   void clear();
00046 
00048   void setFrequency(StkFloat frequency);
00049 
00051   void setVibrato(StkFloat gain);
00052 
00054   void startBowing(StkFloat amplitude, StkFloat rate);
00055 
00057   void stopBowing(StkFloat rate);
00058 
00060   void noteOn(StkFloat frequency, StkFloat amplitude);
00061 
00063   void noteOff(StkFloat amplitude);
00064 
00066   StkFloat tick();
00067 
00069   StkFloat *tick(StkFloat *vector, unsigned int vectorSize);
00070 
00072 
00078   StkFrames& tick( StkFrames& frames, unsigned int channel = 1 );
00079 
00081   void controlChange(int number, StkFloat value);
00082 
00083  protected:  
00084   DelayL   neckDelay_;
00085   DelayL   bridgeDelay_;
00086   BowTable bowTable_;
00087   OnePole  stringFilter_;
00088   BiQuad   bodyFilter_;
00089   WaveLoop *vibrato_;
00090   ADSR     adsr_;
00091   StkFloat maxVelocity_;
00092   StkFloat baseDelay_;
00093   StkFloat vibratoGain_;
00094   StkFloat betaRatio_;
00095 
00096 };
00097 
00098 #endif

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