Metronome ticks do not always match reference beat value

• Apr 24, 2020 - 23:07
Reported version
Ergonomical (UX)
S5 - Suggestion

When using non-standard note values for the reference beat in the tempo, the ticking of the metronome--when enabled in the play panel--still reflects the standard reference beat.

When I enter a tempo marking using a eighth note as the reference beat for a common time piece, (e.g. (eighth note) = 120), and then enable the metronome in the playback panel, I would expect the metronome to be ticking at 120 bpm, rather than sixty, which is currently the case.

This currently is doubly confusing with six-eight time. Say a user creates a score using a dotted-quarter reference tempo of 60 bpm. The metronome will beat at sixty bpm, which would be expected. However, the "Tempo" label on the play panel still reads "90 BPM", since it uses the quarter note as its reference.

Now most of the time, having the standard rhythm inform the metronome is a really good thing, but in situations like these, it's probably important to provide some visual indication of the value of the reference beat in the play panel.

I think that this should likely be configurable, so a fix might be to have a drop-down, or pop-out option in the playback panel to choose the reference metronome tick. As long as there was some visual indication of where the metronome would tick, this would do the trick.


I wouldn't say this is a duplicate, since what I'm really trying to address here is that it is unclear what the metronome is using as it's reference beat until I press play. I'm also trying to trigger some discussion about why that design decision was made and if it continues to make sense.

I understand that, but the UI has little indication of that, and the BPM number under the tempo adjuster in the play panel is using a different note value as it's reference beat.

What I am saying is that this makes the UX for the metronome bad. Things aren't working quite the way they're expected for a new user.

This is a good opportunity to revisit using the time signature to determine the ticks exclusively. I'm not sure it makes that much sense. Certainly you would like the option to here ticks on certain subdivisions of beats? I imagine that it might help some composers as well as many people trying to use musescore to learn to play a composition.

In reply to by Jojo-Schmitz

I did a little test of the metronome. for a non-compound time signature, the metronome follows the time signature. If you specify N beat in a bar, you get N clicks in a bar, no matter what the tempo text says. However, for a compound time signature, you can have N/3 clicks in a bar if you have a dotted note in the tempo marking, or you can have N clicks if you have a non-dotted note. Note that for the compound time signature the dotted note or undotted note in the tempo marking must correspond to the time signature denominator. So for a 6/8 time signature a dotted crotchet gives you two ticks per bar, a quaver, gives you 6 clicks and for a 6/4 time signature a dotted minim gives you two ticks while a crotchet gives you 6 clicks. Anything shorter, for example a semiquaver in the tempo marking with a 6/8 time signature still gives you 6 clicks rather than 12.

One nice feature of the metronome in compound time signatures is that when clicking according to the short note tempo indication (quaver beat in 6/8) it emphasises the main beats.

See the attached examples.

Metronome test.mscz

I agree with the OP, the metronome should follow the tempo marking and use the beat length specified in the quantum of the tempo marking. The BPM indication should do whatever the the metronome does. I note that that BPM indicator behaviour was what I originally had in #291727: Improve tempo indication in Play Panel to reflect time signature but I changed my mind to have the BPM following the time signature. I wish I hadn't now. If the metronome can do it in limited circumstances for compound time signatures, why not have it do the same for non-compound? And while we are at it, why not have the metronome follow even shorter quantums for all time signatures.

Attachment Size
Metronome test.mscz 5.53 KB

In reply to by Jojo-Schmitz

But it is a more general issue (problem?) than just for new scores. The suggestion is that BPM should follow the "B"eat length specified in the tempo text (crotchet = x, quaver = x etc.) and the metronome should follow that. The beat length suggested as a default when using the new score wizard (the tempo text following the key signature feature that you describe) is useful but if the user overrides the default beat length in a tempo text, then Musescore should similarly override the beat length used in the BPM setting/display box and in determining the interval between metronome clicks.

The suggestion is that BPM should follow the "B"eat length specified in the tempo text
Amd that'd be just wrong. A tempo text may not even exist. A time signature though always does (at least a nominal mesure duration)
So the tempo text needs to follow the time sig. And the metronome too.

In reply to by Jojo-Schmitz

Are you thinking of something like dotted crotchet = x with a 4/4 time signature. Well, if users add stupid tempo markings they should not complain if they get stupid results, but they could be protected by only allowing beat lengths that make sense in the current time signature context. If the time signature changes to make the current beat length invalid and the user does not add a valid tempo marking then a default based on the time signature could be used.

