double note_divisor() const { return _note_type; }
double frames_per_bar (const Tempo&, framecnt_t sr) const;
+ double frames_per_division (const Tempo&, framecnt_t sr) const;
protected:
/** The number of beats in a bar. This is a real value because
double Tempo::frames_per_beat (framecnt_t sr, const Meter& meter) const
{
- return ((60.0 * sr) / (_beats_per_minute * meter.note_divisor()/_note_type));
+ return (60.0 * sr) / _beats_per_minute;
}
/***********************************************************************/
return ((60.0 * sr * _beats_per_bar) / (tempo.beats_per_minute() * _note_type/tempo.note_type()));
}
+double
+Meter::frames_per_division (const Tempo& tempo, framecnt_t sr) const
+{
+ return ((60.0 * sr) / (tempo.beats_per_minute() * _note_type/tempo.note_type()));
+}
+
/***********************************************************************/
const string TempoSection::xml_state_node_name = "Tempo";
beats_per_bar = meter->beats_per_bar ();
frames_per_bar = meter->frames_per_bar (*tempo, _frame_rate);
- beat_frames = tempo->frames_per_beat (_frame_rate, *meter);
+ beat_frames = meter->frames_per_division (*tempo,_frame_rate);
if (meter->frame() > tempo->frame()) {
bar = meter->start().bars;
beats_per_bar = meter->beats_per_bar ();
frames_per_bar = meter->frames_per_bar (*tempo, _frame_rate);
- beat_frames = tempo->frames_per_beat (_frame_rate, *meter);
+ beat_frames = meter->frames_per_division (*tempo, _frame_rate);
++i;
}