Ardour  9.0-pre0-349-gc9645723de
Temporal::TempoMap Class Reference

#include <tempo.h>

Inheritance diagram for Temporal::TempoMap:
[legend]

Classes

struct  const_traits
 
struct  EmptyTempoMapException
 
struct  LegacyMeterState
 
struct  LegacyTempoState
 
struct  non_const_traits
 

Public Types

typedef std::shared_ptr< TempoMap const > SharedPtr
 
typedef std::shared_ptr< TempoMapWritableSharedPtr
 
typedef std::list< Point const * > Metrics
 

Public Member Functions

superclock_t reftime (TempoPoint const &, MeterPoint const &) const
 
 TempoMap ()
 
 TempoMap (Tempo const &initial_tempo, Meter const &initial_meter)
 
 TempoMap (TempoMap const &)
 
 TempoMap (XMLNode const &, int version)
 
 ~TempoMap ()
 
TempoMapoperator= (TempoMap const &)
 
void sample_rate_changed (samplecnt_t new_sr)
 
bool set_ramped (TempoPoint &, bool)
 
bool set_continuing (TempoPoint &, bool)
 
bool remove_time (timepos_t const &pos, timecnt_t const &duration)
 
void change_tempo (TempoPoint &, Tempo const &)
 
void set_bartime (BBT_Time const &, timepos_t const &, std::string name=std::string())
 
void remove_bartime (MusicTimePoint const &tp, bool with_reset=true)
 
void replace_bartime (MusicTimePoint &tp, bool with_reset=true)
 
TempoPointset_tempo (Tempo const &, BBT_Argument const &)
 
TempoPointset_tempo (Tempo const &, timepos_t const &)
 
void replace_tempo (TempoPoint const &old, Tempo const &thenew, timepos_t const &)
 
MeterPointset_meter (Meter const &, BBT_Argument const &)
 
MeterPointset_meter (Meter const &, timepos_t const &)
 
void remove_tempo (TempoPoint const &, bool with_reset=true)
 
void remove_meter (MeterPoint const &, bool with_reset=true)
 
bool move_tempo (TempoPoint const &point, timepos_t const &destination, bool push=false)
 
bool move_meter (MeterPoint const &point, timepos_t const &destination, bool push=false)
 
int set_state (XMLNode const &, int version)
 
void constant_twist_tempi (TempoPoint &prev, TempoPoint &focus, TempoPoint &next, double tempo_delta)
 
void ramped_twist_tempi (TempoPoint &prev, TempoPoint &focus, TempoPoint &next, double tempo_delta)
 
void stretch_tempo (TempoPoint &ts, double new_npm)
 
void stretch_tempo_end (TempoPoint *ts, samplepos_t sample, samplepos_t end_sample)
 
bool clear_tempos_before (timepos_t const &, bool stop_at_music_time)
 
bool clear_tempos_after (timepos_t const &, bool stop_at_music_time)
 
void get_metrics (Metrics &m) const
 
bool can_remove (TempoPoint const &) const
 
bool can_remove (MeterPoint const &) const
 
bool is_initial (TempoPoint const &) const
 
bool is_initial (MeterPoint const &) const
 
uint32_t n_meters () const
 
uint32_t n_tempos () const
 
TempoPoint const * previous_tempo (TempoPoint const &) const
 
TempoPoint const * next_tempo (TempoPoint const &) const
 
MeterPoint const * previous_meter (MeterPoint const &) const
 
MeterPoint const * next_meter (MeterPoint const &) const
 
bool tempo_exists_before (TempoPoint const &t) const
 
bool tempo_exists_after (TempoPoint const &t) const
 
Meter const * next_meter (Meter const &) const
 
TempoMetric metric_at (timepos_t const &) const
 
TempoMetric metric_at (Beats const &, bool can_match=true) const
 
TempoMetric metric_at (BBT_Argument const &, bool can_match=true) const
 
TempoMapCutBuffercut (timepos_t const &start, timepos_t const &end, bool ripple)
 
TempoMapCutBuffercopy (timepos_t const &start, timepos_t const &end)
 
void paste (TempoMapCutBuffer const &, timepos_t const &position, bool ripple, std::string=std::string())
 
void shift (timepos_t const &at, BBT_Offset const &by)
 
void shift (timepos_t const &at, timecnt_t const &by)
 
MeterPoint const & meter_at (timepos_t const &p) const
 
MeterPoint const & meter_at (superclock_t sc) const
 
MeterPoint const & meter_at (Beats const &b) const
 
MeterPoint const & meter_at (BBT_Argument const &bbt) const
 
TempoPoint const & tempo_at (timepos_t const &p) const
 
