Is there an all-in-one tool that can fix MIDI channel assignment problems?

• Dec 8, 2016 - 17:43

Hello everyone,

I have been using MIDI files for a long time now to study the structure of musical pieces I like. A few weeks ago, someone sent me an outstanding MIDI file which plays fine in MuseScore, but ordinary players and converters always fail to accurately play it. The reason for this is that you can apparently not have two simultaneous instruments on one channel, so one could wonder why Sibelius, the program used to export this file, can't just export things correctly.

I was therefore wondering, does anyone know whether there is a tool that can put the structure of such files to right? I honestly do not mind on which channels all the instruments end up (for all I care they can change every five seconds).

Vincent


Comments

I'm not sure what you mean about not being able to have two instruments on the same channel. Unless I am *completely* misunderstanding what you are saying, nothing about MIDI forbids this. Are these two of the same type of instrument (eg, two flutes), or two totally different instruments (g, a trumpet and a violin)? The former wouldn't be particularly unusual actually, although MuseScore would not be able to figure out that it really represented two different instruments so it might playback OK but would not look the way it was supposed to.

In reply to by bollemanneke

Hmm, that seems quite unusual then. I would expect at the least there would be program changes before each note? Otherwise MuseScore wouldn't be able able to do any better - but then I'm surprised other programs can't see those. Or maybe it uses "ports" - getting beyond my limited knowledge of MIDI.

In reply to by Marc Sabatella

Right. MuseScore does a great job with it. But the odd thing is, when I open it in another player and gradually delete tracks, the files slowly becomes more and more normal. What I just don't understand is why the original author, who is clearly very good at what he does, is unable to generate an ordinary MIDI file. If the channels are indeed the problem, shouldn't applications be aware of this? It's like asking a PDF conversion that then only opens in a few select PDF readers.

In reply to by bollemanneke

Hard to say for sure without seeing the actual file - feel free to attach it. Then maybe someone with more expertise can advise better. But what I can say is, MIDI defines only 16 channels. There are various workarounds that can be used to allow a piece to have more than 16 instruments, but MIDI itself imposes this restriction. So I'm not sure what you mean by saying you want an "ordinary MIDI file". An "ordinary MIDI file" uses 16 instruments or fewer. Use more than that and one way or another you need to go beyond the ordinary.

Please attach the MIDI file in question for examination.

Most scoring software (including MuseScore) uses multiple internal MIDI ports to overcome MIDI's 16 channel limit when dealing with orchestral music, as a full orchestra requires way more than this, and it is my guess that this is the case with this file.

If such a file is played back on a sequencer with only one MIDI port, then the program change on channels assigned to more than one port will overwrite each other, resulting in undefined results.

I need to examine the file to confirm that this is the case, however.

In reply to by bollemanneke

Well I have had a look at the file.

There are no meta-events associated with port definition in the file, so presumably Sibelius has some sort of mechanism for automatically assigning internal MIDI ports.

MuseScore has an intelligent MIDI port assignment algorithm which simply opens a new port when an already assigned channel is encountered in the SMF, which is why MuseScore plays it back properly.

On most other systems you will have to set up the ports beforehand. In some players, Windows Media Player for example, this is not possible, but if you are using SynthFont or a sequencer such as Logic, Sonar or Cubase you can assign software synths to several ports.

There are 43 tracks, so you will need to assign 3 different MIDI ports, each with a software synth attached to it, in order to play this score successfully.

It is for reasons such as this that most score engravers view MIDI as a last resort file format for music file exchange. Unless you know its intricacies, it is an absolute minefield, being completely hardware specific: a file generated on one system not sounding the same on another unless it has been preconfigured as such.

HTH

In reply to by ChurchOrganist

Okay, thanks for that. Are there any simple programs that I can use to change the channels of the tracks? I'm told that I can solve the problem by allocating one instrument per channel as well, but all the programs I tried so far (Ableton, Sibelius, Anvil, Synthfont and MuseScore) are incompatible with my screenreader. It's mind-boggling that MIDI players don't take these things into account. If you can export the file like this, you should be able to play it like that as well.

In reply to by bollemanneke

Cakewalk's Sonar is supposed to be screen reader friendly, but has to be specially configured to work like this. It's quite expensive software, but here's a link to the article in their knowledge base if you think it might help.

https://www.cakewalk.com/Support/Knowledge-Base/200709182/SONAR-and-Scr…

Apparently it's about the only option these days for PC.

You may also find this thread from GearSlutz helpful.....
https://www.gearslutz.com/board/music-computers/818937-daw-works-screen…
All the information available seems to be at least 2 years old :(

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