home *** CD-ROM | disk | FTP | other *** search
/ PC Musician 2000 / PC_Musician_2000.iso / PCMUSIC / NOTATION / SILENCE / PLUCKED2.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-10  |  1.2 KB  |  47 lines

  1. /******************************************/  
  2. /*  Enhanced (Jaffe-Smith, Smith, others) */
  3. /*  Karplus-Strong plucked model          */
  4. /*  by Perry Cook, 1995-96                */
  5. /*  This is the super-class, with no      */
  6. /*  excitation specified.  So this one by */
  7. /*  itself doesn't make any sound.        */
  8. /******************************************/
  9.  
  10. #if !defined(__Plucked2_h)
  11. #define __Plucked2_h
  12.  
  13. #include "Instrmnt.h"
  14. #include "DLineL.h"
  15. #include "DLineA.h"
  16. #include "OneZero.h"
  17.  
  18. class Plucked2 : public Instrmnt
  19. {
  20.   protected:  
  21.     DLineA *delayLine;
  22.     DLineA *delayLine2;
  23.     DLineL *combDelay;
  24.     OneZero *filter;
  25.     OneZero *filter2;
  26.     long length;
  27.     MY_FLOAT loopGain;
  28.     MY_FLOAT baseLoopGain;
  29.     MY_FLOAT lastFreq;
  30.     MY_FLOAT lastLength;
  31.     MY_FLOAT detuning;
  32.     MY_FLOAT pluckAmp;
  33.     MY_FLOAT pluckPos;
  34.   public:
  35.     Plucked2(MY_FLOAT lowestFreq);
  36.     ~Plucked2();
  37.     void clear();
  38.     virtual void setFreq(MY_FLOAT frequency);
  39.     void setDetune(MY_FLOAT detune);
  40.     void setFreqAndDetune(MY_FLOAT frequency, MY_FLOAT detune);
  41.     void setPluckPos(MY_FLOAT position);
  42.     void setBaseLoopGain(MY_FLOAT aGain);
  43.     virtual void noteOff(MY_FLOAT amp);
  44. };
  45.  
  46. #endif
  47.