From 1a17f1db63d38568921c7c087fc52c20eacfc531 Mon Sep 17 00:00:00 2001 From: versustunez Date: Mon, 22 Feb 2021 09:29:24 +0100 Subject: [PATCH] Fixed getDouble returns int only Added Rainbow Tail Factor --- headers/VulcanoLE/Scripts/RainbowLine.h | 1 + src/VUtils/Environment.cpp | 2 +- src/VulcanoLE/Scripts/RainbowLine.cpp | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/headers/VulcanoLE/Scripts/RainbowLine.h b/headers/VulcanoLE/Scripts/RainbowLine.h index ba6726c..8fa3efd 100644 --- a/headers/VulcanoLE/Scripts/RainbowLine.h +++ b/headers/VulcanoLE/Scripts/RainbowLine.h @@ -11,6 +11,7 @@ namespace VIZ { double lastValue = 0; double decayValue = 0; double ratios[4] = {1.3,1.2,1.3,1.4}; + double tailFactor = 0.3; public: RainbowLine(AudioGrabber *pGrabber, Vulcan121 *vulcan); ~RainbowLine() override; diff --git a/src/VUtils/Environment.cpp b/src/VUtils/Environment.cpp index 623cb50..b337785 100644 --- a/src/VUtils/Environment.cpp +++ b/src/VUtils/Environment.cpp @@ -62,7 +62,7 @@ namespace VUtils { double Environment::getAsDouble(const std::string &name, double def) { char *end; auto *v = getEnv(name, "").c_str(); - double val = (int) std::strtod(v, &end); + auto val = (double) std::strtod(v, &end); if (end == v) { setNumber(name.c_str(), def); return def; diff --git a/src/VulcanoLE/Scripts/RainbowLine.cpp b/src/VulcanoLE/Scripts/RainbowLine.cpp index ebdb23f..398b1a3 100644 --- a/src/VulcanoLE/Scripts/RainbowLine.cpp +++ b/src/VulcanoLE/Scripts/RainbowLine.cpp @@ -21,13 +21,14 @@ namespace VIZ { void RainbowLine::on_setup() { currentColumn = 0; updateMap(0); + tailFactor = VUtils::Math::clamp(grabber->env->getAsDouble("rainbow_tail_factor", 0.3), 0.0, 0.9); keyboard->send_led_to({ 0, 0, 0, 0 }); grabber->requestMode = AudioGrabber::ReqMode::FFT; usleep(100000); } void RainbowLine::on_tick(float delta) { - updateMap(0.3); + updateMap(tailFactor); deltaElapsed += delta; auto fftData = grabber->fft.getData()->leftChannel; auto val = 0.0;