Incorrect handling between time signatures and BPM
Reported version
3.x-dev
Type
Functional
Severity
S4 - Minor
Status
active
Regression
No
Workaround
No
Project
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 http://www.musicarrangers.com/star-theory/t15.htm.
Thanks
Attachment | Size |
---|---|
DadmeAlbricias.mxl | 5.33 KB |
EnNatusEstEmanuel.mxl | 7.86 KB |
GS-OnTheBirthdayOfTheLord.mxl | 5.5 KB |
Comments
Thank you for this link.
Regards,
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.
Thanks,
M.
Is it a problem in the nightly builds?
Can another title summarise this better?
Came up again in https://musescore.org/en/node/139401
I implemented a conversion between beats-per-minute and quarter-notes-per-minute tempos as part of my Google Summer of Code project (see
TimeSigFrac::tempo2beatsPerMinute()
). This just needs to be hooked up to the Play Panel.Came up again in https://musescore.org/en/node/245401
See also #91056: BPM field in Play Panel is not immediately synced
Relates to #272381: [EPIC] Tempotext issues
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:
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.(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.)