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).
This commit is contained in:
nick_m 2017-02-25 23:32:02 +11:00 committed by Robin Gareus
parent 8b1baa2406
commit 959f76c843

View file

@ -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);