tempo mapping: adjust BPM delta during a twist to reflect zoom level

This commit is contained in:
Paul Davis 2023-04-13 10:56:59 -06:00
parent b362d2b6ba
commit 040dae9b0d
1 changed files with 6 additions and 1 deletions

View File

@ -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);