Is it possible to assign specific midi channel numbers via instruments.xml, or by any other means?

• Feb 20, 2012 - 13:10

I'm using MuseScore 1.1 and Jack 1.9.8 on Windows XP.
I'm also using Roland D50, Roland MT-32 and Roland P-330 synths mixed via a Yamaha KM602 mixer.
I generate Midi (.mid) files using a Ruby program I wrote (which uses the MidiLib Ruby gem) running on Windows XP. The .mid files are displayed and played back perfectly by MuseScore using Windows Media Player. I then use Jack to route MuseScore's midi stream to my synthesisers and then it plays back ok on my synths.

The only problem I have is that MuseScore appears to override the midi channel numbers which I specified in my .mid file and so I cannot control which stave goes to which synth. It appears that stave 1 always goes to midi channel 1, stave 2 to channel 2. stave 3 to channel 3 and so on.

This is a problem for me bacause of the following ...
While the D50 and P-330 can be set to respond to any particular midi channel, the MT-32 is more restrictive. It's an (old) Multi-timbral synth which can play 8 separate parts plus a rhythm part. The rhythm part only respods to midi channel 10.
Parts 1 to 8 can be set to respond either to midi channels 2 to 9 respectively (the default) or to midi channels 1 to 8.
There are no other choices for this synth.
Since I want to send output to all three synths I assign midi channels as follows:
D50: channel 1; MT-32: channels 2 to 10; P-330: channel 11.

However as I said above MuseScore overrides the midi channels I specified and always sends stave 1 to channel 1, stave 2 to channel 2 etc. So it appears that the only way get it to work properly would be to use 11 staves, leaving the staves empty for the channels I'm not using!

It seems to me that you ought to be able to set the midi channel for each instrument in C:\Program Files\MuseScore\templates\instruments.xml. Indeed there is a "channel" element within the "instrument" element ...

  <instrument>
    <channel>
      <program>72</program>
    </channel>
  </instrument>

However the channel element only seems to contain a "program" element which I guess sets the midi patch number - i.e. selects the instrument (i.e. patch) within a particular synth. I cannot see anything like a "midi channel" element which would enable you to select on which synth that particular patch number should be played.

Apologies for the long preamble.
I've searched the forums and seen somewhat similar questions asked, but nothing that really answers my question.
I have 2 specific questions:

1) Is there any documentation that gives the complete syntax for instruments.xml?
(What I can see in the file is fairly self-explanatory, but I cannot tell if there are other available options that are not used in that example.

2) Is there any way to assign a specific midi channel (as opposed to a midi patch number) to a stave or instrument?

Many thanks.

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