Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   Tutorial


VoicForm.h

00001 /***************************************************/
00026 /***************************************************/
00027 
00028 #if !defined(__VOICFORM_H)
00029 #define __VOICFORM_H
00030 
00031 #include "Instrmnt.h"
00032 #include "Envelope.h"
00033 #include "Noise.h"
00034 #include "SingWave.h"
00035 #include "FormSwep.h"
00036 #include "OnePole.h"
00037 #include "OneZero.h"
00038 
00039 class VoicForm : public Instrmnt
00040 {
00041   public:
00043   VoicForm();
00044 
00046   ~VoicForm();
00047 
00049   void clear();
00050 
00052   void setFrequency(MY_FLOAT frequency);
00053 
00055   bool setPhoneme(const char* phoneme);
00056 
00058   void setVoiced(MY_FLOAT vGain);
00059 
00061   void setUnVoiced(MY_FLOAT nGain);
00062 
00064   void setFilterSweepRate(int whichOne, MY_FLOAT rate);
00065 
00067   void setPitchSweepRate(MY_FLOAT rate);
00068 
00070   void speak();
00071 
00073   void quiet();
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   SingWave *voiced;
00089   Noise    *noise;
00090   Envelope *noiseEnv;
00091   FormSwep  *filters[4];
00092   OnePole  *onepole;
00093   OneZero  *onezero;
00094 
00095 };
00096 
00097 #endif

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