diff --git a/libs/temporal/timeline.cc b/libs/temporal/timeline.cc index a800756e89..cb118597eb 100644 --- a/libs/temporal/timeline.cc +++ b/libs/temporal/timeline.cc @@ -705,14 +705,20 @@ timepos_t::operator+=(timepos_t const & d) { if (d.is_beats() == is_beats()) { + /* same time domain, keep flag bit, add values */ + v = build (flagged(), val() + d.val()); } else { + /* different time domain, return a value in the same domain as + * this one + */ + if (is_beats()) { - v = build (false, val() + d.ticks()); + v = build (true, val() + d.ticks()); } else { - v = build (true, val() + d.superclocks()); + v = build (false, val() + d.superclocks()); } }