TempoPoint const & tempo_at (superclock_t sc) const
 
TempoPoint const & tempo_at (Beats const &b) const
 
TempoPoint const & tempo_at (BBT_Argument const &bbt) const
 
double max_notes_per_minute () const
 
double min_notes_per_minute () const
 
double quarters_per_minute_at (timepos_t const &pos) const
 
BBT_Argument round_to_bar (BBT_Argument const &bbt) const
 
BBT_Argument round_up_to_bar (BBT_Argument const &bbt) const
 
BBT_Argument bbt_at (timepos_t const &) const
 
BBT_Argument bbt_at (Beats const &) const
 
Beats quarters_at (BBT_Argument const &) const
 
Beats quarters_at (timepos_t const &) const
 
superclock_t superclock_at (Beats const &) const
 
superclock_t superclock_at (BBT_Argument const &) const
 
superclock_t superclock_at (timepos_t const &) const
 
samplepos_t sample_at (Beats const &b) const
 
samplepos_t sample_at (BBT_Argument const &b) const
 
samplepos_t sample_at (timepos_t const &t) const
 
Beats scwalk_to_quarters (superclock_t pos, superclock_t distance) const
 
Beats scwalk_to_quarters (Beats const &pos, superclock_t distance) const
 
timecnt_t bbt_duration_at (timepos_t const &pos, BBT_Offset const &bbt) const
 
Beats bbtwalk_to_quarters (Beats const &start, BBT_Offset const &distance) const
 
Beats bbtwalk_to_quarters (BBT_Argument const &start, BBT_Offset const &distance) const
 
Temporal::timecnt_t convert_duration (Temporal::timecnt_t const &duration, Temporal::timepos_t const &, Temporal::TimeDomain domain) const
 
BBT_Argument bbt_walk (BBT_Argument const &, BBT_Offset const &) const
 
Tempos const & tempos () const
 
Meters const & meters () const
 
MusicTimes const & bartimes () const
 
Points::const_iterator get_grid (TempoMapPoints &points, superclock_t start, superclock_t end, uint32_t bar_mod=0, uint32_t beat_div=1) const
 
void get_grid (GridIterator &iter, TempoMapPoints &ret, superclock_t rstart, superclock_t end, uint32_t bar_mod=0, uint32_t beat_div=1) const
 
void grid (TempoMapPoints &points, superclock_t start, superclock_t end, uint32_t bar_mod=0, uint32_t beat_div=1) const
 
void dump (std::ostream &) const
 
XMLNodeget_state () const
 
Beats quarters_at_sample (samplepos_t sc) const
 
Beats quarters_at_superclock (superclock_t sc) const
 
void midi_clock_beat_at_or_after (samplepos_t const pos, samplepos_t &clk_pos, uint32_t &clk_beat) const
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 

Static Public Member Functions

static void init ()
 
static void update_thread_tempo_map ()
 
static SharedPtr use ()
 
static SharedPtr fetch ()
 
static SharedPtr read ()
 
static void set (SharedPtr new_map)
 
static WritableSharedPtr write_copy ()
 
static int update (WritableSharedPtr m)
 
static void abort_update ()
 
static void map_assert (bool expr, char const *exprstr, char const *file, int line)
 

Static Public Attributes

static PBD::Signal< void()> MapChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 

Private Member Functions

template<typename TimeType , typename Comparator >
TempoPoint const & _tempo_at (TimeType when, Comparator cmp) const
 
template<typename TimeType , typename Comparator >
MeterPoint const & _meter_at (TimeType when, Comparator cmp) const
 
int set_tempos_from_state (XMLNode const &)
 
int set_meters_from_state (XMLNode const &)
 
int set_music_times_from_state (XMLNode const &)
 
TempoPointcore_add_tempo (TempoPoint *, bool &)
 
MeterPointcore_add_meter (MeterPoint *, bool &)
 
MusicTimePointcore_add_bartime (MusicTimePoint *, bool &)
 
void core_add_point (Point *)
 
MeterPointset_meter (Meter const &, superclock_t)
 
TempoPointadd_tempo (TempoPoint *)
 
MeterPointadd_meter (MeterPoint *)
 
MusicTimePointadd_or_replace_bartime (MusicTimePoint *)
 
void add_point (Point &)
 
void reset_starting_at (superclock_t)
 
void reset_starting_at (Beats const &)
 
void remove_point (Point const &)
 
void copy_points (TempoMap const &other)
 
BBT_Argument bbt_at (superclock_t sc) const
 
