Tempo change plugin for 2.3.1 no longer working on

• Jan 31, 2019 - 07:39

There was a very convenient tempo change plugin for rit. and accel., available for 2.3.1. Now upgrading to 3.0 seems a downgrading instead as this plugin cannot work!

Any fixes? Thanks!




I'd like to see accel. and rit. fully integrated into the Tempo palette some day soon, maybe tenuto too. Tempo variations are essential in scores such as aria and lieder accompaniments (think Verdi, Schubert, Tosti etc.) They are no less important in my view than playable dynamic options such as hairpins.

Of course, it would be even nicer to have a live pianist hanging around instead, but you have to feed them... :).


In reply to by vic joseph

Tenuto as well as fermata and other tempo variations on individual notes is already a feature in MuseScore itself - no plugin needed for them. Select the note to which you want to apply the tenuto or fermata; under "Articulations" on the palatte, double click the "dash" for tenuto, the "bird's eye" for fermata, etc.; finally, set a value in the "Time Stretch" field of the Inspector for the tenuto or fermata for how long you want to extend the duration of the note.

In reply to by Glenn Blank

One can go very, very far with this; it is my practice to hide fermate which are not indicated by the composer, but MusicXML (if you need/use that) has no way to hide them, which is a problem, but most people don't use MusicXML. Between that and phrasing available in the piano-roll editor, one can go very, very far towards expressive performances: see https://musescore.com/bsg/scores/1828286 and https://musescore.com/bsg/phrased_chaconne_intro for examples of liberal/powerful use.

In reply to by Mark_Y

I think you missed my point. The Tempo Change plugin is indeed necessary for organized and graceful ritardandi and accelerandi; time-stretched fermate are not useful for that purpose, but they are exactly what is needed for inflecting music subtly on a note-by-note basis, the way human performers do. Did you listen to my examples?

I spent a long night looking into the plugin and tried to get it work. I failed, probably because a) my software development days are now many years in the past and b) my understanding of the musescore object model with elements, segments .. and their properties and methods is quite limited.

When traversing the segments in the selection to find existing tempo markings, the plugin debugger told me that the object does not support the lenght property. 4th line in the code snippet below.

function findExistingTempoElement(segment)
  { //look in reverse order, there might be multiple TEMPO_TEXTs attached
        // in that case MuseScore uses the last one in the list
        for (var i = segment.annotations.length; i-- > 0; ) {
              if (segment.annotations[i].type === Element.TEMPO_TEXT) {
                    return (segment.annotations[i]);
        return undefined; //invalid - no tempo text found

I would be very thankful if somebody more skilled would have a look at this.

Tempo changes plugin now works with 3.0.5 :-)
Attached the qml with the minimal change, where the version is checked.

Do you still have an unanswered question? Please log in first to post your question.