Closed jeetee closed 8 years ago
Just tested with the MuseScore version I developed the plugin on (it calls itself 2.1.0.)
BPM is calculated incorrectly, and all the timestamps are wrong. This seems to be because the global variable "divisions" delivers a bad value in this version of MuseScore.
I will try again with a newer version of MuseScore, but it will take a day or two for me to get to it.
If it works with 2.0.1 or 2.0.2 the version number check in the plugin will have to changed.
Small clarification; the old BPM was numerically correct (so a score with crotchet = 60, would give BPM = 60), but this doesn't allow for the midi-tick-accuracy of the smallest notes.
Note | MuseScore Tick Length | 'BPM-correct' Ticks | Minimal Integer Ticks |
---|---|---|---|
whole note (semibreve) | 1920 | 240 | 384 |
double-dotted half note | 1680 | 210 | 336 |
dotted half note | 1440 | 180 | 288 |
triplet whole note (1/3 of breve) | 1280 | 160 | 256 |
half note (minim) | 960 | 120 | 192 |
double-dotted crochet | 840 | 105 | 168 |
dotted crochet | 720 | 90 | 144 |
triplet half note (1/3 of semibreve) | 640 | 80 | 128 |
1/4 note (crochet) | 480 | 60 | 96 |
double-dotted quaver | 420 | 52,5 | 84 |
dotted quaver | 360 | 45 | 72 |
triplet crochet (1/3 of minim) | 320 | 40 | 64 |
1/8 note (quaver) | 240 | 30 | 48 |
double-dotted semiquaver | 210 | 26,25 | 42 |
dotted semiquaver | 180 | 22,5 | 36 |
triplet quaver (1/3 of crochet) | 160 | 20 | 32 |
1/16 note (semiquaver) | 120 | 15 | 24 |
double-dotted demi-semiquaver | 105 | 13,125 | 21 |
dotted demi-semiquaver | 90 | 11,25 | 18 |
triplet semiquaver (1/3 of quaver) | 80 | 10 | 16 |
1/32 note (demi-semiquaver) | 60 | 7,5 | 12 |
dotted hemi-demi-semiquaver | 45 | 5,625 | 9 |
triplet demi-semiquaver (1/3 of semiquaver) | 40 | 5 | 8 |
1/64 note (hemi-demi-semiquaver) | 30 | 3,75 | 6 |
What I did to allow representing the smaller notes accurately is scale up the BPM-value to match the tickvalues in the last column (= smallest integer values that still work for all MuseScore supported note-lengths). A score with a BPM of 60 in MuseScore, will now show a BPM of 1440 in the UltraStar/Performous file.
Ah bullocks.. that 2nd commit should've become a different pull request :( Still trying to get the hang of this whole Git thing.. sorry
If you don't mind, I'll close this one and re-open another later on with some of these changes as a 'high accuracy export mode' or something along those lines. Now that I'm getting a better understanding of commit/push/branch relationships on git, I'll make sure each feature/bugfix gets its own branch on my fork.
Changes made after testing on MuseScore 2.0.2 on Windows with playback on Performous 1.0 Didn't quite understood where the old calculateMidiTicks logic came from. Also I don't have UltraStar installed, so I can't verify the correct working on that one