summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_controller.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-09-24 21:10:31 +0200
committerJulien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr>2017-09-24 22:58:59 +0200
commita982a7cc67235a0f4ee77210e376d2eda6e612d2 (patch)
tree9350f496e2fb27d86b28b5701fbe490e69c574a8 /gtk2_ardour/automation_controller.cc
parent0910df0cc7817d5c96fc9c6085d05e30b2cfdb3e (diff)
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.
Diffstat (limited to 'gtk2_ardour/automation_controller.cc')
-rw-r--r--gtk2_ardour/automation_controller.cc4
1 files 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));