commit 58ce4bf8c9af5448956a07218e626d124c402e8e
parent e5ae4d2dd633f75c2472a15060a80b2b42791331
Author: Matt Demanett <matt@demanett.net>
Date: Thu, 9 May 2019 22:30:09 -0400
Walks: adjust rate response.
Diffstat:
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/Walk.cpp b/src/Walk.cpp
@@ -20,8 +20,7 @@ void Walk::step() {
if (inputs[RATE_INPUT].active) {
rate *= clamp(inputs[RATE_INPUT].value / 10.0f, 0.0f, 1.0f);
}
- rate *= rate;
- rate *= rate;
+ rate = 0.2f * powf(rate, 5.0f);
_walk.setParams(engineGetSampleRate(), rate);
_offset = params[OFFSET_PARAM].value;
diff --git a/src/Walk2.cpp b/src/Walk2.cpp
@@ -38,6 +38,10 @@ void Walk2::fromJson(json_t* root) {
}
}
+inline float scaleRate(float rate) {
+ return 0.2f * powf(rate, 5.0f);
+}
+
void Walk2::step() {
++_modulationStep;
if (_modulationStep >= modulationSteps) {
@@ -48,8 +52,7 @@ void Walk2::step() {
if (inputs[RATE_X_INPUT].active) {
rateX *= clamp(inputs[RATE_X_INPUT].value / 10.0f, 0.0f, 1.0f);
}
- rateX *= rateX;
- rateX *= rateX;
+ rateX = scaleRate(rateX);
_walkX.setParams(sampleRate, rateX);
_slewX.setParams(sampleRate, std::max((1.0f - rateX) * 100.0f, 0.0f), 10.0f);
@@ -68,8 +71,7 @@ void Walk2::step() {
if (inputs[RATE_Y_INPUT].active) {
rateY *= clamp(inputs[RATE_Y_INPUT].value / 10.0f, 0.0f, 1.0f);
}
- rateY *= rateY;
- rateY *= rateY;
+ rateY = scaleRate(rateY);
_walkY.setParams(sampleRate, rateY);
_slewY.setParams(sampleRate, std::max((1.0f - rateY) * 100.0f, 0.0f), 10.0f);