home *** CD-ROM | disk | FTP | other *** search
/ PC Musician 2000 / PC_Musician_2000.iso / PCMUSIC / NOTATION / SILENCE / SAMPLER.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-09  |  1.0 KB  |  44 lines

  1. /*******************************************/
  2. /*  Master Class for Sampling Synthesizer  */
  3. /*  by Perry R. Cook, 1995-96              */ 
  4. /*  This instrument contains up to 5       */
  5. /*  attack waves, 5 looped waves, and      */
  6. /*  an ADSR envelope.                      */
  7. /*******************************************/
  8.  
  9. #if !defined(__Sampler_h)
  10. #define __Sampler_h
  11.  
  12. #include "Instrmnt.h"
  13. #include "ADSR.h"
  14. #include "RawWave.h"
  15. #include "RawLoop.h"
  16. #include "OnePole.h"
  17.  
  18. class Sampler : public Instrmnt
  19. {
  20.   protected:  
  21.     ADSR     *adsr; 
  22.     RawWave  *attacks[5];
  23.     RawLoop  *loops[5];
  24.     OnePole  *filter;
  25.     MY_FLOAT baseFreq;
  26.     MY_FLOAT attackRatios[5];
  27.     MY_FLOAT loopRatios[5];
  28.     MY_FLOAT attackGain;
  29.     MY_FLOAT loopGain;
  30.     int whichOne;
  31.   public:
  32.     Sampler();
  33.     ~Sampler();
  34.     void clear();
  35.     virtual void setFreq(MY_FLOAT frequency);
  36.     void keyOn();
  37.     void keyOff();
  38.     virtual void noteOff(MY_FLOAT amplitude);
  39.     virtual MY_FLOAT tick();
  40.     virtual void controlChange(int number, MY_FLOAT value);
  41. };
  42.  
  43. #endif
  44.