From 2e501fd77ae87d3a5b03b56b876c136afa44658a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 19 May 2021 18:32:00 -0600 Subject: [PATCH] ensure the BasicUI implementation of rewind/ffwd is the same as the ARDOUR_UI one --- libs/surfaces/control_protocol/basic_ui.cc | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/libs/surfaces/control_protocol/basic_ui.cc b/libs/surfaces/control_protocol/basic_ui.cc index b16f1a7ebc..0ce5a7e10b 100644 --- a/libs/surfaces/control_protocol/basic_ui.cc +++ b/libs/surfaces/control_protocol/basic_ui.cc @@ -240,11 +240,16 @@ BasicUI::button_varispeed (bool fwd) if (fwd) { if (transport_speed < 0.f) { - /* we need to move the speed back towards zero */ if (fabs (transport_speed) < octave_down) { - semitone_ratio = pow (1.0/semitone_ratio, 4.0); + /* we need to move the speed back towards zero */ + semitone_ratio = powf (1.f / semitone_ratio, 4.f); } else { - semitone_ratio = 1.0/semitone_ratio; + semitone_ratio = 1.f / semitone_ratio; + } + } else { + if (fabs (transport_speed) < octave_down) { + /* moving very slowly, use 4 semitone steps */ + semitone_ratio = powf (semitone_ratio, 4.f); } } } else { @@ -252,9 +257,14 @@ BasicUI::button_varispeed (bool fwd) /* we need to move the speed back towards zero */ if (transport_speed < octave_down) { - semitone_ratio = pow (1.0/semitone_ratio, 4.0); + semitone_ratio = powf (1.f / semitone_ratio, 4.f); } else { - semitone_ratio = 1.0/semitone_ratio; + semitone_ratio = 1.f / semitone_ratio; + } + } else { + if (fabs (transport_speed) < octave_down) { + /* moving very slowly, use 4 semitone steps */ + semitone_ratio = powf (semitone_ratio, 4.f); } } }