Problems Export to Midi/Проблема Експорт в Миди

• Jan 30, 2023 - 19:07

Hello. Please tell me why, after exporting parts to a midi file, when I insert this file into a music program, for example: Cubase or Cakewalk, then when playing this midi file, the first note of the first measure is not played, there is no sound or just crackling, and sometimes the notes themselves shorten in duration. In general, there is no correct playback of midi files obtained after export, both in the 3rd and 4th versions. How can this be resolved? Tell me, please, who knows. For example, when I export through Guitar Pro, the midi file plays fine with music programs. Thanks to.

Привет. Подскажите пожалуйста, почему после экспорта партий в миди-файл, когда я вставляю этот файл в музыкальную программу, например: Cubase или Cakewalk, то при воспроизведении этого миди-файла не воспроизводится первая нота первого такта, есть нет звука или только треск, а иногда и сами ноты укорачиваются по продолжительности. В общем, нет корректного воспроизведения миди-файлов, полученных после экспорта, как в 3-й, так и в 4-й версии. Как это можно решить? Подскажите, пожалуйста, кто знает. Например, когда я экспортирую через Guitar Pro, миди-файл отлично воспроизводится музыкальными программами. Благодаря.


As mentioned on Discord, any crackling sounds you hear in another program would have to be due to a bug in those programs, since a MIDi file contains no audio at all. There is no way MuseScore can cause bad sound in another program.

But if you have a specific score in which some specific note is not heard at all, that could be a bug in the other program or a bug in MuseScore. It's impossible to say unless you attach the score in question - the actual MSCZ file) so we can export it to MIDi ourselves. Then tell us which specific note we should be listening for that you aren't hearing.

In reply to by Marc Sabatella

I'm not crackling, I understand what you want to say. But the note just doesn't sound. The note of the first bar is not heard. No matter how many notes the entire score contains. And besides the fact that the note still does not sound, and some notes themselves can be shortened in duration than it was written in the score. I can write a number of notes in a part and drop you a score and midi file so you can check it yourself in these Cubase and Cakewalk programs, load the midi file into some VST instrument.

In reply to by gorzowuk

I tried downloading third-party midi files from the Internet and they play perfectly, all the notes sound as they are recorded. And midi received from MS 3 or 4 do not play correctly. I believe it has to do with the midi export process itself in MS 3 and 4.

In reply to by gorzowuk

I posted this reply in your first post on the Announcement page:

When I use exported MIDI from MuseScore (any version) or any notation program, I always insert a blank measure with a tempo assigned to it at the beginning of the piece and then another blank measure at the end of the piece. This provides a buffer for track start discrepancies and it also allows me to shorten the track start in the DAW to eradicate any unwanted midi data (channel or patch selection) that might be hiding at the start of the track. Don't know if this solves your problem, but I have been successfully using MIDI from MuseScore 2 and 3 for years in my sequencers. The MIDI data is even accurate enough to maintain tempo maps that are needed for scoring to film. I am on Linux, so I use Qtractor, Ardour and rarely LMMS (mostly Qtractor). All of the MIDI data is there from the export (notes on/off, length, velocity, tempo, etc.)

The reason why the MIDI files from the Internet play correctly is likely because they were sequenced in a sequencer and not from notation. Exporting from notation (all notation programs) has potential for misalignment of opening events at the time of encoding. Leaving a buffer blank measure is a good practice in all DAW work. Even in a pure MIDI sequence (composing directly to the sequencer) you should leave a bar or 2 of empty space and allow the start of your opening tracks to hang out ahead of the downbeat and past the last note off event in every track.

Hope that helps!


In reply to by cfirwin3

Thank you for your advice. But I noticed that even if I manually delete this first note of the first measure in the DAW itself and write it again, it still does not play. Or even if I shift the midi track a bar forward, it still doesn't solve the problem. Therefore, you are right that the encoding problem is most of all in the export process. I haven't tried leaving an empty bar in the notation itself yet. I'll try and let you know. But I repeat that if you know the program Guiter Pro where there is a note editor, then the process of exporting to midi is excellent in it and the resulting midi file will be played perfectly, regardless of which measure the notes begin with.

