X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstep_editor.cc;h=ac51076a46a11d31acdebd7026600b7e2a8ee572;hb=54fd56de755a44420d906ad660b18c2d671f1057;hp=e8579a94f584ee3948c7423bfddda29e59847c09;hpb=dbfe991cd862aa1d420c65c9808e5f4e199995ed;p=ardour.git diff --git a/gtk2_ardour/step_editor.cc b/gtk2_ardour/step_editor.cc index e8579a94f5..ac51076a46 100644 --- a/gtk2_ardour/step_editor.cc +++ b/gtk2_ardour/step_editor.cc @@ -115,10 +115,8 @@ StepEditor::prepare_step_edit_region () } else { - const Meter& m = _mtv.session()->tempo_map().meter_at (step_edit_insert_position); - const Tempo& t = _mtv.session()->tempo_map().tempo_at (step_edit_insert_position); - - double baf = _mtv.session()->tempo_map().beat_at_frame (step_edit_insert_position); + const Meter& m = _mtv.session()->tempo_map().meter_at_frame (step_edit_insert_position); + double baf = max (0.0, _mtv.session()->tempo_map().beat_at_frame (step_edit_insert_position)); double next_bar_in_beats = baf + m.divisions_per_bar(); framecnt_t next_bar_pos = _mtv.session()->tempo_map().frame_at_beat (next_bar_in_beats); framecnt_t len = next_bar_pos - step_edit_insert_position; @@ -325,6 +323,8 @@ StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evo _step_edit_chord_duration = max (_step_edit_chord_duration, beat_duration); } + step_edit_region_view->set_step_edit_cursor_width (step_editor->note_length()); + return 0; } @@ -410,7 +410,7 @@ StepEditor::step_edit_bar_sync () } framepos_t fpos = step_edit_region_view->region_beats_to_absolute_frames (step_edit_beat_pos); - fpos = _session->tempo_map().round_to_bar (fpos, RoundUpAlways); + fpos = _session->tempo_map().round_to_bar (fpos, RoundUpAlways).frame; step_edit_beat_pos = step_edit_region_view->region_frames_to_region_beats (fpos - step_edit_region->position()).round_up_to_beat(); step_edit_region_view->move_step_edit_cursor (step_edit_beat_pos); }