More options for MIDI export

• Apr 10, 2024 - 18:53

A workflow I often use is to compose in MuseScore, export a MIDI file of my composition, load it into a DAW, and use it as the starting point for a performance version with more expression, different instruments, etc. There are some quirks to how MuseScore writes MIDI files that get in the way of this workflow and create extra work. It would be really nice if it could provide options for how to write the file to avoid these problems.

  1. If a note is marked as tremolo for strings or a roll for drums, it gets turned into a lot of very short notes. That's a way of approximating the effect, but it isn't what I want. I want the note to get saved as a single note, exactly as I wrote it, to which I can assign a tremolo articulation.

  2. Dynamics always get recorded as note velocities. A lot of orchestral libraries ignore velocities and instead use a CC (usually modulation, expression, or both) to set dynamics. Ideally there would be an options window for MIDI export that would list all the instruments in my score and let me choose how to represent dynamics for each one.

  3. In flute parts, all the notes get shortened creating gaps between them. I don't know why it does this. Flute is the only instrument it happens with. It's a huge pain, since I have to go through the whole score and fix up all the notes to make them end where they were supposed to.


I think you have the wrong idea of what MIDI is and what it is for. It is a standard that has nothing to do with music notation.

MIDI stores channels (instrument sound), pitch, velocity, duration, timestamps and certainly other information in the form of digital data.

It does not include, for example, all types of repetitions, which are simply rolled out. Dynamics are only implemented in the form of the velocity of each individual note. There is e.g. no command for a hairpin. Tremolo, for example, is actually just a quick sequence of short notes of different pitches and that is how they are stored.
My list is certainly very incomplete.

In addition, the MIDI standard also defines the physical layer, i.e. the electrical signal form on the cable and also the connectors and the transmission protocol.

Only your problem with the flute I cannot assign directly to the MIDI, because ultimately the flute differs from another instrument in the MIDI data set only by the channel number.

For more details see e.g.

In reply to by peastman

No, sorry, you are incorrect. Create "modulation" as described by the first article and then look at the actual information in the MIDI file. You will find individual MIDI items at each point on that curve saying play this sound at this volume at this point in time.
Yes, you can make MIDI sound quite emotive, but it's still just information at each timestamp saying play a sound on this channel this loud.

In reply to by TheHutch

I don't understand what point you're trying to make? MIDI provides multiple mechanisms for specifying dynamics. Many instruments ignore velocities and instead use the modulation or expression CC. If MuseScore could export MIDI files that represent dynamics that way, it would save a lot of work. Are you claiming that isn't true?

Nearly all orchestral libraries have separate samples for tremolo strings and drum rolls. The way you create a realistic tremolo is not to write a series of fast notes. It's to write a single note and assign a tremolo articulation to it. Are you claiming otherwise? If not, then what is the disagreement about?

In reply to by peastman

I'm saying that the "modulation" and "expression" is simply quickly repeated notes with no end tone code. Each of the dots in those screenshots your first link showed are a new point with timestamp, pitch, volume, and channel. Having them run in quick succession means that our ears don't hear the small, incremental changes. That doesn't mean that they aren't there. What HildeK said is exactly the case.

What you are describing with your "separate samples" can certainly be done with a DAW. Can't EASILY be done by MuS ... and isn't at this time.

In reply to by TheHutch

That's incorrect. Note and control changes are completely different things. Notes are indicated by Note On messages. Control changes are indicated by Control Change messages. See for a list of MIDI messages and explanations of what they do. Sending a Control Change does not end the current note or start a new note. It just instructs the player that a CC has changed. The player can interpret that however it wants. It might change the gain, or the balance between layers, or the cutoff frequency of a filter, or many other things. Or it might be completely ignored, if the current instrument doesn't use that CC.

I still don't know what point you're trying to make. Is there any part of the suggested feature that you think is not a good idea? If so, which part and why?

one thing i do (and it's because i'm not that capable of complex orchestration), is to write the composition the way i want to read it. then make a copy of it and transform it into a dumbed downed version which is what i export (i do this for several application which have similar and other peculiarities...) then import that MIDI into the DAW and use articulations specific to the instrument. i have the Babylon set of articulations which covers all of my libraries and many many more which have been very helpful in adding back the performance aspects i wanted. in some cases i need to make CC which were based on the original velocities or articulate things which aren't readily done via the articulation maps.

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