In reply to by gorzowuk

Again, if you'd like someone to help we need you to attach your score and precise steps to reproduce the problem. Since no one else has ever reported a problem like this before, the problem must be either with your specific score(s), the precise steps you are following, or a bug in the software you are using to play your MIDI file. There is no way for anyone to help until you attach a score and give steps to reproduce the problem. We'd love to be able to help, but we need that information from you first.

In reply to by gorzowuk

Attach the score itself - the MSCZ file. Clic, the "Choose a file" button right below where you type your comment, and click your MSCZ file.

Then tell us which note specific does not play after exporting to MIDI. Then we can try the export ourselves and examine the file to see if the note is truly missing (which would indicate a MuseScore bug) or if it is present but for some reason not playing in your other software (in which case you would need to file a bug report in the software you are using to play the MIDI file).

In reply to by Marc Sabatella

Here are the files. The first note is "do", the first measure does not sound. First part "Piano". I want to add one more thing: I checked that if the first measure is left empty, then the notes of subsequent measures are played without problems. Also, if midi is produced with a regular Windows Media Player, then all notes sound starting from the first, first measure.

Attachment Size
for the test.mscz 22.68 KB
for the test.mid 599 bytes

In reply to by gorzowuk

A dump of the MIDI data shows that note is present exactly as it should be:

Screenshot 2023-01-31 12.13.28 PM.png

You can clearly see the note on message for pitch 60 at tick 0 with velocity 80, the note off (note on with velocity 0) at 479, then the next note on for 60 at tick 480, etc. All is as it should be as far as I can tell. The note also shows normally if you import the file back into MuseScore.

So, if your other program is not playing this file properly, you'll need to report fact to them sk they can investigate further.

In reply to by Marc Sabatella

Thank you for checking. But I doubt that this is due to the programs that I use Cubase and Cakewalk, since these are different software developers and, moreover, there are no problems with other midi files obtained by exporting when they are played in Cubase and Cakewalk.

In reply to by gorzowuk

There's also no problem when importing into MuseScore or when looking at the data. The data speaks for itself really. You can also try this online sequencer: I also tried Bandlab, from the same folks as Cakewalk. The data really and truly is there, not sure what other proof you need. You can see it for yourself in the dump, you can see the note when it imports into MuseScore, you can hear it in those two online sequencers.

In reply to by gorzowuk

I'll drop it into a couple of sequencers later this evening to see if there is any interference with the first note or data on the start of the track. The note "on" data might be present, but there are other things around it that might be interfering with the playback.

In reply to by gorzowuk

I don't use either as I am exclusively on Linux, but if the midi imports properly on other sequencers, then it is an issue with your sequencer that you will need to workaround when exporting. I HIGHLY recommend placing a buffer measure (or 2) in all exported notation regardless of the notation software or sequencer... it's just good practice to keep the essential data away from the start/end of the track timeline when working in midi sequencers.

In reply to by gorzowuk

I tried downloading and installing Sibelius and did an export with it. Same problem as in MuseScore. Whereas Guitar Pro exports without problems and all the notes are audible. So Guitar Pro has some other way of converting to midi in contrast to Sibelius and MuseScore.

I also noticed that in Sibelius you can adjust the midi export settings. For example: choose "sound device" (photo attached)...

Attachment Size
Снимок 2.PNG 31.45 KB
Снимок.PNG 25.82 KB

In reply to by gorzowuk

I imported the MIDI into Qtractor and everything played, including the very first note, with proper lengths. But as I said earlier, the first note starts immediately at 0 and this can cause problems (particularly with latency in playback plugins and other MIDI events occurring at 0 like channel/patch data, tempo, meter and any other hidden control date) in some systems and sequencers. This can be true even in expensive proprietary sequencers like Cubase, Logic, Sonar, Reason, etc.
Ultimately, there doesn't seem to be anything wrong with the MIDI export data itself. I just recommend leaving those margins when you transfer MIDI out of all notation programs and leaving a bar of space in your sequencer projects as a "best practice".

