From 040dae9b0df1c8176d65b6fba520ae1753d9f57d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 13 Apr 2023 10:56:59 -0600 Subject: [PATCH] tempo mapping: adjust BPM delta during a twist to reflect zoom level --- gtk2_ardour/editor_drag.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 23964cd90e..55f2664b47 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3789,7 +3789,12 @@ MappingTwistDrag::motion (GdkEvent* event, bool first_move) /* XXX needs to scale somehow with zoom level */ - delta += 0.75 * (last_pointer_x() - _drags->current_pointer_x()); + const double pixel_distance = last_pointer_x() - _drags->current_pointer_x(); + const double spp = _editor->get_current_zoom(); + const double scaling_factor = 0.4 * (spp / 1000.); + + delta += scaling_factor * pixel_distance; + std::cerr << "pixels: " << pixel_distance << " @ " << spp << " spp SF " << scaling_factor << " => delta " << delta << std::endl; map->twist_tempi (prev, focus, next, initial_npm + delta); _editor->mid_tempo_change (Editor::MappingChanged);