
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