Incorrect handling between time signatures and BPM

• Sep 23, 2011 - 00:13
Reported version
S4 - Minor

The PLAY function in MuseScore is not calculating time correctly. It seems to be using the quarter note as the basis for all timing.

If a song starts in 4/4 at 60 bpm, the the quarter note should be 1 second in duration. But if you change to 3/2 time, then the half note should become the unit of measure and it should also be 1 second in duration. MuseScore seems to treat the 3/2 signature as if it were 6/4 meter. In fact, if the opening time signature is 3/2, and the tempo is 60 bpm, it treats the half note as 2 seconds in duration instead of 1 second as it should be.

Here is a good explanation of how to handle changing time signatures in a song. Please see


By design the internal tempo in MuseScore is always measured in quarter notes /min.
What you are actually requesting is an automatic tempo change depending on the time signature.
As you can get every tempo by inserting explicit tempo marks this would only be a convenience function
which on the other side would complicate MuseScore.

One could also say that the theory described above (keep the beat in absence of other indications) is not absolute, rather it depends on the epoch and the style of the piece. Other theories could tell to keep the measure (or the tactus).

Implementing such a theory would tie MuseScore to a specific musical context, which is possibly not advisable.



Title Time Signatures are not being used correctly. Incorrect handling between time signatures and BPM

Is it a problem in the nightly builds?

Can another title summarise this better?

Severity S1 - Blocker
Reported version 2.1  
Regression No
Workaround No

The solution here to restrict the tempo text to just text (the user can insert special symbols if they want, but the symbols will not have special meaning). The Inspector would then give the following options:

  1. Tempo beat unit (dropdown list of durations, including dotted durations, possibly filtered and a default chosen based on the time signature)
  2. Tempo BPM (numerical value)
  3. Show BPM? (checkbox)

Let's say the user selects "dotted quarter note" as the beat unit, and 120 as the BPM. If the "show BPM" checkbox is enabled then MuseScore would display "dotted-quarter-note = 120" as read-only text immediately after the editable custom text.

For full backwards and forwards compatibility, the "dotted-quarter-note = 120" could be stored within the <text> tag in the MSCX as it is now, but newer versions would ignore it if it matched the contents of the new tags that would have to be created for <beatUnit> and <bpm>.

An advanced implementation could allow the user to specify a list of durations for the <beatUnit>, for the rare cases where the tempo cannot be given as a single duration. This probably couldn't be done in a way that is fully backwards and forwards compatible, but it could be made to look and play correctly in older versions by storing a fixed tempo and setting <followsText> to false. That would work until the user tried to edit it in an older version.

Severity S1 - Blocker S4 - Minor
Reported version 3.x-dev

(I didn't mean to change the tags. I think it happened because this is an older issue so some of the tags didn't exist before.)