template<class constness_traits_t >
constness_traits_t::iterator_type _get_tempo_and_meter (typename constness_traits_t::tempo_point_type &, typename constness_traits_t::meter_point_type &, typename constness_traits_t::time_reference(Point::*)() const, typename constness_traits_t::time_type, typename constness_traits_t::iterator_type begini, typename constness_traits_t::iterator_type endi, typename constness_traits_t::tempo_point_type tstart, typename constness_traits_t::meter_point_type mstart, bool can_match, bool ret_iterator_after_not_at) const
 
Points::iterator get_tempo_and_meter (TempoPoint *&t, MeterPoint *&m, superclock_t sc, bool can_match, bool ret_iterator_after_not_at)
 
Points::const_iterator get_tempo_and_meter (TempoPoint const *&t, MeterPoint const *&m, superclock_t sc, bool can_match, bool ret_iterator_after_not_at) const
 
Points::const_iterator get_tempo_and_meter (TempoPoint const *&t, MeterPoint const *&m, Beats const &b, bool can_match, bool ret_iterator_after_not_at) const
 
Points::const_iterator get_tempo_and_meter (TempoPoint const *&t, MeterPoint const *&m, BBT_Argument const &bbt, bool can_match, bool ret_iterator_after_not_at) const
 
TempoMetric metric_at (superclock_t, bool can_match=true) const
 
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 &)
 
TempoPointset_tempo (Tempo const &t, timepos_t const &time, Beats const &beats)
 
bool solve_ramped_twist (TempoPoint &, TempoPoint &)
 
bool solve_constant_twist (TempoPoint &, TempoPoint &)
 
bool core_remove_meter (MeterPoint const &)
 
bool core_remove_tempo (TempoPoint const &)
 
bool core_remove_bartime (MusicTimePoint const &)
 
void reset_section (Points::iterator &begin, Points::iterator &end, superclock_t, TempoMetric &metric)
 
TempoMapCutBuffercut_copy (timepos_t const &start, timepos_t const &end, bool copy, bool ripple)
 
void fill_grid_by_walking (TempoMapPoints &ret, Points::const_iterator &p, TempoMetric &metric, superclock_t &start, superclock_t rstart, superclock_t end, int bar_mod, int beat_div, Beats &beats, BBT_Time &bbt) const
 
void fill_grid_with_final_metric (TempoMapPoints &ret, TempoMetric metric, superclock_t start, superclock_t rstart, superclock_t end, int bar_mod, int beat_div, Beats beats, BBT_Time bbt) const
 

Private Attributes

Tempos _tempos
 
Meters _meters
 
MusicTimes _bartimes
 
Points _points
 

Static Private Attributes

static thread_local SharedPtr _tempo_map_p
 
static SerializedRCUManager< TempoMap_map_mgr
 

Friends

class TempoPoint
 
class MeterPoint
 
class TempoMetric
 

Additional Inherited Members

- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Detailed Description

Definition at line 693 of file temporal/temporal/tempo.h.

Member Typedef Documentation

◆ Metrics

typedef std::list<Point const *> Temporal::TempoMap::Metrics

Definition at line 827 of file temporal/temporal/tempo.h.

◆ SharedPtr

typedef std::shared_ptr<TempoMap const> Temporal::TempoMap::SharedPtr

Definition at line 733 of file temporal/temporal/tempo.h.

◆ WritableSharedPtr

Definition at line 734 of file temporal/temporal/tempo.h.

Constructor & Destructor Documentation

◆ TempoMap() [1/4]

Temporal::TempoMap::TempoMap ( )
inline

Definition at line 769 of file temporal/temporal/tempo.h.

◆ TempoMap() [2/4]

Temporal::TempoMap::TempoMap ( Tempo const &  initial_tempo,
Meter const &  initial_meter 
)

◆ TempoMap() [3/4]

Temporal::TempoMap::TempoMap ( TempoMap const &  )

◆ TempoMap() [4/4]

Temporal::TempoMap::TempoMap ( XMLNode const &  ,
int  version 
)

◆ ~TempoMap()

Temporal::TempoMap::~TempoMap ( )

Member Function Documentation

◆ _get_tempo_and_meter()

template<class constness_traits_t >
constness_traits_t::iterator_type Temporal::TempoMap::_get_tempo_and_meter ( typename constness_traits_t::tempo_point_type &  ,
typename constness_traits_t::meter_point_type &  ,
typename constness_traits_t::time_reference(Point::*)() const  ,
typename constness_traits_t::time_type  ,
typename constness_traits_t::iterator_type  begini,
typename constness_traits_t::iterator_type  endi,
typename constness_traits_t::tempo_point_type  tstart,
typename constness_traits_t::meter_point_type  mstart,
bool  can_match,
bool  ret_iterator_after_not_at 
) const
private

◆ _meter_at()

