summaryrefslogtreecommitdiff
path: root/libs/ardour/tempo.cc
AgeCommit message (Collapse)Author
2016-11-11remove public pulse methods from TempoMap.nick_m
- the only object whose musical position is not expressed in quarter notes is MetricSection. there is now no need to expose this.
2016-11-11add some documentation for TempoMap.nick_m
2016-11-11Refactor tempo api, include quarter-note distance in frames method.nick_m
- moves frame rounding up to TempoMap, which is needed in order to calculate pulse distance without frame rounding. - the time unit for tempo is still minute, but this now also applies to meter sections. (new audio locked meter sections no longer require a frame position). - there is no longer a discontinuity in the pulse for audio-locked meter/tempi. - temporarily add debugging output in Region::set_position() to test for region beat not matching region frame.
2016-10-19Improve bbt ruler drawing performance for large time ranges.nick_m
- when the timeline displays many bars, zoom/autoscroll speed is improved by calculating the bbt ruler scale first then requesting a suitably scaled grid.
2016-10-16Rework duration clock and TempoMap::insert_time to include meter at offset.nick_m
- should fix 7072 - also fixes scroll behavior over multiple tempi.
2016-10-09TempoSection methods deal in beats rather than pulses per minute.nick_m
- removes note type from curve function for a slightly more accurate result.
2016-10-02Remove unused methods, add tests to ensure meter divisors don't mess with Beats.nick_m
- TempoMap::framepos_minus_beats() was only used by its test, so don't build the test.
2016-10-01Fix locking bug in tempo map.nick_m
2016-09-05Fix the tempo note-type hallucination.nick_m
- after reports that a tempo with non-4.0 note type would produce a ramp in the preceding section, an incorrect assumption was made leading to a bogus 'fix' that redefined Tempo's pulses_per_minute(). the real fix was simple: the ramp's function constant was calculated using the note type of the proceding tempo rather than the current one. - this patch reverts e82482e8e9c and a4d67279e0086258 and maintains the old definition of Tempo::pulses_per_minute()
2016-09-04Sanity check for TempoMap::get_grid ()nick_m
2016-09-03Fix various paste errors in tempo.cc. Should fix recent regressions.nick_m
2016-09-02Consolidate the meaning of beat divisions.nick_m
- bar and beat snapping is BBT beat based while other music divisions are quarter note based. Reflect this in the way exact_beat/qn is calculated.
2016-09-01Attempt to clarify tempo map comments.nick_m
2016-09-01Revert 894cdb6f5c2064.nick_m
- once again we snap to BBT beats when snapping to 'beat'.
2016-09-01Snap to beat snaps to quarter note.nick_m
2016-08-31TempoMap::pulse_at_frame() handles separated musical sections as per ↵nick_m
beat_at_frame().
2016-08-31Fix incorrect inclusion of note_type in Tempo::pulses_per_minute().nick_m
2016-08-31Amend f3c0c1a865 (Add quarter-note position methods).nick_m
2016-08-31Add quarter-note position methods to TempoMap.nick_m
2016-08-24Tempo marker movement snaps to the future grid, rather than the current one.nick_m
- fixes jittery tempo movement when snapping within large gradients.
2016-08-24Round to bar correctly in TempoMap::exact_beat_at_frame_locked().nick_m
2016-08-18Add methods for plugin APIs to obtsin quarter pulses ('beats' for AU) from ↵nick_m
the tempo map.
2016-08-16Enforce rounding to beat as >= 0.0nick_m
2016-08-14Don't call any Transmitter from realtime contextRobin Gareus
This fixes a crash when TempoMap::bbt_at_frame_rt() is called for a latent effect at position 00:00:00:00 and frame is < 0.
2016-08-14Allow negative return in TempoMap::beat_at_frame() and its exact_ variant.nick_m
- audio-locked midi regions can be start-trimmed properly when close to 1|1|0 - a midi region placed before the first meter will continue the tempo curve and first meter. Only a couple of callers require change, as bbt_at_beat() already deals with this.
2016-08-10Allow -ve framepos handling in TempoMap::framepos_plus_beats()nick_m
- also handles frame positions previous to the initial meter (beat_at_frame() would return 0 in this case).
2016-07-25the endless quest to plug memory leaks -- episode 378Robin Gareus
2016-07-18Fix stored type confusion in Meter/TempoSection::get_state().nick_m
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10Tempo map updates.nick_m
- cleanup audio-locked meter removal code - recompute and warn if map is left unsolved due to adding a metric - handle corner case wrt overlapping audio-locked musical sections.
2016-07-10Fix long-standing spelling bug.nick_m
- should be a no-op.
2016-07-10Fix missing tempi recompute, improve adding meter/tempo failure.nick_m
2016-07-10Fail properly when adding a new audio locked meter's tempo.nick_m
2016-07-10Fix broken meter manipulation in exact_beat.nick_m
2016-07-10Avoid the use of dynamic_cast in TempoMap for performance improvement.nick_m
- review / comment would be appreciated here.
2016-07-10Make TempoMap::bbt_at_frame() more efficient.nick_m
- should be a no-op
2016-07-10Improve the performance of TempoMap::frame_at_beat ().nick_m
- should be a no-op
2016-07-10Make some musical operations on music-locked regions operate in beats.nick_m
- use exact beats to determine frame position. - see comments in tempo.cc for more. - this hasn't been done for split yet, but dragging and trimming are supported.
2016-06-12Fix exact tempo pulse for snap to bars case.nick_m
2016-06-12Make exact beat calculation of tempi a bit less cumbersome. Move tempi on an ↵nick_m
audio basis for non-musical snap.
2016-06-12Set tempo sections to the exact pulse when snapped to a musical grid.nick_m
2016-06-10Apply some constraints to bbt dragging.nick_m
- max tempo 1000 bpm - apply a minimum measurement distance. - ensure result is positive (!)
2016-06-10Amend last commit.nick_m
2016-06-10Audio locked meters with an existing tempo may be dragged past that tempo's ↵nick_m
location.
2016-06-09Possible fix for memory pool problem in session click.nick_m
2016-06-05Fix ignored note_type in TempoMap::frames_per_beat_at().nick_m
2016-05-30Make TempoMap::framepos_plus_beats() & TempoMap::framepos_minus_beats() more ↵nick_m
correct.
2016-05-30Make TempoMap::framewalk_to_beats () more correct.nick_m
2016-05-29Fix bbt dragging wrt audio-locked tempos.nick_m