Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   Tutorial


BlowBotl.h

00001 /***************************************************/
00017 /***************************************************/
00018 
00019 #ifndef STK_BLOWBOTL_H
00020 #define STK_BLOWBOTL_H
00021 
00022 #include "Instrmnt.h"
00023 #include "JetTable.h"
00024 #include "BiQuad.h"
00025 #include "PoleZero.h"
00026 #include "Noise.h"
00027 #include "ADSR.h"
00028 #include "WaveLoop.h"
00029 
00030 class BlowBotl : public Instrmnt
00031 {
00032  public:
00034 
00037   BlowBotl();
00038 
00040   ~BlowBotl();
00041 
00043   void clear();
00044 
00046   void setFrequency(StkFloat frequency);
00047 
00049   void startBlowing(StkFloat amplitude, StkFloat rate);
00050 
00052   void stopBlowing(StkFloat rate);
00053 
00055   void noteOn(StkFloat frequency, StkFloat amplitude);
00056 
00058   void noteOff(StkFloat amplitude);
00059 
00061   StkFloat tick();
00062 
00064   StkFloat *tick(StkFloat *vector, unsigned int vectorSize);
00065 
00067 
00073   StkFrames& tick( StkFrames& frames, unsigned int channel = 1 );
00074 
00076   void controlChange(int number, StkFloat value);
00077 
00078  protected:  
00079   JetTable jetTable_;
00080   BiQuad resonator_;
00081   PoleZero dcBlock_;
00082   Noise noise_;
00083   ADSR adsr_;
00084   WaveLoop *vibrato_;
00085   StkFloat maxPressure_;
00086   StkFloat noiseGain_;
00087   StkFloat vibratoGain_;
00088   StkFloat outputGain_;
00089 
00090 };
00091 
00092 #endif

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