template<typename TimeType , typename Comparator >
MeterPoint const& Temporal::TempoMap::_meter_at ( TimeType  when,
Comparator  cmp 
) const
inlineprivate

Definition at line 894 of file temporal/temporal/tempo.h.

◆ _tempo_at()

template<typename TimeType , typename Comparator >
TempoPoint const& Temporal::TempoMap::_tempo_at ( TimeType  when,
Comparator  cmp 
) const
inlineprivate

Definition at line 873 of file temporal/temporal/tempo.h.

◆ abort_update()

static void Temporal::TempoMap::abort_update ( )
static

◆ add_meter()

MeterPoint* Temporal::TempoMap::add_meter ( MeterPoint )
private

◆ add_or_replace_bartime()

MusicTimePoint* Temporal::TempoMap::add_or_replace_bartime ( MusicTimePoint )
private

◆ add_point()

void Temporal::TempoMap::add_point ( Point )
private

◆ add_tempo()

TempoPoint* Temporal::TempoMap::add_tempo ( TempoPoint )
private

◆ bartimes()

MusicTimes const& Temporal::TempoMap::bartimes ( ) const
inline

Definition at line 973 of file temporal/temporal/tempo.h.

◆ bbt_at() [1/3]

BBT_Argument Temporal::TempoMap::bbt_at ( Beats const &  ) const

◆ bbt_at() [2/3]

BBT_Argument Temporal::TempoMap::bbt_at ( superclock_t  sc) const
private

◆ bbt_at() [3/3]

BBT_Argument Temporal::TempoMap::bbt_at ( timepos_t const &  ) const

◆ bbt_duration_at()

timecnt_t Temporal::TempoMap::bbt_duration_at ( timepos_t const &  pos,
BBT_Offset const &  bbt 
) const

◆ bbt_walk()

BBT_Argument Temporal::TempoMap::bbt_walk ( BBT_Argument const &  ,
BBT_Offset const &   
) const

◆ bbtwalk_to_quarters() [1/2]

Beats Temporal::TempoMap::bbtwalk_to_quarters ( BBT_Argument const &  start,
BBT_Offset const &  distance 
) const

◆ bbtwalk_to_quarters() [2/2]

Beats Temporal::TempoMap::bbtwalk_to_quarters ( Beats const &  start,
BBT_Offset const &  distance 
) const

◆ can_remove() [1/2]

bool Temporal::TempoMap::can_remove ( MeterPoint const &  ) const

◆ can_remove() [2/2]

bool Temporal::TempoMap::can_remove ( TempoPoint const &  ) const

◆ change_tempo()

void Temporal::TempoMap::change_tempo ( TempoPoint ,
Tempo const &   
)

◆ clear_tempos_after()

bool Temporal::TempoMap::clear_tempos_after ( timepos_t const &  ,
bool  stop_at_music_time 
)

◆ clear_tempos_before()

bool Temporal::TempoMap::clear_tempos_before ( timepos_t const &  ,
bool  stop_at_music_time 
)

◆ constant_twist_tempi()

void Temporal::TempoMap::constant_twist_tempi ( TempoPoint prev,
TempoPoint focus,
TempoPoint next,
double  tempo_delta 
)

◆ convert_duration()

Temporal::timecnt_t Temporal::TempoMap::convert_duration ( Temporal::timecnt_t const &  duration,
Temporal::timepos_t const &  ,
Temporal::TimeDomain  domain 
) const

◆ copy()

TempoMapCutBuffer* Temporal::TempoMap::copy ( timepos_t const &  start,
timepos_t const &  end 
)

◆ copy_points()

void Temporal::TempoMap::copy_points ( TempoMap const &  other)
private

◆ core_add_bartime()

MusicTimePoint* Temporal::TempoMap::core_add_bartime ( MusicTimePoint ,
bool &   
)
private

◆ core_add_meter()

MeterPoint* Temporal::TempoMap::core_add_meter ( MeterPoint ,
bool &   
)
private

◆ core_add_point()

void Temporal::TempoMap::core_add_point ( Point )
private

◆ core_add_tempo()

TempoPoint* Temporal::TempoMap::core_add_tempo ( TempoPoint ,
bool &   
)
private

◆ core_remove_bartime()

bool Temporal::TempoMap::core_remove_bartime ( MusicTimePoint const &  )
private

◆ core_remove_meter()

bool Temporal::TempoMap::core_remove_meter ( MeterPoint const &  )
private

◆ core_remove_tempo()

bool Temporal::TempoMap::core_remove_tempo ( TempoPoint const &  )
private

◆ cut()

TempoMapCutBuffer* Temporal::TempoMap::cut ( timepos_t const &  start,
timepos_t const &  end,
bool  ripple 
)

