- void gui_move_tempo (TempoSection*, const framepos_t& frame);
- void gui_move_meter (MeterSection*, const framepos_t& frame);
+ samplecnt_t samples_between_quarter_notes (const double start, const double end) const;
+ double quarter_notes_between_samples (const samplecnt_t start, const samplecnt_t end) const;
+
+ double quarter_note_at_beat (const double beat) const;
+ double beat_at_quarter_note (const double beat) const;
+
+ /* obtain a musical subdivision via a sample position and magic note divisor.*/
+ double exact_qn_at_sample (const samplepos_t sample, const int32_t sub_num) const;
+ double exact_beat_at_sample (const samplepos_t sample, const int32_t sub_num) const;
+
+ Tempo tempo_at_sample (const samplepos_t sample) const;
+ samplepos_t sample_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 samplepos_t sample, const int& sub_num);
+ void gui_set_meter_position (MeterSection*, const samplepos_t sample);