⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adsr.h

📁 Mobile STK for Symbian OS V0.1
💻 H
字号:
/***************************************************//*! \class ADSR    \brief STK ADSR envelope class.    This Envelope subclass implements a    traditional ADSR (Attack, Decay,    Sustain, Release) envelope.  It    responds to simple keyOn and keyOff    messages, keeping track of its state.    The \e state = ADSR::DONE after the    envelope value reaches 0.0 in the    ADSR::RELEASE state.    by Perry R. Cook and Gary P. Scavone, 1995 - 2005.*//***************************************************/#ifndef STK_ADSR_H#define STK_ADSR_H#include "Envelope.h"class ADSR : public Envelope{ public:  //! Envelope states.  enum { ATTACK, DECAY, SUSTAIN, RELEASE, DONE };  //! Default constructor.  ADSR(void);  //! Class destructor.  ~ADSR(void);  //! Set target = 1, state = \e ADSR::ATTACK.  void keyOn(void);  //! Set target = 0, state = \e ADSR::RELEASE.  void keyOff(void);  //! Set the attack rate.  void setAttackRate(StkFloat rate);  //! Set the decay rate.  void setDecayRate(StkFloat rate);  //! Set the sustain level.  void setSustainLevel(StkFloat level);  //! Set the release rate.  void setReleaseRate(StkFloat rate);  //! Set the attack rate based on a time duration.  void setAttackTime(StkFloat time);  //! Set the decay rate based on a time duration.  void setDecayTime(StkFloat time);  //! Set the release rate based on a time duration.  void setReleaseTime(StkFloat time);  //! Set sustain level and attack, decay, and release time durations.  void setAllTimes(StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime);  //! Set the target value.  void setTarget(StkFloat target);  //! Return the current envelope \e state (ATTACK, DECAY, SUSTAIN, RELEASE, DONE).  int getState(void) const;  //! Set to state = ADSR::SUSTAIN with current and target values of \e aValue.  void setValue(StkFloat value); protected:    StkFloat computeSample( void );  StkFloat attackRate_;  StkFloat decayRate_;  StkFloat sustainLevel_;  StkFloat releaseRate_;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -