00001
00017
00018
00019 #ifndef ENVELOPE_H
00020 #define ENVELOPE_H
00021
00022 #include "GenTable.h"
00023 #include "AudioDrome.h"
00024 #include "Phasor.h"
00025
00026 class Envelope : public Phasor
00027 {
00028 public:
00030
00036 Envelope (const float &sr, GenTable* shape, const INTERPOLATION& interp=LINEAR);
00037
00039 ~Envelope ();
00040
00042 void setShape (GenTable* shape);
00043
00045
00051 void setInterp (const INTERPOLATION &type=LINEAR);
00052
00054
00069 void inArg (const float &dur, const float &attack, const float &decay);
00070
00072 void setDuration (const float &dur);
00073
00075 void setAttack (const float &attack);
00076
00078 void setDecay (const float &decay);
00079
00081 void reinitEnv ();
00082
00084
00090 virtual float outSig ();
00091
00093 float outTrapezoid ();
00094
00095 protected:
00096 float _attack;
00097 float _decay;
00098 float _sus;
00099 GenTable* _shape;
00100 float (GenTable::*_interpPtr) (const double &);
00101 };
00102 #endif