interval-histogram

Dies ist eine alte Version des Dokuments!


Es können zahlreiche Informationen zum Intervallverlauf eines Musikbeispiels durch music21 bereitgestellt werden. Dazu gehören vor allem der Tonumfang sowie Verlauf der Intervallschritte.

Als Beispiel nehmen wir die Sopran-Stimme aus einem Choral von J.S.Bach:

from music21 import *

b = corpus.parse('bach/bwv66.6')
beispiel = b.parts[0]
beispiel.show()

Den Tonumfang oder Ambitus einer Stimme kann mit music21.stream.analyze Modul ermittelt werden:

beispiel.analyze('range')

Die Ausgabe erfolgt dabei direkt als die Angabe des Intervalls (Kurzbezeichnung). Optional kann der Tonumfang ebenfalls in Halbtonschritten oder als eine ausgeschriebene Intervallbezeichnung ausgegeben werden:

beispiel.analyze('range').semitones
beispiel.analyze('range').niceName

Um den Intervallverlauf anzuzeigen verwendet man das Modul music21.analysis.discrete.MelodicIntervalDiversity

intverlauf = analysis.discrete.MelodicIntervalDiversity().countMelodicIntervals(beispiel)

for interval in intverlauf:
	print(interval + ":", intverlauf[interval][1])

Wie man sieht, werden bei den Ergebnissen nicht die jeweiligen Notenwiederholungen (Unison fehlt komplett als ein Wert) berücksichtigt (sehe T.5, T. 6, T.9 in Notenbeispiel) . Will man die Tonwiederholungen in die Analyse aufnehmen, muss man music21.analysis.segmentByRests.Segmenter.getIntervalList Modul verwenden:

intList = analysis.segmentByRests.Segmenter.getIntervalList(beispiel)

[x.name for x in intList]
  • interval-histogram.1617836072.txt.gz
  • Zuletzt geändert: 2021/04/07 22:54
  • von egor