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

  1. /******************************************/  
  2. /*  Karplus-Strong plucked string model   */
  3. /*  by Perry Cook, 1995-96                */
  4. /*                                        */
  5. /*  There exist at least two patents,     */
  6. /*  assigned to Stanford, bearing the     */
  7. /*  names of Karplus and/or Strong.       */
  8. /******************************************/
  9.  
  10. #if !defined(__Plucked_h)
  11. #define __Plucked_h
  12.  
  13. #include "Instrmnt.h" 
  14. #include "DLineA.h" 
  15. #include "OneZero.h" 
  16. #include "OnePole.h" 
  17. #include "Noise.h" 
  18.  
  19. class Plucked : public Instrmnt
  20. {
  21.   protected:  
  22.     DLineA *delayLine;
  23.     OneZero *loopFilt;
  24.     OnePole *pickFilt;
  25.     Noise *noise;
  26.     long length;
  27.     MY_FLOAT loopGain;
  28.   public:
  29.     Plucked(MY_FLOAT lowestFreq);
  30.     ~Plucked();
  31.     void clear();
  32.     virtual void setFreq(MY_FLOAT frequency);
  33.     void pluck(MY_FLOAT amplitude);
  34.     virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
  35.     virtual void noteOff(MY_FLOAT amp);
  36.     virtual MY_FLOAT tick();
  37. };
  38.  
  39. #endif
  40.  
  41.