In reply to by gorzowuk

Oddly, one of those quarter notes starts before the program change, track name, and other metadata. That seems to be a bug in GuitarPro's export, but perhaps that bug cancels out the Cakewalk bug somehow? Another odd feature of the GP export is that it has the note off on tick 480, same as the next note on. This is known to give some software problems, but here again, maybe Cakewalk likes it better than the MuseScore technique of ending the first at 479.

In reply to by gorzowuk

It could also be the order in which data gets programmed at point 0. You could export identical music from Guitar Pro and MuseScore and then compare the complete MIDI event lists from both. Is the order of recorded events at point 0 different between the 2? This could have implications for the way your sequencer (or more likely the instrument plugin) deals with triggering simultaneous events. It's also worth mentioning that the buffer of time that you add before note 1 is the ideal place to program your initial automation CC0, CC7, pan, volume envelopes, etc. Record a 'wiggle' of all controllers in this space to ensure that control surfaces and automation is syncing before playback. Many folks that create templates will do this. You don't want a bunch of things happening at the same time right when a note is triggering.

In reply to by cfirwin3

compare full lists of MIDI events from both. Does the order of recorded events at point 0 differ between the two? - how to make this comparison? how?

Record a 'wiggle' of all controllers in this space to ensure that control surfaces and automation is syncing before playback - and how to do it?

In reply to by gorzowuk

  1. Your DAW may have a midi event list that you can open.

  2. Hit record and wiggle your control surfaces in the first blank measure or 2. Do this for every controller that you are using and on each track.
    Now when your project plays back, the sequence will have guaranteed calibration before the first note in all relevant areas.
    This technique is more important for large templates and instrumentation.

In reply to by gorzowuk

Sure, plus of course MsueScore and Guitar Pro won't be reading the same music to begin with. That is, the same file can't be used in both program (although MuseScore can "import" - convert - GP files). So you'
re starting from different music, and then they'll differ in detail like which channels they use for each instrument, what velocities they use for different dynamics, what CC messages they send, how long they actually consider a quarter note to be, and a thousands other details.

In reply to by gorzowuk

Below are the "0" MIDI events for all 4 files. Notice that only Guitar Pro begins with "note on" priority. Also notice that all of these logs are different (they account for events in a different order of priority even though each log represents these actions occurring at the same time). None of these logs is more correct than another, but they each have different data sets generated by their editors. This is why it is good to leave a margin of a measure and then slide the start of the track over to just before the first note in your sequencer. Doing so will remove any unnecessary data (Bank Select, etc.) from the track.

In short, leave a margin of space in your notation files when you export to ensure that the first "note on" event is played back without interruption from other underlying events or a clipped starting track point.

Best of luck!

# | Bar | When | Length|Chnl| Vel|Note| Operation | Data
1 | 1 | 0 | | 0 | | |METAEVENT -> |Track name = ??
2 | 1 | 0 | 0 | 0 |121 | 0 |controller-> | Bank Select (coarse) = 121|
3 | 1 | 0 | 0 | 0 | 0 | 32 |controller-> | Bank Select (fine) = 0|
4 | 1 | 0 | 0 | 0 |121 | 0 |program |
5 | 1 | 0 | 0 | 0 |101 | 7 |controller-> | Volume (coarse) = 101|
6 | 1 | 0 | 0 | 0 | 64 | 10 |controller-> | Pan position (coarse) = 64|
7 | 1 | 0 | 0 | 0 |110 | 7 |controller-> | Volume (coarse) = 110|
8 | 1 | 10 | 1043 | 0 | 69 | 60 |note on |