◆ cut_copy()

TempoMapCutBuffer* Temporal::TempoMap::cut_copy ( timepos_t const &  start,
timepos_t const &  end,
bool  copy,
bool  ripple 
)
private

◆ dump()

void Temporal::TempoMap::dump ( std::ostream &  ) const

◆ fetch()

static SharedPtr Temporal::TempoMap::fetch ( )
inlinestatic

Definition at line 743 of file temporal/temporal/tempo.h.

◆ fill_grid_by_walking()

void Temporal::TempoMap::fill_grid_by_walking ( TempoMapPoints ret,
Points::const_iterator &  p,
TempoMetric metric,
superclock_t start,
superclock_t  rstart,
superclock_t  end,
int  bar_mod,
int  beat_div,
Beats beats,
BBT_Time bbt 
) const
private

◆ fill_grid_with_final_metric()

void Temporal::TempoMap::fill_grid_with_final_metric ( TempoMapPoints ret,
TempoMetric  metric,
superclock_t  start,
superclock_t  rstart,
superclock_t  end,
int  bar_mod,
int  beat_div,
Beats  beats,
BBT_Time  bbt 
) const
private

◆ get_grid() [1/2]

void Temporal::TempoMap::get_grid ( GridIterator iter,
TempoMapPoints ret,
superclock_t  rstart,
superclock_t  end,
uint32_t  bar_mod = 0,
uint32_t  beat_div = 1 
) const

◆ get_grid() [2/2]

Points::const_iterator Temporal::TempoMap::get_grid ( TempoMapPoints points,
superclock_t  start,
superclock_t  end,
uint32_t  bar_mod = 0,
uint32_t  beat_div = 1 
) const

◆ get_metrics()

void Temporal::TempoMap::get_metrics ( Metrics m) const
inline

Definition at line 829 of file temporal/temporal/tempo.h.

◆ get_state()

XMLNode& Temporal::TempoMap::get_state ( ) const
virtual

Implements PBD::Stateful.

◆ get_tempo_and_meter() [1/4]

Points::iterator Temporal::TempoMap::get_tempo_and_meter ( TempoPoint *&  t,
MeterPoint *&  m,
superclock_t  sc,
bool  can_match,
bool  ret_iterator_after_not_at 
)
inlineprivate

Definition at line 1095 of file temporal/temporal/tempo.h.

◆ get_tempo_and_meter() [2/4]

Points::const_iterator Temporal::TempoMap::get_tempo_and_meter ( TempoPoint const *&  t,
MeterPoint const *&  m,
BBT_Argument const &  bbt,
bool  can_match,
bool  ret_iterator_after_not_at 
) const
inlineprivate

Definition at line 1124 of file temporal/temporal/tempo.h.

◆ get_tempo_and_meter() [3/4]

Points::const_iterator Temporal::TempoMap::get_tempo_and_meter ( TempoPoint const *&  t,
MeterPoint const *&  m,
Beats const &  b,
bool  can_match,
bool  ret_iterator_after_not_at 
) const
inlineprivate

Definition at line 1120 of file temporal/temporal/tempo.h.

◆ get_tempo_and_meter() [4/4]

Points::const_iterator Temporal::TempoMap::get_tempo_and_meter ( TempoPoint const *&  t,
MeterPoint const *&  m,
superclock_t  sc,
bool  can_match,
bool  ret_iterator_after_not_at 
) const
inlineprivate

Definition at line 1116 of file temporal/temporal/tempo.h.

◆ grid()

void Temporal::TempoMap::grid ( TempoMapPoints points,
superclock_t  start,
superclock_t  end,
uint32_t  bar_mod = 0,
uint32_t  beat_div = 1 
) const
inline

Definition at line 980 of file temporal/temporal/tempo.h.

◆ init()

static void Temporal::TempoMap::init ( )
static

◆ is_initial() [1/2]

bool Temporal::TempoMap::is_initial ( MeterPoint const &  ) const

◆ is_initial() [2/2]

bool Temporal::TempoMap::is_initial ( TempoPoint const &  ) const

◆ map_assert()

static void Temporal::TempoMap::map_assert ( bool  expr,
char const *  exprstr,
char const *  file,
int  line 
)
static

◆ max_notes_per_minute()

double Temporal::TempoMap::max_notes_per_minute ( ) const

◆ meter_at() [1/4]

MeterPoint const& Temporal::TempoMap::meter_at ( BBT_Argument const &  bbt) const
inline

Definition at line 919 of file temporal/temporal/tempo.h.

◆ meter_at() [2/4]

MeterPoint const& Temporal::TempoMap::meter_at ( Beats const &  b) const
inline

