 
    
   
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 )
 
  
@ RELEASE
Definition: ADSR.h:33
STK ADSR envelope class.
Definition: ADSR.h:25
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:21
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:276
@ DECAY
Definition: ADSR.h:31
@ SUSTAIN
Definition: ADSR.h:32
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).
@ ATTACK
Definition: ADSR.h:30
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
@ IDLE
Definition: ADSR.h:34