In reply to by SteveBlower

Allowing the metronome to follow the tempo text instead of time signature is useful but must be an option (an additional check box in the play panel). I'm thinking to waltz in 3/4 at dotted minim = 66, metronome at 66 is generally preferred to metronome at 198.
But more useful than that option would be to allow to select the beat length in the play panel. Because, when for the same Waltz you exercise at 50% speed, then metronome at 99 is a lot better than 33 ...

In reply to by frfancha

So if you don't want the metronome set at 198 don't add a tempo text of crotchet = 198 but instead add one that says dotted minim = 66 and, if this suggestion is implemented, Musescore would tick once every 1/66th of a minute.

There may be some different ideas about what the new score wizard would offer as the default, dotted minim = x or crotchet = 3x but that does not affect my argument that it would be a Good Thing for metronome and BPM to follow what the user has specified in a tempo text (providing it makes sense of course) even if that is just accepting the wizard's suggestion.

In reply to by SteveBlower

Yes of course I would add the text saying dotted minim = 66. What I say is that I don't want to have to remove that text any time I want to exercise with the metronome beating the crotchet. I want to be able to easily select the crotchet beat in the play panel.

In reply to by Jojo-Schmitz

@Jojo I don't think so, and the example of 3/4 scores shows that clearly: for some of them it is the crotchet the preferred beat value, for other ones (typically fast Waltz) it is the dotted minim. The tempo text is precisely what enables MuseScore to know which one to use.

In reply to by frfancha

@ffrancha But what if you wanted quaver beats or even semiquaver beats (useful for practice purposes sometimes)? There would have to be buttons for every eventuality in the play panel. It seems reasonable to me that if you have specified one thing and then want a different thing you should replace the first thing you specified.

In reply to by SteveBlower

To bring out another point made earlier. Musescore already has some capabilities in this. In 6/8 or 9/8 etc. you can specify either a dotted crotchet beat or a quaver beat in the tempo text and Musescore honour it in the metronome by clicking at dotted crotchet or quaver intervals according to the tempo text. This suggestion is just an extension of that facility.

In reply to by SteveBlower

Steve, play panel allows you to change the play speed, right?
You don't need to edit your tempo text to change the speed, right?
Why on earth are you insisting that play panel should not allow you to change metronome beat and that that change can only be obtained by changing the tempo text is beyond my understanding

In reply to by frfancha

Not only by changing the tempo text then, but at least by changing the tempo text. But how do you deal with minim/crotchet/quaver/semiquaver and their dotted versions in the play panel? Eight buttons? Also, the play panel specifies the global tempo for the score. What happens if you go from 3/4 to 6/8 say with a crotchet beat specified in the play panel. You can have different tempo texts at different places in the score.

Status duplicate active

Changing back from duplicate to active because this has garnered a separate, useful discussion.

So we have a few issues that are related here, I think. The play panel is meant to be global, which necessarily decouples it from things like tempo texts (correct any misinterpretations, please). A good example of this is the tempo slider, which adjusts the tempo of the entire piece by a certain percentage.

Since, in pieces where the time signature changes between common and compound metre (e.g. 4/4 to 6/8 with dotted quarter beats), the metronome already adjusts beat value based on the metre change, this should be able to keep track of metres described in the tempo markings that use nonstandard reference beats.

Proposal for discussion: metronome ticks default to expectation of metre based on time signature, to be overridden by the tempo markings as we've discussed, and then the play panel has a toggle for subdividing the beat, with a drop-down for the subdivision value?

Let's discuss the use cases this might succeed at and the ones it doesn't meet. As well as potential pitfalls.

That issue is pretty stale, however, sitting at two and a half years since it's last comment. You're more familiar with Musescore Dev flow. Is it better to revive that thread and issue, or just stick to this one.

In reply to by alschade96

I want to express my support for improving the metronome subdivision feature, but would like to make a case for starting with just making the chosen '% Tempo' be taken into account for the automatic subdivision which is currently implemented in compound-time signatures (kicks in when tempo is slow enough) and also implement this same subdivision for simple time signatures (also, when the tempo is slow enough), and only then consider implementing the toggle. I would like to back the suggestion with the following considerations:

