Home   Information   Classes   Download   Usage   Mail List   Requirements   Tutorial


Brass.h

00001 /***************************************************/
00021 /***************************************************/
00022 
00023 #if !defined(__BRASS_H)
00024 #define __BRASS_H
00025 
00026 #include "Instrmnt.h"
00027 #include "DelayA.h"
00028 #include "BiQuad.h"
00029 #include "PoleZero.h"
00030 #include "ADSR.h"
00031 #include "WaveLoop.h"
00032 
00033 class Brass: public Instrmnt
00034 {
00035  public:
00037   Brass(MY_FLOAT lowestFrequency);
00038 
00040   ~Brass();
00041 
00043   void clear();
00044 
00046   void setFrequency(MY_FLOAT frequency);
00047 
00049   void setLip(MY_FLOAT frequency);
00050 
00052   void startBlowing(MY_FLOAT amplitude,MY_FLOAT rate);
00053 
00055   void stopBlowing(MY_FLOAT rate);
00056 
00058   void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude);
00059 
00061   void noteOff(MY_FLOAT amplitude);
00062 
00064   MY_FLOAT tick();
00065 
00067   void controlChange(int number, MY_FLOAT value);
00068 
00069  protected:  
00070   DelayA *delayLine;
00071   BiQuad *lipFilter;
00072   PoleZero *dcBlock;
00073   ADSR *adsr;
00074   WaveLoop *vibrato;
00075   long length;
00076   MY_FLOAT lipTarget;
00077   MY_FLOAT slideTarget;
00078   MY_FLOAT vibratoGain;
00079   MY_FLOAT maxPressure;
00080 
00081 };
00082 
00083 #endif

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