diff --git a/src/Scope.cpp b/src/Scope.cpp index 6a17245..e19af96 100644 --- a/src/Scope.cpp +++ b/src/Scope.cpp @@ -246,6 +246,9 @@ struct ScopeDisplay : TransparentWidget { } void draw(NVGcontext *vg) override { + if (!module) + return; + float gainX = powf(2.0f, roundf(module->params[Scope::X_SCALE_PARAM].value)); float gainY = powf(2.0f, roundf(module->params[Scope::Y_SCALE_PARAM].value)); float offsetX = module->params[Scope::X_POS_PARAM].value; diff --git a/src/VCA.cpp b/src/VCA.cpp index e2d2073..d6f9b5d 100644 --- a/src/VCA.cpp +++ b/src/VCA.cpp @@ -111,8 +111,9 @@ struct VCA_1VUKnob : Knob { } void draw(NVGcontext *vg) override { - if (!quantity || !module) + if (!quantity) return; + float lastCv = module ? module->lastCv : 1.f; nvgBeginPath(vg); nvgRoundedRect(vg, 0, 0, box.size.x, box.size.y, 2.0); @@ -126,7 +127,7 @@ struct VCA_1VUKnob : Knob { for (int i = 0; i < segs; i++) { float value = quantity->getValue(); float segValue = clamp(value * segs - (segs - i - 1), 0.f, 1.f); - float amplitude = value * module->lastCv; + float amplitude = value * lastCv; float segAmplitude = clamp(amplitude * segs - (segs - i - 1), 0.f, 1.f); nvgBeginPath(vg); nvgRect(vg, r.pos.x, r.pos.y + r.size.y / segs * i + 0.5,