Definition at line 918 of file temporal/temporal/tempo.h.

◆ meter_at() [3/4]

MeterPoint const& Temporal::TempoMap::meter_at ( superclock_t  sc) const
inline

Definition at line 917 of file temporal/temporal/tempo.h.

◆ meter_at() [4/4]

MeterPoint const& Temporal::TempoMap::meter_at ( timepos_t const &  p) const

◆ meters()

Meters const& Temporal::TempoMap::meters ( ) const
inline

Definition at line 972 of file temporal/temporal/tempo.h.

◆ metric_at() [1/4]

TempoMetric Temporal::TempoMap::metric_at ( BBT_Argument const &  ,
bool  can_match = true 
) const

◆ metric_at() [2/4]

TempoMetric Temporal::TempoMap::metric_at ( Beats const &  ,
bool  can_match = true 
) const

◆ metric_at() [3/4]

TempoMetric Temporal::TempoMap::metric_at ( superclock_t  ,
bool  can_match = true 
) const
private

◆ metric_at() [4/4]

TempoMetric Temporal::TempoMap::metric_at ( timepos_t const &  ) const

◆ midi_clock_beat_at_or_after()

void Temporal::TempoMap::midi_clock_beat_at_or_after ( samplepos_t const  pos,
samplepos_t clk_pos,
uint32_t &  clk_beat 
) const

◆ min_notes_per_minute()

double Temporal::TempoMap::min_notes_per_minute ( ) const

◆ move_meter()

bool Temporal::TempoMap::move_meter ( MeterPoint const &  point,
timepos_t const &  destination,
bool  push = false 
)

◆ move_tempo()

bool Temporal::TempoMap::move_tempo ( TempoPoint const &  point,
timepos_t const &  destination,
bool  push = false 
)

◆ n_meters()

uint32_t Temporal::TempoMap::n_meters ( ) const

◆ n_tempos()

uint32_t Temporal::TempoMap::n_tempos ( ) const

◆ next_meter() [1/2]

Meter const* Temporal::TempoMap::next_meter ( Meter const &  ) const

◆ next_meter() [2/2]

MeterPoint const* Temporal::TempoMap::next_meter ( MeterPoint const &  ) const

◆ next_tempo()

TempoPoint const* Temporal::TempoMap::next_tempo ( TempoPoint const &  ) const

◆ operator=()

TempoMap& Temporal::TempoMap::operator= ( TempoMap const &  )

◆ parse_meter_state_3x()

int Temporal::TempoMap::parse_meter_state_3x ( const XMLNode node,
LegacyMeterState lts 
)
private

◆ parse_tempo_state_3x()

int Temporal::TempoMap::parse_tempo_state_3x ( const XMLNode node,
LegacyTempoState lts 
)
private

◆ paste()

void Temporal::TempoMap::paste ( TempoMapCutBuffer const &  ,
timepos_t const &  position,
bool  ripple,
std::string  = std::string() 
)

◆ previous_meter()

MeterPoint const* Temporal::TempoMap::previous_meter ( MeterPoint const &  ) const

◆ previous_tempo()

TempoPoint const* Temporal::TempoMap::previous_tempo ( TempoPoint const &  ) const

◆ quarters_at() [1/2]

Beats Temporal::TempoMap::quarters_at ( BBT_Argument const &  ) const

◆ quarters_at() [2/2]

Beats Temporal::TempoMap::quarters_at ( timepos_t const &  ) const

◆ quarters_at_sample()

Beats Temporal::TempoMap::quarters_at_sample ( samplepos_t  sc) const
inline

Definition at line 994 of file temporal/temporal/tempo.h.

◆ quarters_at_superclock()

Beats Temporal::TempoMap::quarters_at_superclock ( superclock_t  sc) const

◆ quarters_per_minute_at()

double Temporal::TempoMap::quarters_per_minute_at ( timepos_t const &  pos) const

◆ ramped_twist_tempi()

void Temporal::TempoMap::ramped_twist_tempi ( TempoPoint prev,
TempoPoint focus,
TempoPoint next,
double  tempo_delta 
)

◆ read()

static SharedPtr Temporal::TempoMap::read ( void  )
inlinestatic

Definition at line 749 of file temporal/temporal/tempo.h.

◆ reftime()

superclock_t Temporal::TempoMap::reftime ( TempoPoint const &  ,
MeterPoint const &   
) const

◆ remove_bartime()

void Temporal::TempoMap::remove_bartime ( MusicTimePoint const &  tp,
bool  with_reset = true 
)

◆ remove_meter()

void Temporal::TempoMap::remove_meter ( MeterPoint const &  ,
bool  with_reset = true 
)

