Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00014 /***************************************************/ 00015 00016 #ifndef STK_SINGWAVE_H 00017 #define STK_SINGWAVE_H 00018 00019 #include "WaveLoop.h" 00020 #include "Modulate.h" 00021 #include "Envelope.h" 00022 00023 class SingWave : public Generator 00024 { 00025 public: 00027 00031 SingWave( std::string fileName, bool raw=false); 00032 00034 ~SingWave(); 00035 00037 void reset(); 00038 00040 void normalize(); 00041 00043 void normalize(StkFloat peak); 00044 00046 void setFrequency(StkFloat frequency); 00047 00049 void setVibratoRate(StkFloat rate); 00050 00052 void setVibratoGain(StkFloat gain); 00053 00055 void setRandomGain(StkFloat gain); 00056 00058 void setSweepRate(StkFloat rate); 00059 00061 void setGainRate(StkFloat rate); 00062 00064 void setGainTarget(StkFloat target); 00065 00067 void noteOn(); 00068 00070 void noteOff(); 00071 00073 StkFloat tick(); 00074 00076 StkFloat *tick( StkFloat *vector, unsigned int vectorSize ); 00077 00079 00085 StkFrames& tick( StkFrames& frames, unsigned int channel = 1 ); 00086 00087 protected: 00088 00089 WaveLoop *wave_; 00090 Modulate *modulator_; 00091 Envelope envelope_; 00092 Envelope pitchEnvelope_; 00093 StkFloat rate_; 00094 StkFloat sweepRate_; 00095 00096 }; 00097 00098 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |