2
我按照說明here解析MIDI文件。我的代碼如下所示:Music21:從MIDI文件獲取每個樂器的所有音符
from music21 import converter,instrument # or import *
file = converter.parse('sample.mid')
components = []
for element in file.recurse():
components.append(element)
的components
列表現在包含數據如下:
<music21.stream.Score 0x7f50314ca390>,
<music21.stream.Part 0x7f50314caf10>,
<music21.instrument.Instrument Acoustic Guitar>,
<music21.instrument.Instrument Acoustic Guitar>,
<music21.tempo.MetronomeMark allegro moderato Quarter=130.0>,
<music21.meter.TimeSignature 4/4>,
<music21.note.Note E>,
<music21.note.Note B>,
<music21.note.Note E>,
<music21.note.Note B>,
<music21.note.Note E>,
<music21.note.Rest rest>,
.
.
.
<music21.chord.Chord B3 E3>,
<music21.chord.Chord B3 E3>,
<music21.chord.Chord B3 E3>,
<music21.chord.Chord B3 E3>,
<music21.chord.Chord B3 E3>,
<music21.chord.Chord B3 E3>,
<music21.chord.Chord D4 F#3>,
<music21.chord.Chord D4 F#3>,
<music21.chord.Chord D4 F#3>,
.
.
.
<music21.stream.Part 0x7f50309b99d0>,
<music21.instrument.Instrument Electric Guitar>,
<music21.instrument.Instrument Electric Guitar>,
<music21.meter.TimeSignature 4/4>,
<music21.note.Rest rest>,
<music21.note.Note E>,
<music21.note.Note F#>,
<music21.note.Note G>,
<music21.note.Note A>,
<music21.note.Note G>,
<music21.note.Note E>,
<music21.note.Rest rest>,
我的目標是根據它在像<music21.instrument.Instrument Electric Guitar>
標籤中列出的每個儀器到隔離筆記。我如何實現這一目標?
非常感謝您的回覆。對此,我真的非常感激。但是,在執行以下操作時遇到錯誤: instruments = instrument.partitionByInstrument(file) StreamException:對象(,id()= 140306780864464)已經(),id()= 140306889172688) –
sri
我要求對此提供任何建議 – sri