◆ remove_point()

void Temporal::TempoMap::remove_point ( Point const &  )
private

◆ remove_tempo()

void Temporal::TempoMap::remove_tempo ( TempoPoint const &  ,
bool  with_reset = true 
)

◆ remove_time()

bool Temporal::TempoMap::remove_time ( timepos_t const &  pos,
timecnt_t const &  duration 
)

◆ replace_bartime()

void Temporal::TempoMap::replace_bartime ( MusicTimePoint tp,
bool  with_reset = true 
)

◆ replace_tempo()

void Temporal::TempoMap::replace_tempo ( TempoPoint const &  old,
Tempo const &  thenew,
timepos_t const &   
)

◆ reset_section()

void Temporal::TempoMap::reset_section ( Points::iterator &  begin,
Points::iterator &  end,
superclock_t  ,
TempoMetric metric 
)
private

◆ reset_starting_at() [1/2]

void Temporal::TempoMap::reset_starting_at ( Beats const &  )
private

◆ reset_starting_at() [2/2]

void Temporal::TempoMap::reset_starting_at ( superclock_t  )
private

◆ round_to_bar()

BBT_Argument Temporal::TempoMap::round_to_bar ( BBT_Argument const &  bbt) const
inline

Definition at line 935 of file temporal/temporal/tempo.h.

◆ round_up_to_bar()

BBT_Argument Temporal::TempoMap::round_up_to_bar ( BBT_Argument const &  bbt) const
inline

Definition at line 938 of file temporal/temporal/tempo.h.

◆ sample_at() [1/3]

samplepos_t Temporal::TempoMap::sample_at ( BBT_Argument const &  b) const
inline

Definition at line 953 of file temporal/temporal/tempo.h.

◆ sample_at() [2/3]

samplepos_t Temporal::TempoMap::sample_at ( Beats const &  b) const
inline

Definition at line 952 of file temporal/temporal/tempo.h.

◆ sample_at() [3/3]

samplepos_t Temporal::TempoMap::sample_at ( timepos_t const &  t) const
inline

Definition at line 954 of file temporal/temporal/tempo.h.

◆ sample_rate_changed()

void Temporal::TempoMap::sample_rate_changed ( samplecnt_t  new_sr)

◆ scwalk_to_quarters() [1/2]

Beats Temporal::TempoMap::scwalk_to_quarters ( Beats const &  pos,
superclock_t  distance 
) const

◆ scwalk_to_quarters() [2/2]

Beats Temporal::TempoMap::scwalk_to_quarters ( superclock_t  pos,
superclock_t  distance 
) const

◆ set()

static void Temporal::TempoMap::set ( SharedPtr  new_map)
inlinestatic

Definition at line 755 of file temporal/temporal/tempo.h.

◆ set_bartime()

void Temporal::TempoMap::set_bartime ( BBT_Time const &  ,
timepos_t const &  ,
std::string  name = std::string() 
)

◆ set_continuing()

bool Temporal::TempoMap::set_continuing ( TempoPoint ,
bool   
)

◆ set_meter() [1/3]

MeterPoint& Temporal::TempoMap::set_meter ( Meter const &  ,
BBT_Argument const &   
)

◆ set_meter() [2/3]

MeterPoint& Temporal::TempoMap::set_meter ( Meter const &  ,
superclock_t   
)
private

◆ set_meter() [3/3]

MeterPoint& Temporal::TempoMap::set_meter ( Meter const &  ,
timepos_t const &   
)

◆ set_meters_from_state()

int Temporal::TempoMap::set_meters_from_state ( XMLNode const &  )
private

◆ set_music_times_from_state()

int Temporal::TempoMap::set_music_times_from_state ( XMLNode const &  )
private

◆ set_ramped()

bool Temporal::TempoMap::set_ramped ( TempoPoint ,
bool   
)

◆ set_state()

int Temporal::TempoMap::set_state ( XMLNode const &  ,
int  version 
)
virtual

Implements PBD::Stateful.

◆ set_state_3x()

int Temporal::TempoMap::set_state_3x ( XMLNode const &  )
private

◆ set_tempo() [1/3]

TempoPoint& Temporal::TempoMap::set_tempo ( Tempo const &  ,
BBT_Argument const &   
)

◆ set_tempo() [2/3]

TempoPoint& Temporal::TempoMap::set_tempo ( Tempo const &  ,
timepos_t const &   
)

◆ set_tempo() [3/3]

TempoPoint& Temporal::TempoMap::set_tempo ( Tempo const &  t,
timepos_t const &  time,
Beats const &  beats 
)
private

◆ set_tempos_from_state()

int Temporal::TempoMap::set_tempos_from_state ( XMLNode const &  )
private

