49 |
|
|
50 |
EG_VCA(); |
EG_VCA(); |
51 |
void Process(uint Samples); |
void Process(uint Samples); |
52 |
void Trigger(uint PreAttack, double Attack, double Release); |
void Trigger(uint PreAttack, double Attack, double Release, uint Delay); |
53 |
void Release(); |
void Release(uint Delay); |
54 |
inline EG_VCA::stage_t GetStage() { return Stage; }; |
inline EG_VCA::stage_t GetStage() { return Stage; }; |
55 |
protected: |
protected: |
56 |
float Level; |
float Level; |
60 |
long AttackStepsLeft; ///< number of sample points til end of attack stage |
long AttackStepsLeft; ///< number of sample points til end of attack stage |
61 |
float ReleaseCoeff; |
float ReleaseCoeff; |
62 |
long ReleaseStepsLeft; ///< number of sample points til end of release stage |
long ReleaseStepsLeft; ///< number of sample points til end of release stage |
63 |
|
uint TriggerDelay; ///< number of sample points to triggering should be delayed |
64 |
|
uint ReleaseDelay; ///< number of sample points the release stage should be delayed |
65 |
|
|
66 |
inline long Min(long A, long B) { |
inline long Min(long A, long B) { |
67 |
return (A > B) ? B : A; |
return (A > B) ? B : A; |