# | Bar | When | Length|Chnl| Vel|Note| Operation | Data
1 | 1 | 0 | 480 | 0 | 76 | 60 |note on |
2 | 1 | 0 | | 0 | | |METAEVENT -> |Track name = ??
3 | 1 | 0 | 0 | 0 | 0 | 0 |program |
4 | 1 | 0 | | 0 | | |METAEVENT -> |Key signature = 0, Major
5 | 1 | 0 | 0 | 0 | 0 |101 |controller-> | RP (coarse) = 0|
6 | 1 | 0 | 0 | 0 | 0 |100 |controller-> | RP (fine) = 0|
7 | 1 | 0 | 0 | 0 | 6 | 6 |controller-> | Data Entry (coarse) = 6|

# | Bar | When | Length|Chnl| Vel|Note| Operation | Data
1 | 1 | 0 | | 0 | | |METAEVENT -> |Track name = ??
2 | 1 | 0 | | 0 | | |METAEVENT -> |Time signature: 4/4, clocks/tick=24, 8 clocks/quarternote,
3 | 1 | 0 | | 0 | | |METAEVENT -> |Key signature = 0, Major
4 | 1 | 0 | | 0 | | |METAEVENT -> |Tempo = 120.00 BPM
5 | 1 | 0 | 0 | 0 | 0 |121 |controller-> | Controllers Off = 0|
6 | 1 | 0 | 0 | 0 | 0 | 0 |program |
7 | 1 | 0 | 0 | 0 |100 | 7 |controller-> | Volume (coarse) = 100|
8 | 1 | 0 | 0 | 0 | 64 | 10 |controller-> | Pan position (coarse) = 64|
9 | 1 | 0 | 0 | 0 | 0 | 91 |controller-> | NOT USED: Effects Level = 0|
10 | 1 | 0 | 0 | 0 | 0 | 93 |controller-> | NOT USED: Chorus Level = 0|
11 | 1 | 0 | | 0 | | |METAEVENT -> |MIDI Port = 0
12 | 1 | 0 | 479 | 0 | 80 | 60 |note on |

# | Bar | When | Length|Chnl| Vel|Note| Operation | Data
1 | 1 | 0 | 0 | 0 | 0 | 0 |program |
2 | 1 | 0 | 0 | 0 | 0 |121 |controller-> | Controllers Off = 0|
3 | 1 | 0 | 0 | 0 | 0 | 64 |controller-> | Hold Pedal = 0|
4 | 1 | 0 | 0 | 0 | 24 | 91 |controller-> | NOT USED: Effects Level = 24|
5 | 1 | 0 | 0 | 0 | 51 | 10 |controller-> | Pan position (coarse) = 51|
6 | 1 | 0 | 0 | 0 |100 | 7 |controller-> | Volume (coarse) = 100|
7 | 1 | 0 | | 0 | | |METAEVENT -> |Track name = ??
8 | 1 | 0 | 96 | 0 | 81 | 60 |note on |

In reply to by gorzowuk

I also noticed that the names of the tracks in Guitar Pro are saved when exporting to midi and are displayed in my sequencer on the tracks and on the clips themselves, while the names of the MuseScore parts are not saved, but some strange symbols are displayed. Why is that? It can be fixed? (I'll add screenshots later)

In reply to by gorzowuk

The names of the staves are right there in the MIDI data from MuseScore as well:

Screenshot 2023-02-01 6.54.15 AM.png

You can also see this easily by importing the MIDI file back into MuseScore:

Screenshot 2023-02-01 6.56.46 AM.png

Again, if you're having trouble with Cakewalk, you really need to contact their support staff. We've given you all the necessary information, it's up to you now to report the problem to them so they can fix it.

In reply to by gorzowuk

I'll say it one last time. Leaving a bar of margin before all exported midi data from notation is a best practice. Even if the data transferred absolutely perfectly, you would want to have that margin. This is why working film prints in movie production have a 5 second lead (the countdown clock animation). There is nothing wrong with MuseScore's midi output. All of the data is there. Sequencers and instrument plug-ins just have a hard time with too much data delivered at point 0 sometimes.

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