music21 show ('midi') играет только одну партитуру - PullRequest
0 голосов
/ 02 марта 2020

Я использую music21 для анализа и воспроизведения музыки cxml на ноутбуке Jupyter Windows 10.

Когда я делаю:

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

миди Проигрыватель открывается, и на выходе получается MIDI-файл со звуком, равным

<score-part id="P1">

. И инструмент анализируется неправильно. Я слышу звук рояля, но партитура P1 имеет инструмент «Голос».

Этот сэмпл xml имеет 3 атрибута, например:

<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>

(я изменил идентификатор партитуры). и значения идентификатора миди-инструмента для удобства чтения)

Я хочу услышать все части инструментов в миди-плеере.
Как с этим справиться?

...