summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_region.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2017-01-07 05:18:45 +1100
committernick_m <mainsbridge@gmail.com>2017-01-07 05:18:45 +1100
commitbacb93493df5c6baee5cc1e23a98e31646480309 (patch)
tree14663ea79732bde76d716134b1080c4364d4dd6b /libs/ardour/midi_region.cc
parent94a57e64f655c238aebd2780ea6c8b6727c48177 (diff)
fix incorrect _start after a split.
- when splitting a region where quantized notes start on the split point, the notes would sometimes vanish due to us deriving an exact quarter-note from the supplied frame. this only affects midi regions, as other region types have contents which are completely frame-based.
Diffstat (limited to 'libs/ardour/midi_region.cc')
-rw-r--r--libs/ardour/midi_region.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc
index bb02a79fdd..dcd084d2a6 100644
--- a/libs/ardour/midi_region.cc
+++ b/libs/ardour/midi_region.cc
@@ -110,6 +110,8 @@ MidiRegion::MidiRegion (boost::shared_ptr<const MidiRegion> other, frameoffset_t
if (offset != 0) {
_start_beats = (_session.tempo_map().exact_qn_at_frame (other->_position + offset, sub_num) - other->_quarter_note) + other->_start_beats;
update_length_beats (sub_num);
+ /* we've potentially shifted _start_beats, now reset _start frames to match */
+ _start = _session.tempo_map().frame_at_quarter_note (other->_quarter_note - other->_start_beats);
}
register_properties ();