Improving Tempo Text Playback
(discussion moved from Telegram chat)
I'm considering implementing rit. playback and possible accel. playback as well. The plan would be to have either a spanner that rits for the length of it to some set final tempo, then goes back to the normal tempo at the end, or to have one text that starts a rit and another 'a tempo' text that ends a rit. Or, indeed, both.
For the latter, I've considered four options:
1) Extend TempoText to include these features
2) Create a new class derived from TextBase (e.g. TempoChangeText) that has these features
3) Remove the final
qualifier from TempoText and derive TempoChangeText from it (not a good idea, imo)
4) Make TempoText an abstract class that both the current TempoText (e.g. could be renamed to TempoSetText) and TempoChangeText would be derived from
(all three involve modifying TempoMap accordingly)
So far, 2 seems to be the best option, since the TempoText wouldn't actually share much in common with the new TempoChangeText. Thoughts from anyone are appreciated.
Comments
Do I understand that the intention is to allow for example a "rallentando" followed by an optional "A tempo" that will allow the user to set the rate of the slowdown then at the end of the rallentando and new tempo will be set by the user.
I would propose that this be done with a line class since lines by their nature span accross multiple notes (like a pedal or ottava). This would also allow the user to have an optional line that is often seen in scores.
(also ported from my quick telegram answer)
I've discussed this subject in the past with some of the devs and the sentiment (at least back then ;) ) was that it should be a subclass of the text lines (and thus a Spanner), very similar to how the cresc/dim lines are implemented.
I would not alter the existing Tempo marking for this, as it serves a different purpose. Cfr the cresc/dim lines vs a dynamic marking, where the existing TempoText acts in a similar relation as the dynamic does compared to the line.
Personally I also wouldn't include the "a tempo" in there, although I can understand the logic for doing so and do see some merit in it. I'd rather see a change (or addition rather) to the existing TempoText to allow it to act as a reference to another Tempo"reference" in the score. That reference could then be any other TempoText or the (start/end?) of a gradual TempoChange line.
It would open up the door for a tempo marking such as tempo primo with the tempo automatically adjusting if someone adjusts the marking being referred to as "primo".