interval-histogram

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
interval-histogram [2021/04/07 17:16]
egor
interval-histogram [2021/04/08 10:17] (aktuell)
egor
Zeile 33: Zeile 33:
 {{:wiki:interval-histogram-bsp4.png?650|}} {{:wiki:interval-histogram-bsp4.png?650|}}
  
-Wie man sieht, werden bei den Ergebnissen nicht die jeweiligen Notenwiederholungen (Unison fehlt komplett als ein Wert) berücksichtigt. Will man die Tonwiederholungen in die Analyse aufnehmen, muss man [[http://web.mit.edu/music21/doc/moduleReference/moduleAnalysisSegmentByRests.html#music21.analysis.segmentByRests.Segmenter.getIntervalList|music21.analysis.segmentByRests.Segmenter.getIntervalList]] Modul verwenden:+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 [[http://web.mit.edu/music21/doc/moduleReference/moduleAnalysisSegmentByRests.html#music21.analysis.segmentByRests.Segmenter.getIntervalList|music21.analysis.segmentByRests.Segmenter.getIntervalList]] Modul verwenden: 
 + 
 +<code>intList = analysis.segmentByRests.Segmenter.getIntervalList(beispiel) 
 + 
 +[x.name for x in intList]</code> 
 + 
 +{{:wiki:interval-histogram-bsp5.png?500|}} 
 + 
 +Als Ergebnis bekommen wir die Auflistung aller Intervalle entsprechend ihrer Reihenfolge im untersuchten Beispiel. Diese Liste kann nun mit Python Modul [[https://docs.python.org/3/library/collections.html#collections.Counter|collections.Counter]] geordnet werden: 
 + 
 +<code>import collections 
 + 
 +values = ['M2', 'M2', 'M2', 'M2', 'm3', 'm3', 'M2', 'M2', 'M3', 'M3', 'M2', 'm3', 'M2', 'm3', 'M2', 'P1', 'P4', 'M2', 'P4', 'M2', 'M2', 'P1', 'M3', 'M2', 'M2', 'M3', 'm2', 'M2', 'M2', 'M2', 'P1', 'P1', 'P1', 'P1', 'm2', 'm2'
 +counter=collections.Counter(values) 
 +print(counter.most_common())</code> 
 + 
 +{{:wiki:interval-histogram-bsp6.png?550|}} 
 + 
 +Diese Daten können nun durch ein Histogramm in Matplotlib und NumPy visualisiert werden: 
 + 
 +<code>import matplotlib.pyplot as plt 
 +import numpy as np 
 + 
 +fig, ax = plt.subplots() 
 +note = ('P1', 'm2', 'M2', 'm3', 'M3', 'P4', 'd5', 'P5', 'm6', 'M6', 'm7', 'M7'
 +x_pos = np.arange(len(note)) 
 +values = (6, 3, 17, 4, 4, 2, 0, 0, 0, 0, 0, 0) 
 +ax.bar(x_pos, values, align='center', 
 +        color='salmon', ecolor='black'
 +ax.set_xticks(x_pos) 
 +ax.set_xticklabels(note) 
 +ax.set_title('Interval Histogram'
 +plt.show()</code> 
 + 
 +{{:wiki:interval-histogram-bsp7.png?600|}}
  • interval-histogram.1617815763.txt.gz
  • Zuletzt geändert: 2021/04/07 17:16
  • von egor