Re: the idea for "the play panel has a toggle for subdividing the beat"

  • Firstly, note that this toggles' concern does tread on the already implemented automatic behavior of 'subdividing for sufficiently slow tempos of compound time-signatures', which is currently working on 'tempo texts' only. That's because whatever the initial state for this toggle will be, it shouldn't astonish the users, e.g. an initial value is 'off' would deprive users of the subdivision of compound time-signatures they were used to, while fixing it to 'on' would add overly-dense noise to fast pieces. As such I feel the toggle should have the 'auto' choice as the default (BTW, I am not sure which options this toggle was proposed to introduce: 'always on' would be neccessary&sufficient to solve the problem of lack of subdivision at slow 'Tempo %'s, but if both 'always on' and 'always off' are needed on top of that then it may need to be a tri-state, otherwise just two-state: 'auto' and 'always on').
    Now, from the fact that 'auto' is necessary anyway, it would follows that a more 'graceful' order of releasing features would be to start with just making the '% Tempo' affect the metronome. That's because
    in the converse case of introducing the toggle first, while it would solves the problem of missing subdivisions too, it actually adds confusion in that it exposes to the users 'two mechanisms for seemingly solving the problem (of responsiveness % Tempo)', but one of them 'still faulty while preferred' (preferred, because an 'auto' would have to be there anyway and even be the default, and it would be simpler as having less 'things to choose', so users would prefer it). This, as I argue, would be less graceful, because not only such astonishment of the users (that "'auto' does not work for % Tempo") erodes the user's perception of user-friendliness of the app, but additionally, educating users that "a workaround is to use 'always on'" would prevent users from discovering the future improvement when the '% Tempo issue' gets fixed, and they will continue workarounds despite being able to use the ultimate smart feature (which beautifully adjusts to the tempo, even chooses the right subdivision which follows from music theory).
  • Another question, given that the toggle is meant to be global for the playback of the whole piece, is whether Musescore should now add the beat subdivision for non-compound time-signatures when the playback is slow-enough, because currently it's not there. Although this runs into similar dilemmas - to not astonish any users Musescore would need to add a separate setting for simple time signatures (e.g. a checkbox to 'also divide non-compound signatures', or two separate toggles) but I just want to say that for me, I would be happy if the subdivisions got added 'by default' for sufficiently slow tempos for non-compound signatures too. My use case is that I use a slow tempo when I learn a new piece, and especially for being able to play the small-note parts precisely, and the current lack of subdivision is actually making the metronome barely helpful there - it ticks so rarely that it does not give me the sense of beat.

Re: the idea for "drop-down for the subdivision value"
After some thinking, I feel this is a bit of an overkill feature, at least especially to, again, introduce this before the '% Tempo responsiveness'. That's because of the following: Mind you, that if adding this, there is a problem, in that this would be giving one choice for the entire piece, but tempos can change throughout the piece. This notably includes changes between 'simple' and 'compound' signatures. As such the dropdown couldn't have a value 'half', 'quarter', 'eight' as this is wrong for composites ('third', 'sixth', 'twelveth' would be correct). It would rather have to be an abstract 'subdivide the natural beat (resulting from music theory) at this many extra levels' and its values be 'once, twice, three times'. And here I think the options higher than 'once' would likely rarely be used - the 'once' is what is currently implemented for the compound signatures and I don't think there are any user request to add further divisions. As such I would again rather argue that it better to first expose the 'once' subdivision only. Only then, see if there requests to add the 'twice' or 'three times' division for users which playback extremely slow (I suspect the demand will not be huge based on aforementioned lack of such requests so far) and if there is, again, start by implementing it automatically - depending on playback speed, just like 'once' is achieved currently in compound time-signatures. Only at the very last, if there is any feature requests from users to really fully control this behavior, like capping the number of divisions at some min or max (or both), only then implement choice dropdown/s (which I suspect will not be requested at all, if the automatic thresholds are chosen well).

My use-case context:
I ran into this thread as I was using the '% Tempo' and metronome to practice a slow play-along of a compound time-signature piece, and it didn't occur to me that while I enable the metronome for my practice from the Playback Panel (and the piece is otherwise devoid of the metronome sound), I actually have to modify the piece to alter the metronome's resolution. It took me quite a lot of reading around the issue-tracker and forum to finally figure out that MuseScore's has the feature mostly implemented, it just doesn't react to the Playback Panel tempo adjustments.
In the meantime, I've filled the missing bits in the documentation on Play mode (diff) and Tempo (diff) in a hope to save the time to the next person and produce less chatter/duplicates in the issue-tracker.