diff options
author | nick_m <mainsbridge@gmail.com> | 2017-01-07 05:18:45 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2017-01-07 05:18:45 +1100 |
commit | bacb93493df5c6baee5cc1e23a98e31646480309 (patch) | |
tree | 14663ea79732bde76d716134b1080c4364d4dd6b /libs/ardour/midi_region.cc | |
parent | 94a57e64f655c238aebd2780ea6c8b6727c48177 (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.cc | 2 |
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 (); |