Home Information Classes Download Usage Mail List Requirements Links 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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.