Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial


PluckTwo.h

00001 #ifndef STK_PLUCKTWO_H
00002 #define STK_PLUCKTWO_H
00003 
00004 #include "Instrmnt.h"
00005 #include "DelayL.h"
00006 #include "DelayA.h"
00007 #include "OneZero.h"
00008 
00009 namespace stk {
00010 
00011 /***************************************************/
00029 /***************************************************/
00030 
00031 class PluckTwo : public Instrmnt
00032 {
00033  public:
00035   PluckTwo( StkFloat lowestFrequency );
00036 
00038   virtual ~PluckTwo( void );
00039 
00041   void clear( void );
00042 
00044   virtual void setFrequency( StkFloat frequency );
00045 
00047   void setDetune( StkFloat detune );
00048 
00050   void setFreqAndDetune( StkFloat frequency, StkFloat detune );
00051 
00053   void setPluckPosition( StkFloat position );
00054 
00056 
00061   void setBaseLoopGain( StkFloat aGain );
00062 
00064   virtual void noteOff( StkFloat amplitude );
00065 
00066   virtual StkFloat tick( unsigned int channel = 0 ) = 0;
00067 
00068  protected:
00069 
00070   DelayA  delayLine_;
00071   DelayA  delayLine2_;
00072   DelayL  combDelay_;
00073   OneZero filter_;
00074   OneZero filter2_;
00075 
00076   unsigned long length_;
00077   StkFloat loopGain_;
00078   StkFloat baseLoopGain_;
00079   StkFloat lastFrequency_;
00080   StkFloat lastLength_;
00081   StkFloat detuning_;
00082   StkFloat pluckAmplitude_;
00083   StkFloat pluckPosition_;
00084 
00085 };
00086 
00087 } // stk namespace
00088 
00089 #endif

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