Home Information Classes Download Usage Mail List Requirements Links Tutorial
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. |