Midi export: Instruments not correct

• Jul 24, 2015 - 09:40
S4 - Minor
needs info

GIT commit: f51dc11

When exporting a large score (symphonic orchestra incl choir) as MIDI, the instruments are not set correctly. Every line is either "Choir Aahs" or "Treble strings".


Status (old) active needs info

I'm not seeing that. When I import your MIDI file back into MuseScore, the sounds are just as they were in the original. Which specific staff are you seeing a problem with, and what are you doing with this MIDI file to perceive the problem?

In which player, using which soundfont, on what OS? And again, which specific staff am I listening for? Most of the notes *are* for strings, after all.

MIDI has a limit of 16 channels. A score with more than 16 instruments is going to have to reuse some channels, and different players may respond differently. But a dump of the MIDI file using midicomp appears to show everything as good as can be expected. The notes for clarinet, harp, piano, and all strings appear to be using good channels and program changes.

In particular, violins use channels 4-6, violas channels 7-9, cellos channels 11-13, basses channels 14-16, and in all cases, the programs are string ensemble, pizziacto strings, tremolo strings in that order, with all notes on the first (string ensemble) channel. So it seems to me that MuseScore is exporting decent information, but is running into the limitations of MIDI's 16 channels. Maybe someone else can examine the file and see something I don't.

At least it seems the import / export are consistent.

I have tried 3 different players /MIDI programs on my windows and even my Android phone. None is playing the file correctly.

It may be possible, that MuseScore is indeed exporting the file correctly, but stretching the limits of the MIDI standard. However, the file is not of much use then.

I see 3 options:
1. Fix the export. Maybe there is something odd that regular MIDI players don't interpret / understand correctly.
2. Merge similar lines (optionally?) somehow to stay below the 16 channel limit
3. At the very least: Warn the user that the MIDI file might not be played correctly due to the number of instruments and maybe make it possible to exclude / merge / adjust lines or instruments, or split the whole part into 2 or more MIDI files.