Beats per minute interpreted incorrectly in certain MIDI files detected as "human performance"

• Dec 3, 2019 - 17:10
Reported version
3.3
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project

Load the MIDI file "Blowing In The Wind" - this has a beats per minute (BPM) of 135 and you will see that it appears in MuseScore as 144.

Load the other MIDI file "Retimed In the Wind" - this is essentially the same music but all the durations and timings have been scaled by 75/135 to give a BPM of 75. It looks very different to the first one but plays exactly the same if you choose to play it. This one has a BPM of 75 but again in MuseScore it shows as 144.

If I load these same files into any other scoring program (for example QuickScore Elite) they both show the correct BPMs of 135 and 75 respectively.

So MuseScore is getting something wrong here. Each of these files only has one Tempo Message in it. In the first file it is close to the beginning, in the second file it is the first MIDI Message in the file.

Attachment Size
Blowing In The Wind.MID 25.94 KB
Retimed In the Wind.MID 25.56 KB

Comments

Title Beats per minute Beats per minute interpreted incorrectly in certain MIDI files detected as "human performance"
Frequency Once Many

I don't know much about this code, but I can see it is being interpreted as a "human performance" and this causes MuseScore to look at the actual music rather than completely trusting the tempo marking, to try to determine the basic tempo. You can try turning that off in the MIDI import panel, but the results are pretty painful to look at in that case - it seems the rhythms don't really follow the tempo very well, so you're better off accepting the corrections made for human performance then adjusting the tempo marking if you like.

In reply to by Marc Sabatella

Hi Mark.

Thanks for the tip. I will try turning off that setting (I didn't know about it)...

Your powers of observation are excellent. :) It is indeed a live performance.

I'm in the midst of writing a piece of MIDI s/w to realign a live performance so that scoring programs will show it properly to enable reasonable editing. I'm only at V1 which scales and shifts the timings but the BPM must be in quarter notes. Next is V2 which will Quantise the output and allow a time signature so that BPM can be something other than quarter notes. And from there? Depends on how the results come out as to how many iterations will be needed before success! or commiserations. :)

When it's eventually finished it will still only work with something that doesn't change speed noticeably and the piece I've chosen is like that, and is the first piece that I do need this s/w for.

Cheers
Steve

I feel that I have received a reasonable explanation - that MuseScore has decided that the music is being played by a human and therefore ignores the embedded BPM and attempts to assess the BPM for itself. Now I know about that tick box ("is human performance"), I can tick it OFF and hit Apply, but unfortunately that does not trigger it to use the embedded BPM. At least I know what the issue is now. For example: if I quantise the sequence then MuseScore gets the BPM right. So I'm happy to close this off now.

Well, it would be nice if turning off human playback fixed the tempo automatically. As it is, it looks like we reinterpret the rhythms but we don't revisit the tempo. Still, it's easy enough to edit the tempo marking. I'm leaving this open, but its minor indeed.