Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   Tutorial


SingWave.h

00001 /***************************************************/
00014 /***************************************************/
00015 
00016 #if !defined(__SINGWAVE_H)
00017 #define __SINGWAVE_H
00018 
00019 #include "WaveLoop.h"
00020 #include "Modulate.h"
00021 #include "Envelope.h"
00022 
00023 class SingWave : public Stk
00024 {
00025  public:
00027 
00031   SingWave(const char *fileName, bool raw=FALSE);
00032 
00034   ~SingWave();
00035 
00037   void reset();
00038 
00040   void normalize();
00041 
00043   void normalize(MY_FLOAT peak);
00044 
00046   void setFrequency(MY_FLOAT frequency);
00047 
00049   void setVibratoRate(MY_FLOAT aRate);
00050 
00052   void setVibratoGain(MY_FLOAT gain);
00053 
00055   void setRandomGain(MY_FLOAT gain);
00056 
00058   void setSweepRate(MY_FLOAT aRate);
00059 
00061   void setGainRate(MY_FLOAT aRate);    
00062 
00064   void setGainTarget(MY_FLOAT target);
00065 
00067   void noteOn();
00068 
00070   void noteOff();
00071 
00073   MY_FLOAT lastOut();
00074 
00076   MY_FLOAT tick();
00077 
00078  protected:
00079 
00080   WaveLoop *wave;
00081   Modulate *modulator;
00082   Envelope *envelope;
00083   Envelope *pitchEnvelope;
00084   MY_FLOAT rate;
00085   MY_FLOAT sweepRate;
00086   MY_FLOAT lastOutput;
00087 
00088 };
00089 
00090 #endif

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