before_x = line.nth (front()->view_index() - 1)->get_x();
const framepos_t pos = e.pixel_to_sample(before_x);
- const Meter& meter = map.meter_at (pos);
+ const Meter& meter = map.meter_at_frame (pos);
const framecnt_t len = ceil (meter.frames_per_bar (map.tempo_at_frame (pos), e.session()->frame_rate())
/ (Timecode::BBT_Time::ticks_per_beat * meter.divisions_per_bar()) );
const double one_tick_in_pixels = e.sample_to_pixel_unrounded (len);
after_x = line.nth (back()->view_index() + 1)->get_x();
const framepos_t pos = e.pixel_to_sample(after_x);
- const Meter& meter = map.meter_at (pos);
+ const Meter& meter = map.meter_at_frame (pos);
const framecnt_t len = ceil (meter.frames_per_bar (map.tempo_at_frame (pos), e.session()->frame_rate())
/ (Timecode::BBT_Time::ticks_per_beat * meter.divisions_per_bar()));
const double one_tick_in_pixels = e.sample_to_pixel_unrounded (len);
return Evoral::Beats(1.0);
case SnapToBar:
if (_session) {
- return Evoral::Beats(_session->tempo_map().meter_at (position).divisions_per_bar());
+ return Evoral::Beats(_session->tempo_map().meter_at_frame (position).divisions_per_bar());
}
break;
default:
{
framepos_t length = end - start;
- const Meter& m (_session->tempo_map().meter_at (start));
+ const Meter& m (_session->tempo_map().meter_at_frame (start));
/* length = 1 bar */
if (!fine) {
/* non-fine, move by 1 bar regardless of snap */
- delta = Evoral::Beats(trackview.session()->tempo_map().meter_at(ref_point).divisions_per_bar());
+ delta = Evoral::Beats(trackview.session()->tempo_map().meter_at_frame (ref_point).divisions_per_bar());
} else if (trackview.editor().snap_mode() == Editing::SnapOff) {
} else {
- const Meter& m = _mtv.session()->tempo_map().meter_at (step_edit_insert_position);
+ const Meter& m = _mtv.session()->tempo_map().meter_at_frame (step_edit_insert_position);
const Tempo& t = _mtv.session()->tempo_map().tempo_at_frame (step_edit_insert_position);
double baf = _mtv.session()->tempo_map().beat_at_frame (step_edit_insert_position);
{
Timecode::BBT_Time when;
frame = map.round_to_bar(frame, RoundNearest);
- Meter meter (map.meter_at(frame));
+ Meter meter (map.meter_at_frame (frame));
map.bbt_time (frame, when);
init (when, meter.divisions_per_bar(), meter.note_divisor(), true, MusicTime);
Timecode::Time timecode;
Timecode::BBT_Time sbbt;
Timecode::BBT_Time ebbt;
- Meter meter_at_start (_editor->_session->tempo_map().meter_at(start));
+ Meter meter_at_start (_editor->_session->tempo_map().meter_at_frame (start));
if (_editor->_session == 0) {
return;
double frames_per_beat_at (const framepos_t&, const framecnt_t& sr) const;
- const Meter& meter_at (framepos_t) const;
-
const TempoSection& tempo_section_at (framepos_t frame) const;
const MeterSection& meter_section_at (framepos_t frame) const;
const MeterSection& meter_section_at_beat (double beat) const;
framecnt_t frame_at_pulse (const double& pulse) const;
const Tempo tempo_at_frame (const framepos_t& frame) const;
+ const Meter& meter_at_frame (framepos_t) const;
double beat_at_bbt (const Timecode::BBT_Time& bbt);
Timecode::BBT_Time bbt_at_beat (const double& beats);
}
const Meter&
-TempoMap::meter_at (framepos_t frame) const
+TempoMap::meter_at_frame (framepos_t frame) const
{
TempoMetric m (metric_at (frame));
return m.meter();
s->bbt_time (this->frame, *this);
const TempoMap& tempo = s->tempo_map();
+ const Meter& meter = tempo.meter_at_frame (frame);
- const double divisions = tempo.meter_at(frame).divisions_per_bar();
- const double divisor = tempo.meter_at(frame).note_divisor();
+ const double divisions = meter.divisions_per_bar();
+ const double divisor = meter.note_divisor();
const double qnote_scale = divisor * 0.25f;
double mb;