class LIBARDOUR_API Tempo {
public:
/**
- * @param bpm Beats Per Minute
+ * @param npm Note Types per minute
* @param type Note Type (default `4': quarter note)
*/
- Tempo (double bpm, double type=4.0) // defaulting to quarter note
- : _beats_per_minute (bpm), _note_type(type) {}
+ Tempo (double npm, double type=4.0) // defaulting to quarter note
+ : _beats_per_minute (npm), _note_type(type) {}
/*
- quarter note beats as distinct from a beat derived from meter and pulse.
+ note types per minute.
*/
double beats_per_minute () const { return _beats_per_minute; }
void set_beats_per_minute (double bpm) { _beats_per_minute = bpm; }
Evoral::Beats framewalk_to_qn (framepos_t pos, framecnt_t distance) const;
/* quarter note related functions are also tempo-sensitive and ignore meter.
+ quarter notes may be compared with and assigned to Evoral::Beats.
*/
double quarter_note_at_frame (const framepos_t frame);
double quarter_note_at_frame_rt (const framepos_t frame);
double quarter_note_at_beat (const double beat);
double beat_at_quarter_note (const double beat);
+ /* 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);
double exact_beat_at_frame (const framepos_t& frame, const int32_t sub_num);