|
|
@@ -38,7 +38,7 @@ void ::SlewLimiter::step() { |
|
|
|
|
|
|
|
// Rise |
|
|
|
if (in > out) { |
|
|
|
float rise = inputs[RISE_INPUT].value + params[RISE_PARAM].value; |
|
|
|
float rise = inputs[RISE_INPUT].value / 10.0 + params[RISE_PARAM].value; |
|
|
|
float slew = slewMax * powf(slewMin / slewMax, rise); |
|
|
|
out += slew * crossf(1.0, shapeScale * (in - out), shape) / engineGetSampleRate(); |
|
|
|
if (out > in) |
|
|
@@ -46,7 +46,7 @@ void ::SlewLimiter::step() { |
|
|
|
} |
|
|
|
// Fall |
|
|
|
else if (in < out) { |
|
|
|
float fall = inputs[FALL_INPUT].value + params[FALL_PARAM].value; |
|
|
|
float fall = inputs[FALL_INPUT].value / 10.0 + params[FALL_PARAM].value; |
|
|
|
float slew = slewMax * powf(slewMin / slewMax, fall); |
|
|
|
out -= slew * crossf(1.0, shapeScale * (out - in), shape) / engineGetSampleRate(); |
|
|
|
if (out < in) |
|
|
|