Music21: Holen Sie sich alle-Noten pro Instrument eine MIDI-Datei

Ich bin Parsen der MIDI-Datei, wie angewiesen hier. Mein code sieht wie folgt aus:

from music21 import converter,instrument # or import *
file = converter.parse('sample.mid')
components = []
for element in file.recurse():
    components.append(element)

Den components Liste enthält Daten wie folgt:

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

Mein Ziel ist es, trennen Sie die Notizen nach jedem instrument, die aufgeführt ist, in einen tag wie <music21.instrument.Instrument Electric Guitar>. Wie kann ich das erreichen?

InformationsquelleAutor sri | 2017-03-06



One Reply
  1. 2

    Ich denke, Sie wollen die instrument.partitionByInstrument() – Funktion, die separate stream in verschiedenen teilen nach dem instrument.

    • Vielen Dank für Ihre Antwort. Ich wirklich zu schätzen. Jedoch bin ich der Begegnung ein Fehler während der Ausführung der folgenden: Instrumente = instrument.partitionByInstrument(Datei) StreamException: das Objekt (<music21.tempo.MetronomeMark allegro moderato Quartal=130.0>, id()=140306780864464) ist bereits in diesem Stream (<music21.stream.Teil Akustikgitarre>, id()=140306889172688)
    • Ich bitte für alle Anregungen auf dieser

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.