From a982a7cc67235a0f4ee77210e376d2eda6e612d2 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 24 Sep 2017 21:10:31 +0200 Subject: [PATCH] Fix computation of AutomationController steps smallstep (resp. largestep) is intended to be the interface delta corresponding to a desc.smallstep (resp. largestep) in internal scale, and is computed by incrementing from desc.lower. But ac->internal_to_interface(desc.lower) isn't necessarily zero. In fact it currently is 0.5 / (M - m + 1) for integer parameters where M is the maximum and m is the minimum possible value since it is the center of the [0,1/(M-m+1)] interval. Since the lower bound of the delta isn't always zero, don't ignore it when computing the actual increment. --- gtk2_ardour/automation_controller.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/automation_controller.cc b/gtk2_ardour/automation_controller.cc index ac4fcc253e..5502cf5001 100644 --- a/gtk2_ardour/automation_controller.cc +++ b/gtk2_ardour/automation_controller.cc @@ -142,8 +142,8 @@ AutomationController::create(const Evoral::Parameter& param, const double lo = ac->internal_to_interface(desc.lower); const double up = ac->internal_to_interface(desc.upper); const double normal = ac->internal_to_interface(desc.normal); - const double smallstep = ac->internal_to_interface(desc.lower + desc.smallstep); - const double largestep = ac->internal_to_interface(desc.lower + desc.largestep); + const double smallstep = ac->internal_to_interface(desc.lower + desc.smallstep) - lo; + const double largestep = ac->internal_to_interface(desc.lower + desc.largestep) - lo; Gtk::Adjustment* adjustment = manage ( new Gtk::Adjustment (normal, lo, up, smallstep, largestep));