Home   Information   Classes   Download   Usage   Mail List   Requirements   Tutorial


Saxofony.h

00001 /***************************************************/
00036 /***************************************************/
00037 
00038 #if !defined(__SAXOFONY_H)
00039 #define __SAXOFONY_H
00040 
00041 #include "Instrmnt.h"
00042 #include "DelayL.h"
00043 #include "ReedTabl.h"
00044 #include "OneZero.h"
00045 #include "Envelope.h"
00046 #include "Noise.h"
00047 #include "WaveLoop.h"
00048 
00049 class Saxofony : public Instrmnt
00050 {
00051  public:
00053   Saxofony(MY_FLOAT lowestFrequency);
00054 
00056   ~Saxofony();
00057 
00059   void clear();
00060 
00062   void setFrequency(MY_FLOAT frequency);
00063 
00065   void setBlowPosition(MY_FLOAT aPosition);
00066 
00068   void startBlowing(MY_FLOAT amplitude, MY_FLOAT rate);
00069 
00071   void stopBlowing(MY_FLOAT rate);
00072 
00074   void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude);
00075 
00077   void noteOff(MY_FLOAT amplitude);
00078 
00080   MY_FLOAT tick();
00081 
00083   void controlChange(int number, MY_FLOAT value);
00084 
00085  protected:
00086   DelayL *delays[2];
00087   ReedTabl *reedTable;
00088   OneZero *filter;
00089   Envelope *envelope;
00090   Noise *noise;
00091   WaveLoop *vibrato;
00092   long length;
00093   MY_FLOAT outputGain;
00094   MY_FLOAT noiseGain;
00095   MY_FLOAT vibratoGain;
00096   MY_FLOAT position;
00097 
00098 };
00099 
00100 #endif

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