Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 #ifndef STK_SAMPLER_H 00002 #define STK_SAMPLER_H 00003 00004 #include "Instrmnt.h" 00005 #include "ADSR.h" 00006 #include "FileLoop.h" 00007 #include "OnePole.h" 00008 00009 namespace stk { 00010 00011 /***************************************************/ 00020 /***************************************************/ 00021 00022 class Sampler : public Instrmnt 00023 { 00024 public: 00026 Sampler( void ); 00027 00029 virtual ~Sampler( void ); 00030 00032 void clear( void ); 00033 00035 virtual void setFrequency( StkFloat frequency ) = 0; 00036 00038 void keyOn( void ); 00039 00041 void keyOff( void ); 00042 00044 virtual void noteOff( StkFloat amplitude ); 00045 00047 virtual void controlChange( int number, StkFloat value ) = 0; 00048 00050 virtual StkFloat tick( unsigned int channel = 0 ) = 0; 00051 00052 protected: 00053 00054 ADSR adsr_; 00055 std::vector<FileWvIn *> attacks_; 00056 std::vector<FileLoop *> loops_; 00057 OnePole filter_; 00058 StkFloat baseFrequency_; 00059 std::vector<StkFloat> attackRatios_; 00060 std::vector<StkFloat> loopRatios_; 00061 StkFloat attackGain_; 00062 StkFloat loopGain_; 00063 00064 }; 00065 00066 } // stk namespace 00067 00068 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |