Home Information Classes Download Usage Mail List Requirements Links Tutorial

# BlowHole.h

    00001 /***************************************************/
    00034 /***************************************************/
    00035
    00036 #if !defined(__BLOWHOLE_H)
    00037 #define __BLOWHOLE_H
    00038
    00039 #include "Instrmnt.h"
    00040 #include "DelayL.h"
    00041 #include "ReedTabl.h"
    00042 #include "OneZero.h"
    00043 #include "PoleZero.h"
    00044 #include "Envelope.h"
    00045 #include "Noise.h"
    00046 #include "WaveLoop.h"
    00047
    00048 class BlowHole : public Instrmnt
    00049 {
    00050  public:
    00052   BlowHole(MY_FLOAT lowestFrequency);
    00053
    00055   ~BlowHole();
    00056
    00058   void clear();
    00059
    00061   void setFrequency(MY_FLOAT frequency);
    00062
    00064   void setTonehole(MY_FLOAT newValue);
    00065
    00067   void setVent(MY_FLOAT newValue);
    00068
    00070   void startBlowing(MY_FLOAT amplitude, MY_FLOAT rate);
    00071
    00073   void stopBlowing(MY_FLOAT rate);
    00074
    00076   void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude);
    00077
    00079   void noteOff(MY_FLOAT amplitude);
    00080
    00082   MY_FLOAT tick();
    00083
    00085   void controlChange(int number, MY_FLOAT value);
    00086
    00087  protected:
    00088   DelayL *delays[3];
    00089   ReedTabl *reedTable;
    00090   OneZero *filter;
    00091   PoleZero *tonehole;
    00092   PoleZero *vent;
    00093   Envelope *envelope;
    00094   Noise *noise;
    00095   WaveLoop *vibrato;
    00096   long length;
    00097   MY_FLOAT scatter;
    00098   MY_FLOAT th_coeff;
    00099   MY_FLOAT r_th;
    00100   MY_FLOAT rh_coeff;
    00101   MY_FLOAT rh_gain;
    00102   MY_FLOAT outputGain;
    00103   MY_FLOAT noiseGain;
    00104   MY_FLOAT vibratoGain;
    00105
    00106 };
    00107
    00108 #endif

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