◆ shift() [1/2]

void Temporal::TempoMap::shift ( timepos_t const &  at,
BBT_Offset const &  by 
)

◆ shift() [2/2]

void Temporal::TempoMap::shift ( timepos_t const &  at,
timecnt_t const &  by 
)

◆ solve_constant_twist()

bool Temporal::TempoMap::solve_constant_twist ( TempoPoint ,
TempoPoint  
)
private

◆ solve_ramped_twist()

bool Temporal::TempoMap::solve_ramped_twist ( TempoPoint ,
TempoPoint  
)
private

◆ stretch_tempo()

void Temporal::TempoMap::stretch_tempo ( TempoPoint ts,
double  new_npm 
)

◆ stretch_tempo_end()

void Temporal::TempoMap::stretch_tempo_end ( TempoPoint ts,
samplepos_t  sample,
samplepos_t  end_sample 
)

◆ superclock_at() [1/3]

superclock_t Temporal::TempoMap::superclock_at ( BBT_Argument const &  ) const

◆ superclock_at() [2/3]

superclock_t Temporal::TempoMap::superclock_at ( Beats const &  ) const

◆ superclock_at() [3/3]

superclock_t Temporal::TempoMap::superclock_at ( timepos_t const &  ) const

◆ tempo_at() [1/4]

TempoPoint const& Temporal::TempoMap::tempo_at ( BBT_Argument const &  bbt) const
inline

Definition at line 924 of file temporal/temporal/tempo.h.

◆ tempo_at() [2/4]

TempoPoint const& Temporal::TempoMap::tempo_at ( Beats const &  b) const
inline

Definition at line 923 of file temporal/temporal/tempo.h.

◆ tempo_at() [3/4]

TempoPoint const& Temporal::TempoMap::tempo_at ( superclock_t  sc) const
inline

Definition at line 922 of file temporal/temporal/tempo.h.

◆ tempo_at() [4/4]

TempoPoint const& Temporal::TempoMap::tempo_at ( timepos_t const &  p) const

◆ tempo_exists_after()

bool Temporal::TempoMap::tempo_exists_after ( TempoPoint const &  t) const
inline

Definition at line 851 of file temporal/temporal/tempo.h.

◆ tempo_exists_before()

bool Temporal::TempoMap::tempo_exists_before ( TempoPoint const &  t) const
inline

Definition at line 850 of file temporal/temporal/tempo.h.

◆ tempos()

Tempos const& Temporal::TempoMap::tempos ( ) const
inline

Definition at line 971 of file temporal/temporal/tempo.h.

◆ update()

static int Temporal::TempoMap::update ( WritableSharedPtr  m)
static

◆ update_thread_tempo_map()

static void Temporal::TempoMap::update_thread_tempo_map ( )
inlinestatic

Definition at line 741 of file temporal/temporal/tempo.h.

◆ use()

static SharedPtr Temporal::TempoMap::use ( )
inlinestatic

Definition at line 742 of file temporal/temporal/tempo.h.

◆ write_copy()

static WritableSharedPtr Temporal::TempoMap::write_copy ( )
static

Friends And Related Function Documentation

◆ MeterPoint

friend class MeterPoint
friend

Definition at line 1193 of file temporal/temporal/tempo.h.

◆ TempoMetric

friend class TempoMetric
friend

Definition at line 1194 of file temporal/temporal/tempo.h.

◆ TempoPoint

friend class TempoPoint
friend

Definition at line 1192 of file temporal/temporal/tempo.h.

Member Data Documentation

◆ _bartimes

MusicTimes Temporal::TempoMap::_bartimes
private

Definition at line 1004 of file temporal/temporal/tempo.h.

◆ _map_mgr

SerializedRCUManager<TempoMap> Temporal::TempoMap::_map_mgr
staticprivate

Definition at line 737 of file temporal/temporal/tempo.h.

◆ _meters

Meters Temporal::TempoMap::_meters
private

Definition at line 1003 of file temporal/temporal/tempo.h.

◆ _points

Points Temporal::TempoMap::_points
private

Definition at line 1005 of file temporal/temporal/tempo.h.

◆ _tempo_map_p

thread_local SharedPtr Temporal::TempoMap::_tempo_map_p
staticprivate

Definition at line 736 of file temporal/temporal/tempo.h.

◆ _tempos

Tempos Temporal::TempoMap::_tempos
private

Definition at line 1002 of file temporal/temporal/tempo.h.

◆ MapChanged

PBD::Signal<void()> Temporal::TempoMap::MapChanged
static

Definition at line 990 of file temporal/temporal/tempo.h.


The documentation for this class was generated from the following file: