0

我能够使用 music21.stream.Score 获得所有部分

s = music21.stream.Score()
s.getElementsByClass(music21.instrument.Instrument)

或者

music21.instrument.partitionByInstrument(s)

但我找不到检查每个声部是否使用钢琴乐器的方法。有没有更好的方法来做到这一点?

4

1 回答 1

1

要从 music21.stream.Score 中获取所有钢琴声部,您可以执行以下操作:

from music21 import *
piano_parts = []
score = converter.parse('path/to/midi')
instr = instrument.Piano
for part in instrument.partitionByInstrument(score):
    if isinstance(part.getInstrument(), instr):
        piano_parts.append(part)

您可以分配instr给任何其他 music21.instrument 以提取其他乐器

于 2018-03-25T04:01:36.057 回答