diff options
Diffstat (limited to 'modules/extlib_util.h')
-rw-r--r-- | modules/extlib_util.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/extlib_util.h b/modules/extlib_util.h index ea292be..195d85f 100644 --- a/modules/extlib_util.h +++ b/modules/extlib_util.h @@ -31,7 +31,17 @@ #define ENVELOPE_MIN ENVELOPE_RANGE /* convert milliseconds to 1-p, with p a real pole */ -float milliseconds_2_one_minus_realpole(float time); +static inline float milliseconds_2_one_minus_realpole(float time) +{ + float r; + + if (time < 0.0f) time = 0.0f; + r = -expm1(1000.0f * log(ENVELOPE_RANGE) / (sys_getsr() * time)); + if (!(r < 1.0f)) r = 1.0f; + + //post("%f",r); + return r; +} typedef union |