+ 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().frames_between_quarter_notes (_quarter_note - _start_beats, _quarter_note);
+ }