From 3f4d49fd2f6fca3237668897e91212ea93b05b07 Mon Sep 17 00:00:00 2001 From: nick_m Date: Wed, 7 Sep 2016 00:18:35 +1000 Subject: Load midi region length and start correctly in sessions modified by v5.0 -> 5.3-41 --- libs/ardour/midi_region.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'libs/ardour/midi_region.cc') diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index cf72379211..67bd7a1b3d 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -439,10 +439,18 @@ MidiRegion::set_state (const XMLNode& node, int version) if (position_lock_style() == AudioTime) { update_length_beats (0); } - } - _start_pulse = _start_beats.val().to_double() / 4.0; - _length_pulse = _length_beats.val().to_double() / 4.0; + if (_session.midi_regions_use_bbt_beats()) { + info << _("Updating midi region start and length beats") << endmsg; + TempoMap& map (_session.tempo_map()); + _start_beats = Evoral::Beats ((map.pulse_at_beat (_beat) - map.pulse_at_beat (_beat - _start_beats.val().to_double())) * 4.0); + _length_beats = Evoral::Beats ((map.pulse_at_beat (_beat + _length_beats.val().to_double()) - map.pulse_at_beat (_beat)) * 4.0); + + } + + _start_pulse = _start_beats.val().to_double() / 4.0; + _length_pulse = _length_beats.val().to_double() / 4.0; + } return ret; } -- cgit v1.2.3