Improve tempo indication in Play Panel to reflect time signature

• Jul 4, 2019 - 00:29
Reported version
Ergonomical (UX)
S5 - Suggestion

Currently the tempo indication in the Play Panel is reported as crotchet beats per minute, irrespective of the tempo marking currently in force. For example, if the time signature is 3/4 say and one enters a tempo marking of dotted minim = 60. The tempo indicated in the Play Panel is 180 (crotchet beats per minute). Not too troubling perhaps, but take another example where the time signature is 6/8 with a tempo marking of dotted crotchet = 120. The tempo indicated in the Play Panel is still 180 crotchet beats per minute even though there are no "crotchet beats". An even more troubling example is if the time signature is 3/16 and the tempo indication is semiquaver = 80. Now the play panel reports 20 crotchet beats per minute which is rather less than useful, as a "crotchet beat" would extend 1/3 of the way into the following bar.

It would be a nice improvement if the play panel could report the tempo using the quantum specified in the most recent tempo indication. In the examples above it would have to report 60 dotted minims per minute, 120 dotted crotchet beats per minute or 80 semiquaver beats per minute.


The panel says "BPM", not things like crotchet. I'm OK with the current design actually, because "most recent" is vague, and the current tempo just maybe isn't related to the previous tempo indication (if the current one don't have any). And what if there's no tempo indication at all, just things like "Allegro"? There're too many uncertainties here. "BPM" has a universal meaning.

And it isn't like #295737: "Follow text" able to work with a single number in the tempo text, because the change you requested isn't something you can change, it's written on the play panel and it's fixed. Unlike the value of the tempo which you can always change in the inspector.

In reply to by Jojo-Schmitz

Yes, I understand. It is by design: "BPM is always measured and displayed in quarter note beats per minute, regardless of the (denominator of the) time signature in effect." But the design could be better; that is why I made the suggestion (note it's a suggestion - I am not saying it is a bug).

The BPM displayed in the play panel only reflects the beats that would usually be specified in a tempo text for an X/4 time signature, whether there is actually a tempo text or not. So, if the time signature is 6/8 on the play panel one would hope to see T dotted quarters per minute, but it actually says T x 1.5. If the time signature is 3/16, the play panel then gives the tempo as Tx0.75. Wouldn't it be nicer and less confusing if when playing a section in 6/8 the play panel displayed the number of dotted quarters per minute? Or if it is actually specified in a tempo text as T eighths per minute as T eighths per minute.

Title Improve tempo indication in Play Panel to reflect tempo marking Improve tempo indication in Play Panel to reflect time signature

Hmm. Having written that last reply, perhaps the title was wrong. It is the conflict with the time signature rather than the tempo text, that is the main issue.

Indeed, my mistake for reading quickly and confusing "play panel" with metronome.
And you're right !
The displayed "speed" in the play panel is meant for human reading not midi output, it should follow the metronome implementation !
If for whatever reason people find the midi speed interesting as well to synchronise another midi output let's rename it QPM next to the human useful "true" BPM based on metronome ticks.

In reply to by frfancha

Right. My piece is in 6/8 time. The tempo that I dragged from the tempo palette is dotted quarter equals 50 per minute. But the tempo slider in the Play panel shows 75 BPM when at 100%. If I move the slider to a tempo that sounds better, and if I wonder what the tempo is now so that I may indicate it in my score, I must first multiply by 2/3 to obtain the true tempo from the wrong tempo indicated on the play panel. I am certainly capable of multiplying and dividing by 3/2, but in the computer age I should not have to do that.

Something like this:

double timesig2bpm(Fraction timesig, double bpm)
            switch (timesig.denomoinator()) {
                         case 1:
                               bpm /= 4;
                         case 2:
                               bpm /= 2;
                         case 4: // no need to change, BPM == QPM here
                         case 8:
                               if (timesig.numerator() % 3 == 0)
                                     bpm /= 1.5;
                                     bpm *= 2;
                         case 16:
                               if (timesig.numerator() % 3 == 0)
                                     bpm *= 1.5;
                                     bpm *= 4;
                         case 32:
                               if (timesig.numerator() % 3 == 0)
                                     bpm *= 3;
                                     bpm *= 8;
                         case 64:
                               if (timesig.numerator() % 3 == 0)
                                     bpm *= 6;
                                     bpm *= 16;
                         default: // don't know to what to change, so leave as is
                               QDebug("Unknown time signature denominator");
                  return bpm;