summaryrefslogtreecommitdiff
path: root/libs/ardour/tempo.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2017-02-25 23:32:02 +1100
committerRobin Gareus <robin@gareus.org>2017-02-27 20:16:10 +0100
commit959f76c843a25b3309a6d180a3a8e914f11dbee7 (patch)
treef21391eadd51f95a65f56d573a448d8d06c41990 /libs/ardour/tempo.cc
parent8b1baa2406d904f14200ae58b6fa26fd94bcb2c1 (diff)
make new (ramped) tempi indidstiguishable from constant to the novice user.
- stretch drag (using shift on the curve) operates on the true meaning of constant. in other words, the only way you can make a tempo ramped is by adjusting the end tempo (shift drag on the *next* mark). from this point onwards. shift-drag the curve will change the start tempo and ctrl-drag the curve will change the end (needs work). to reset the curve to constant, 'make constant' should simply set the end tempo (unimplemented).
Diffstat (limited to 'libs/ardour/tempo.cc')
-rw-r--r--libs/ardour/tempo.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc
index b1fec3c1ee..8aa6f3953c 100644
--- a/libs/ardour/tempo.cc
+++ b/libs/ardour/tempo.cc
@@ -3483,7 +3483,10 @@ TempoMap::gui_stretch_tempo (TempoSection* ts, const framepos_t frame, const fra
goto out;
}
- if (prev_t && prev_t->type() == TempoSection::Ramp) {
+ /* this should be everywhere. no _type because type() is constant if note_types_per_minute() == end_types_per_minute()
+ but what to do with legact sessions?
+ */
+ if (prev_t && prev_t->note_types_per_minute() != prev_t->end_note_types_per_minute()) {
prev_t->set_note_types_per_minute (new_bpm);
} else {
prev_t->set_end_note_types_per_minute (new_bpm);
@@ -3494,7 +3497,7 @@ TempoMap::gui_stretch_tempo (TempoSection* ts, const framepos_t frame, const fra
recompute_meters (future_map);
if (check_solved (future_map)) {
- if (prev_t && prev_t->type() == TempoSection::Ramp) {
+ if (prev_t && prev_t->note_types_per_minute() != prev_t->end_note_types_per_minute()) {
ts->set_note_types_per_minute (new_bpm);
} else {
ts->set_end_note_types_per_minute (new_bpm);