Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00018 /***************************************************/ 00019 00020 #if !defined(__SITAR_H) 00021 #define __SITAR_H 00022 00023 #include "Instrmnt.h" 00024 #include "DelayA.h" 00025 #include "OneZero.h" 00026 #include "Noise.h" 00027 #include "ADSR.h" 00028 00029 class Sitar : public Instrmnt 00030 { 00031 public: 00033 Sitar(MY_FLOAT lowestFrequency); 00034 00036 ~Sitar(); 00037 00039 void clear(); 00040 00042 void setFrequency(MY_FLOAT frequency); 00043 00045 void pluck(MY_FLOAT amplitude); 00046 00048 void noteOn(MY_FLOAT frequency, MY_FLOAT amplitude); 00049 00051 void noteOff(MY_FLOAT amplitude); 00052 00054 MY_FLOAT tick(); 00055 00056 protected: 00057 DelayA *delayLine; 00058 OneZero *loopFilter; 00059 Noise *noise; 00060 ADSR *envelope; 00061 long length; 00062 MY_FLOAT loopGain; 00063 MY_FLOAT amGain; 00064 MY_FLOAT delay; 00065 MY_FLOAT targetDelay; 00066 00067 }; 00068 00069 #endif 00070
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |