Great info, Matt. However, I think MusicXML does indeed support patch assignments, which they refer to as midi-programs. As a matter of fact, I've even edited the XML to add them prior to importing into Musescore.

I had also studied the musicxml tutorial and the specification was surprisingly hard to find given that it would seem to be a common need. One place you can see the specification of the midi-program attribute is at http://www.musicxml.com/UserManuals/MusicXML/Content/CT-MusicXML-midi-instrument.htm

Here is an example of how this, and other midi-related parameters, can be used in the "part-list" section of the xml file follows. It is based on musicxml exported from musescore.

<score-part id="P6">
<part-name>Melody</part-name>
<score-instrument id="P6-I1">
<instrument-name></instrument-name>
</score-instrument>
<midi-device id="P6-I1" port="1"></midi-device>
<midi-instrument id="P6-I1">
<midi-channel>5</midi-channel>
<midi-program>72</midi-program>
<volume>78.7402</volume>
<pan>0</pan>
</midi-instrument>
</score-part>

Thanks.

--Dave