music21 show('midi') plays just one score-part

618 Views Asked by At

I am using music21 to parse and play musicxml files on Windows 10 Jupyter Notebook.

When I do:

sa = converter.parse('d:/musicxml_folder/BeetAnGeSample.xml')
sa.show('midi')

the midi player opens and the output is a midi file that has sound of just the

<score-part id="P1">

And instrument is parsed wrong too. I hear grand piano sound but score-part P1 has the "Voice" instrument.

This sample xml has 3 attribute like this:

<part-list>
    <score-part id="P1">
      <part-name>Voice</part-name>
      <score-instrument id="xxx">
        <instrument-name>Voice</instrument-name>
      </score-instrument>
      <midi-instrument id="xxx">
        <midi-channel>1</midi-channel>
        <midi-program>53</midi-program>
      </midi-instrument>
    </score-part>
    <score-part id="P2">
      <part-name>Piano</part-name>
      <score-instrument id="xxx2">
        <instrument-name>Acoustic Grand Piano</instrument-name>
      </score-instrument>
      <midi-instrument id="xxx">
        <midi-channel>2</midi-channel>
        <midi-program>1</midi-program>
      </midi-instrument>
    </score-part>
    <score-part id="P652d2f88e786a36c81c494f7869835df">
      <part-name>Piano</part-name>
      <score-instrument id="xxx3">
        <instrument-name>Acoustic Grand Piano</instrument-name>
      </score-instrument>
      <midi-instrument id="xxx">
        <midi-channel>3</midi-channel>
        <midi-program>1</midi-program>
      </midi-instrument>
    </score-part>
  </part-list>

(i changed score-instrument id and midi-instrument id values for readability)

I want to hear all the instruments' parts in a midi player.
How to handle it ?

0

There are 0 best solutions below