+ double quarter_note_at_beat (const double beat) const;
+ double beat_at_quarter_note (const double beat) const;
+
+ /* obtain a musical subdivision via a frame position and magic note divisor.*/
+ double exact_qn_at_frame (const framepos_t& frame, const int32_t sub_num) const;
+ double exact_beat_at_frame (const framepos_t& frame, const int32_t sub_num) const;
+
+ Tempo tempo_at_frame (const framepos_t& frame) const;
+ framepos_t frame_at_tempo (const Tempo& tempo) const;
+ Tempo tempo_at_quarter_note (const double& beat) const;
+ double quarter_note_at_tempo (const Tempo& tempo) const;
+
+ void gui_set_tempo_position (TempoSection*, const framepos_t& frame, const int& sub_num);
+ void gui_set_meter_position (MeterSection*, const framepos_t& frame);
+ bool gui_change_tempo (TempoSection*, const Tempo& bpm);
+ void gui_stretch_tempo (TempoSection* tempo, const framepos_t frame, const framepos_t end_frame);
+ void gui_stretch_tempo_end (TempoSection* tempo, const framepos_t frame, const framepos_t end_frame);
+ bool gui_twist_tempi (TempoSection* first, const Tempo& bpm, const framepos_t frame, const framepos_t end_frame);