====== music21 ====== Die Python-Bibliothek //music21// wird auf der Projektseite des MIT Boston umfassend dokumentiert: Neben einem [[https://web.mit.edu/music21/doc/usersGuide/index.html|User Guide]] mit Kapiteln zu zahlreichen Themenbereichen gibt es eine umfangreiche [[https://web.mit.edu/music21/doc/moduleReference/index.html|Modul-Dokumentation]] sowie ein alphabetischer [[https://web.mit.edu/music21/doc/genindex.html|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. ==== Die wichtigsten music21-Befehle im Überblick ==== Im Folgenden werden die wichtigsten und nützlichsten Befehle in //music21// aufgelistet. Komplexere Befehlsfolgen finden sich mit Beispielen in den Tutorials Noten. (1) Umgang mit Dateien Die folgenden Befehle laden die music21-Bibliothek und anschließend das Präludium C-Dur aus dem Wohltemperierten Klavier als Variable 'sBach' from music21 import * # Dieser Anfangsbefehl importiert die Python-Bibliothek music21 sBach = converter.parse('https://analyse.hfm-weimar.de/database/04/BaJoSe_BWV846_COM_COM_DasWohltem_004_00816.xml') Nun wird das Stück auf MuseSore angezeigt: sBach.show() So sieht man die Noteninformationen im musicxml-Format: sBach.show('text') Und so werden Noten als midi abgespielt: sBach.show('midi') 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: sBach.write() a.write() # Speichert die Variable 'sBach' oder 'a' (s. oben: die erste Stimme) als xml-File (Voreinstellung) # Es können auch andere Formate gewählt werden, z.B. sBach.write('midi') # alternativer Befehl für die erste Stimme: sBach.parts[0].write() (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])