diff options
author | nick_m <mainsbridge@gmail.com> | 2016-09-01 01:35:53 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2016-09-01 01:35:53 +1000 |
commit | 894cdb6f5c20641962ec86542b084fa7e5ccdf13 (patch) | |
tree | bd36600f2b3f37e3e94c7228a8d70dfca4b74d61 /libs/ardour/tempo.cc | |
parent | 34e234825edab8e725c31c654934a8caf9c1dbf3 (diff) |
Snap to beat snaps to quarter note.
Diffstat (limited to 'libs/ardour/tempo.cc')
-rw-r--r-- | libs/ardour/tempo.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index 3a938c54d4..a8d5c35a68 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -3445,12 +3445,14 @@ TempoMap::round_to_type (framepos_t frame, RoundMode dir, BBTPointType type) break; case Beat: + const double qn_at_frame = max (0.0, quarter_note_at_frame_locked (_metrics, frame)); + if (dir < 0) { - return frame_at_beat_locked (_metrics, floor (beat_at_framepos)); + return frame_at_quarter_note_locked (_metrics, floor (qn_at_frame)); } else if (dir > 0) { - return frame_at_beat_locked (_metrics, ceil (beat_at_framepos)); + return frame_at_quarter_note_locked (_metrics, ceil (qn_at_frame)); } else { - return frame_at_beat_locked (_metrics, floor (beat_at_framepos + 0.5)); + return frame_at_quarter_note_locked (_metrics, floor (qn_at_frame + 0.5)); } break; } |