Dies ist eine alte Version des Dokuments!
Die wichtigsten music21-Befehle im Überblick
Die Python-Bibliothek music21 wird auf der Projektseite des MIT Boston umfassend dokumentiert: Neben einem User Guide mit Kapiteln zu zahlreichen Themenbereichen gibt es eine umfangreiche Modul-Dokumentation sowie ein alphabetischer Index aller Themen und Befehle.
Gerade angesichts dieser sehr umfangreichen Dokumentation ist es sinnvoll, die wichtigsten Befehle, die sich auf computergestützte Analyseverfahren beziehen, gesondert aufzuführen und mit kurzen Beispielen zu beschreiben.
Auf der aktuellen Seite werden die wichtigsten und nützlichsten Befehle in music21 aufgelistet. Komplexere Befehlsfolgen finden sich mit Beispielen in den Tutorials Noten.
(1) Umgang mit Dateien
sBach = converter.parse('https://analyse.hfm-weimar.de/database/04/BaJoSe_BWV846_COM_COM_DasWohltem_004_00816.xml')
# lädt das Präludium C-Dur aus dem Wohltemperierten Klavier als Variable 'sBach'
sBach.show()
# Noten werden in MuScore angezeigt
sBach.show('text')
# Noteninformationen in musicxml-Format
sBach.show('midi')
# Noten werden als midi abgespielt
Auswahl von Takten / Stimmen:
a = sBach.parts[0] # wählt die erste Stimme (hier: rechte Hand) als Variable 'a' b = sBach.measures(4,7) # wählt Takt 4 bis 7 als Variable 'b' c = sBach.parts[0].measures(2,4) # wählt Takt 2 bis 4 der ersten Stimme als c Alternative: sBach.measures(2,4).show() # wählt aus und zeigt an.
Anzahl der Elemente anzeigen:
len(sBach) # nennt die Anzahl der Elemente auf der nächsttieferen Ebene len(sBach.flat) # nennt die Anzahl aller enthaltenen Elemente, z.B. Noten
Speichern der Auswahl:
a.write() # Speichert die Variable 'a' (s. oben: die erste Stimme); alternativ: sBach.parts[0].write() a.write(‘midi‘) # speichert 'a' als Midi-File
(2) Ansicht von Graphiken:
sBach.plot('pianoroll')
sBach.parts[2].plot('pianoroll')
# nur die zweite Stimme wird angezeigt
sBach.measure(2,5).plot('pianoroll')
# nur Takt 2-5 werden angezeigt
graph.plotStream(sBach)
# = alternative Methode
sBach.plot('histogram')
# Histogramm der Tonhöhenhäufigkeiten
(3) Schreiben von Noten
n1 = note.Note('g4', type='quarter')
n2 = note.Note('a4', type='quarter')
n3 = note.Note('g4', type='half')
# Noten werden measures verbunden („gestreamt“), measures zu parts und parts zu scores:
m1 = stream.Measure()
m1.append([n1, n2, n3])
p1 = stream.Part
p1.append([m1])
(4) Chordify: Schreibt Partituren in Akkordfolgen um
chords = music.chordify() dann: chords.show() oder chords.write()
