Problems importing a MuseScore-exported midi file into my DAW

• Jun 21, 2018 - 15:27

Hello,

I've been using MuseScore to capture song ideas, and I'd like to bring them into my DAW to develop. But I'm having a problem with the midi export function in MuseScore.

In a standard grand staff piano score, the midi export seems only to send the bass clef. If I only have a treble clef melody, the midi file seems to be empty.

To demonstrate, I grabbed this Happy Birthday midi file (https://www.8notes.com/scores/1110.asp?ftype=midi), imported it into MuseScore and exported from MuseScore back to MIDI. The original midi file imports perfectly into my DAW, but the MuseScore-exported midi file has only information for the bass clef. I've attached both files, as well as the in-between MuseScore file.

My setup: MuseScore 2.2.1 on Windows 10, DAW = Acid Pro 8

Not sure what's going on, but would love to get this working. Thanks for any help you can offer.

Attachment Size
happy_birthday.mid 480 bytes
happy_birthday.mscz 8.07 KB
happy_birthday_MSexport.mid 410 bytes

Comments

Not sure what's going on with your DAW, but if I open that exported MIDI file in MuseScore, I can see both staves just fine 0 in fact it looks identical to the original MSCZ file. Proving the info is there in the MIDI, and something about your DAW is just not seeing it for whatever reason.

In reply to by Marc Sabatella

Hi Marc,

Thanks for your response. Diving deeper into this I have discovered the problem has to do with MuseScore sending the treble clef note information to Track 0 in the midi file. Other standard midi files I have looked at use track 0 for tempo and other meta information. Of course MuseScore is reading what it expects to find from its own output, so isn't thrown off by this, but Acid Pro is not looking for note information in Track 0. When I edit the midi file in MidiEditor to cut the note information from Track 0 and either merge it with the bass cleff info in Track 1 or paste it into a new Track 2, the file works fine in Acid Pro. This is a hell of a workaround to get midi output to work for my environment.

In searching around for this sort of thing I also encountered this thread (https://musescore.org/en/user/1027156) from last year into March of this year, including this post from @.function_:


In an attempt to refocus this thread, I repeat:

In a Type 1 MIDI file, Track 0 is supposed to be a "tempo track" or "conductor track", having only meta events, no note events.

Putting notes on Track 0 is a basic mistake. To anyone who doubts this:

Download any Type 1 MIDI file on the internet not created by MuseScore, and take a look at its data. You will see that Track 0 contains tempo events and no note events.
Open any DAW or MIDI editing software and look at how to changes to Tempo information are made for a MIDI file. You will find that the tempo changes are applied to Track 0 only, that Track 0 contains no note data, and in most cases the user is prohibited from putting notes onto Track 0. For example, Logic X does not include Track 0 in the MIDI Events list; it is a separate list entirely reserved only for Tempo.
Arguing about whether this practice is clear in the MIDI Spec or not is a waste of time. This is the way MIDI files have been made for decades. It's the standard practice. MuseScore does it wrong.

NOTE: the status of this bug has been changed back to "major" because, as previously stated, this fits the canonical MuseScore description for a major bug.


Is this a change that is on track for a fix sometime soon?

In reply to by joeshirley

Barring that, is there a way for me to set up a placeholder instrument that will be exported as midi Track 0 but not take up visual space on the score?

EDIT: Turns out I can add a new instrument, place it at the top of the list, and uncheck the Visible option. The top, invisible instrument track does in fact export as Track 0, leaving my melody in its proper place in Track 1. Hopefully that will serve to work around the issue.

In reply to by joeshirley

@JoJo-Schmitz, I'm pretty sure the thread you're referring to is here: (https://musescore.org/en/node/207346). I meant to link to it but accidentally linked instead to the user profile of the person who posted the quote I included.

What I gather is that note information on Track 0 does not strictly conflict with the written standard, and in earlier stages the MuseScore community implemented a solution that worked for MuseScore as a scoring program primarily, and these solutions have worked for its own purposes. But the written standard and norms of a wider community/industry seem to be different things, with each segment of the industry working with different challenges. The broader community, (including manufacturers of keyboards and DAWs, for example), have determined best practice to be Track 0 for meta information only.

The question I cannot find an answer to is, what advantage does MuseScore gain by putting note information into Track 0. If there is no compelling advantage, it would seem best for the greatest number of users to consider this a bug to be fixed in a future update. Perhaps the resistance to updating the practice has at least partly to do with the fact that MuseScore's implementation of midi import/export is convoluted enough that this is not a simple fix?

In reply to by Jojo-Schmitz

So the workaround is to add an empty top stave. This is great news. I'm in the process of writing software for a mechanical glockenspiel. I really like to write the music with MuseScore, but I'd like to have more orthodox midi files. Especially, if MuseScore will fix this issue in the near future, I really won't spend time trying to parse a midi file with tempo change events mixed with note events in the first track.

In reply to by joeshirley

I have been searching the musescore forums hoping to find the solution to my problem which is similar to this one. I export a musescore midi file into a piano learning program(Home Concert Extreme) and instead of two staves there is a combined single staff with all the notes on the bass clef. This of course is useless. Maybe I will try the idea of a empty 1st track as a work around.

In reply to by Waterdeer1

Open the exported MID file in a free midi editor such as Sekaiju.
You will see the piano part in two rows. Upper = RH, Lower = LH
Change the input and output channel information of the lower row (for example, increase +1).
add the same patch number as the top row to the bottom row.
and save it.

You can find the applied version of all these in the attached "piano-edited-sekaiju.mid" file.
Test it with other software.
If this still reduces to a single line, report it to the forum of the other software you are using.

Attachment Size
piano.mscz 5.37 KB
piano-musescore.mid 253 bytes
piano-edited-sekaiju.mid 270 bytes

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