Initial stab at tempo ramps.
authornick_m <mainsbridge@gmail.com>
Sat, 19 Dec 2015 17:41:45 +0000 (04:41 +1100)
committernick_m <mainsbridge@gmail.com>
Fri, 27 May 2016 13:38:09 +0000 (23:38 +1000)
commit7fc3b0c34c552d7be862897bd0aaa542453e9973
tree35898328a86aefec5ac18a00c56c8577f4779d1f
parent94187e66a2ae2bc2ab082ef614c25b35ec0d5e24
Initial stab at tempo ramps.

Replaces the list of points in TempoMap with TempoSection functions, which
compute tempo-at or tick-at time relative to tempo section start.
TempoMap consults them additively to determine things like bbt_time(),
frame_time() get_grid() etc.
This has a marked effect on scrolling speed along with the code simplification
in the places it has been attempted.

Several things are broken here.
Currently every ramp except the last one is an exponential ramp. this may
be simple to fix :).
Mouse-over midi grid doesn't match mouse click grid. should also be simple.

Many things seem to work, but their accuracy should be in question until
each area has been addressed.
16 files changed:
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_drag.cc
gtk2_ardour/editor_ops.cc
gtk2_ardour/editor_rulers.cc
gtk2_ardour/editor_tempodisplay.cc
gtk2_ardour/tempo_dialog.cc
gtk2_ardour/tempo_dialog.h
gtk2_ardour/tempo_lines.cc
gtk2_ardour/tempo_lines.h
libs/ardour/ardour/tempo.h
libs/ardour/session_click.cc
libs/ardour/session_vst.cc
libs/ardour/tempo.cc
libs/backends/jack/jack_session.cc
libs/canvas/ruler.cc