diff --git a/libs/temporal/tempo.cc b/libs/temporal/tempo.cc index 9a5dd01969..b16c931a9d 100644 --- a/libs/temporal/tempo.cc +++ b/libs/temporal/tempo.cc @@ -1390,6 +1390,19 @@ TempoMap::set_tempo (Tempo const & t, timepos_t const & time) return *ret; } +TempoPoint & +TempoMap::set_tempo (Tempo const & t, timepos_t const & time, Beats const & beats) +{ + assert (!time.is_beats()); + BBT_Time bbt; + + TempoMetric metric (metric_at (beats, false)); + bbt = metric.bbt_at (beats); + TempoPoint* tp = new TempoPoint (*this, t, time.superclocks(), beats, bbt); + TempoPoint* ret = add_tempo (tp); + return *ret; +} + void TempoMap::core_add_point (Point* pp) { diff --git a/libs/temporal/temporal/tempo.h b/libs/temporal/temporal/tempo.h index 70feee94fb..6305169824 100644 --- a/libs/temporal/temporal/tempo.h +++ b/libs/temporal/temporal/tempo.h @@ -1180,6 +1180,7 @@ class /*LIBTEMPORAL_API*/ TempoMap : public PBD::StatefulDestructible int parse_tempo_state_3x (const XMLNode& node, LegacyTempoState& lts); int parse_meter_state_3x (const XMLNode& node, LegacyMeterState& lts); int set_state_3x (XMLNode const &); + TempoPoint & set_tempo (Tempo const & t, timepos_t const & time, Beats const & beats); friend class TempoPoint; friend class MeterPoint;