 
    
   
Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial
   74   void setAllTimes( StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime );
 
   86   StkFloat 
lastOut( 
void )
 const { 
return lastFrame_[0]; };
 
   89   StkFloat 
tick( 
void );
 
  103   void sampleRateChanged( StkFloat newRate, StkFloat oldRate );
 
  108   StkFloat attackRate_;
 
  110   StkFloat releaseRate_;
 
  111   StkFloat releaseTime_;
 
  112   StkFloat sustainLevel_;
 
  120     value_ += attackRate_;
 
  121     if ( value_ >= target_ ) {
 
  123       target_ = sustainLevel_;
 
  126     lastFrame_[0] = value_;
 
  130     if ( value_ > sustainLevel_ ) {
 
  131       value_ -= decayRate_;
 
  132       if ( value_ <= sustainLevel_ ) {
 
  133         value_ = sustainLevel_;
 
  138       value_ += decayRate_; 
 
  139       if ( value_ >= sustainLevel_ ) {
 
  140         value_ = sustainLevel_;
 
  144     lastFrame_[0] = value_;
 
  148     value_ -= releaseRate_;
 
  149     if ( value_ <= 0.0 ) {
 
  153     lastFrame_[0] = value_;
 
  162 #if defined(_STK_DEBUG_) 
  163   if ( channel >= frames.
channels() ) {
 
  164     oStream_ << 
"ADSR::tick(): channel and StkFrames arguments are incompatible!";
 
  169   StkFloat *samples = &frames[channel];
 
  170   unsigned int hop = frames.
channels();
 
  171   for ( 
unsigned int i=0; i<frames.
frames(); i++, samples += hop )
 
  
STK ADSR envelope class.
Definition: ADSR.h:24
void setDecayTime(StkFloat time)
Set the decay rate based on a time duration (seconds).
void setReleaseRate(StkFloat rate)
Set the release rate (gain / sample).
~ADSR(void)
Class destructor.
unsigned int frames(void) const
Return the number of sample frames represented by the data.
Definition: Stk.h:407
ADSR(void)
Default constructor.
STK abstract unit generator parent class.
Definition: Generator.h:20
void keyOn(void)
Set target = 1, state = ADSR::ATTACK.
void setAttackTarget(StkFloat target)
Set the target value for the attack (default = 1.0).
void setAttackTime(StkFloat time)
Set the attack rate based on a time duration (seconds).
int getState(void) const
Return the current envelope state (ATTACK, DECAY, SUSTAIN, RELEASE, IDLE).
Definition: ADSR.h:80
StkFloat lastOut(void) const
Return the last computed output value.
Definition: ADSR.h:86
An STK class to handle vectorized audio data.
Definition: Stk.h:275
unsigned int channels(void) const
Return the number of channels represented by the data.
Definition: Stk.h:404
static void handleError(const char *message, StkError::Type type)
Static function for error reporting and handling using c-strings.
void setAttackRate(StkFloat rate)
Set the attack rate (gain / sample).
void setValue(StkFloat value)
Set to state = ADSR::SUSTAIN with current and target values of value.
void setReleaseTime(StkFloat time)
Set the release rate based on a time duration (seconds).
void setSustainLevel(StkFloat level)
Set the sustain level.
void setAllTimes(StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime)
Set sustain level and attack, decay, and release time durations (seconds).
void keyOff(void)
Set target = 0, state = ADSR::RELEASE.
void setDecayRate(StkFloat rate)
Set the decay rate (gain / sample).
The STK namespace.
Definition: ADSR.h:6
void setTarget(StkFloat target)
Set a sustain target value and attack or decay from current value to target.
StkFloat tick(void)
Compute and return one output sample.
Definition: ADSR.h:115