Tempo Change Functionality Update: Allow users to select relative or absolute tempo changes
I'd like to propose an update to the current MS 4.1.1 tempo change functionality. Specifically, I think allowing it to function more like the MS3 TempoChanges Plugin would give more expressive control to the user if they want it.
I mentioned this in this Github comment I wrote but I'll review my reasoning here as well.
In MS 4.1.1, the tempo change is relative; you set the starting and ending notes of the tempo change but the slowdown or speed up is computed using percentages (i.e. 50% slowdown or 175% speedup). You also have to manually keep track of the current tempo marking that acts as the start tempo of the tempo change which may be several /measures pages before. Similarly, the control of the exact curve that the tempo change follows in built-in MS4 is limited to 2 options. This becomes difficult to manage and know the exact tempo that MS4 is using internally if you want to do complex tempo transitions (like multiple rit. or accel. back to back, each slightly different). That and I still don't know what the exact tempo at the end of the tempi without busting out a calculator to compute it myself.
In the plugin version, however, I have significantly greater control. I can control the start and end BPM, how to get there with the curve setting, and the exact starting and ending notes in which it is applied. This method is absolute since you know the start and ending tempos and there is less ambiguity.
This issue was raised once before in the Musescore forums here.
- Keep current relative tempo change computation and allow user to toggle to more advanced absolute tempo change (i.e. the MS3 plugin)
- Replace current implementation entirely (which may be wasteful of current work)
Making this functionality available with MS4 for users that want more control would be fantastic. Right now, MS4 tempo change is okay but the tweaking I have to do to achieve the same results with the MS3 plugin is more effort and the end result is generally not to the quality that I'd like.
I'm a software engineer by day so I know how to use git and submit PRs; I can contribute if the devs think that will help.