|
- /***************************************************/
- /*! \class Sampler
- \brief STK sampling synthesis abstract base class.
-
- This instrument provides an ADSR envelope, a one-pole filter, and
- structures for an arbitrary number of attack and looped files.
-
- by Perry R. Cook and Gary P. Scavone, 1995--2017.
- */
- /***************************************************/
-
- #include "Sampler.h"
-
- namespace stk {
-
- Sampler :: Sampler( void )
- {
- // We don't make the waves here yet, because
- // we don't know what they will be.
- baseFrequency_ = 440.0;
- attackGain_ = 0.25;
- loopGain_ = 0.25;
- }
-
- Sampler :: ~Sampler( void )
- {
- unsigned int i;
- for ( i=0; i<attacks_.size(); i++ ) delete attacks_[i];
- for ( i=0; i<loops_.size(); i++ ) delete loops_[i];
- }
-
- void Sampler :: keyOn( void )
- {
- // Reset all attack waves.
- for ( unsigned int i=0; i<attacks_.size(); i++ )
- attacks_[i]->reset();
-
- // Start the envelope.
- adsr_.keyOn();
-
- }
-
- void Sampler :: keyOff( void )
- {
- adsr_.keyOff();
- }
-
- void Sampler :: noteOff( StkFloat amplitude )
- {
- this->keyOff();
- }
-
- } // stk namespace
|