diff options
Diffstat (limited to 'gtk2_ardour/step_editor.cc')
-rw-r--r-- | gtk2_ardour/step_editor.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gtk2_ardour/step_editor.cc b/gtk2_ardour/step_editor.cc index e19f89fa4a..e8579a94f5 100644 --- a/gtk2_ardour/step_editor.cc +++ b/gtk2_ardour/step_editor.cc @@ -118,7 +118,12 @@ StepEditor::prepare_step_edit_region () 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); - step_edit_region = _mtv.add_region (step_edit_insert_position, floor (m.frames_per_bar (t, _mtv.session()->frame_rate())), true); + double baf = _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; + + step_edit_region = _mtv.add_region (step_edit_insert_position, len, true); RegionView* rv = _mtv.midi_view()->find_view (step_edit_region); step_edit_region_view = dynamic_cast<MidiRegionView*>(rv); |