MIDI import note length errors

• Dec 30, 2014 - 14:44

First, I have searched the forum for this issue. Something like it seems to be discussed in various places (usually with advice to quantize the MIDI data for import), but I believe that the current code still has actual bugs that cause MuseScore to get the lengths of notes and rests wrong on import. Moreover, the errors are different in MuseScore 1.3 and in MuseScore 2.0 beta 2.

I am running both version of MuseScore on a Windows 7 Professional (Service Pack 1) machine. To focus clearly on the problems, I created a simple score with a separate composition program. (Specifically, the twenty-year-old ConcertWare 1.5 for Windows running in a Windows XP virtual machine on my Windows 7 laptop.) This PDF file was printed directly from ConcertWare to show what the score looks like: gunk.pdf . As you can see, the score is in 4/4 time and every odd measure contains two quarter notes and a triplet. Measures two and four contain alternating eighth-notes and eighth-rests. Measures six and eight contain alternating dotted-eighth notes and sixteenth-rests.

Here is the MIDI file exported from ConcertWare: GUNK.MID. You can play the MIDI file to hear that it does exactly what the ConcertWare score says it is supposed to do. I also used another ancient tool (jglatts' MIDI Disassembler, which is stil available at //www.blitter.com/~russtopia/MIDI/~jglatt/progs/software.htm , and running in my Windows XP virtual machine) to convert the MIDI format to human-readable text: GUNK.txt
This shows that the data in the MIDI file is quantized to exactly match the original score.

Next, I imported the MIDI file into MuseScore 1.3: GUNKv13.mscz. This gets the rests in the even-numbered meaures correct but does not get the triplets.

Finally, I imported the MIDI file into MuseScore 2.0, beta 2: GUNKv20b2.mscz . This gets the triplets right, but totally fails to correctly identify the rests.

Attachment Size
gunk.pdf 10.38 KB
GUNK.MID 292 bytes
GUNK.txt 4.04 KB
GUNKv13.mscz 1.51 KB
GUNKv20b2.mscz 4.77 KB


It's not a bug. Most people wouldn't *want* to see rests; the actual intent might have been staccato quarter notes. And you will see that MsueScore did exactly that - it even put the staccato dots in for you!

If, however, you would prefer to see the rests, you can force this by turning off the "Simplify durations" checkbox in the import panel at the bottom of the screen then hitting "Apply".

In reply to by Marc Sabatella

Cool. I'm willing to accept it as a "feature" as long as I can turn it off. Is there a way to uncheck "simplify durations" as the default for importing MIDI files?

And I'll (mostly) resist the urge to argue that -- in this particular MIDI file at least -- there is really no ambiguity about the desired note length. Especially if the software seems to claim that it quantizes to sixteenth notes (or even finer resolutions).

And maybe this posting will serve as better documentation for the next person who can't figure out which setting to use to convince MuseScore to show the rests exactly as he or she wrote them.

And, having now discovered MuseScore, maybe I can finally transition away from that twenty-year-old copy of ConcertWare that still did things more reliably than everything else I've tried in the interim.....

In reply to by krc

I don't know if there is a way to change the default, but I don't see one.

The ambiguity, BTW, is that MuseScore has no real way of knowing the performance represented by the MIDI file was computer-generated (in which case the durations can maybe be assumed to be accurate and intended) versus human-generated (in which case the durations will be all over the map).

The only thing we have to go on is the fact that if you are trying to exchange information between programs, MusicXML is the much better choice than MIDI. The main reason to use MIDI rather than MusicXML would be for recording human performance. So it's really quite reasonable for MuseScore to assume that if MIDI is being used rather than MusicXML, it's probably because it is indeed a human performance.

Obviously, this won't always be the case, and there might be situations like your when you are forced to use MIDI in situations where MusicXML would have been preferable. At least, I'm assuming your 20-year-old software doens't support MusicXML, and that's why you are forced to use MIDI instead. But for the majority of cases, people trying to import scores from other programs will be using MusicXML, and MIDI will be mostly for human-generated performances.

In reply to by Marc Sabatella

Since XML 1.0 came out in 1996 and ConcertWare came out in 1995, I think that's a pretty safe assumption.

In theory, of course, it should be possible to add a toggle someplace to let the user tell MuseScore that the MIDI file was computer generated instead of having to guess. But as long as I can get what I want by unchecking the "simplify durations" box, there are probably other features I'd want to see first.

Do you still have an unanswered question? Please log in first to post your question.