Um ein Pitch-Class-Histogramm zu erzeugen kann die //music21// Modul [[https://web.mit.edu/music21/doc/moduleReference/moduleGraphPlot.html#histogrampitchclass|music21.graph.plot.HistogramPitchClass]] verwendet werden:
from music21 import *
c = corpus.parse('verdi/laDonnaEMobile') #hier das gewünschte Notenbeispiel laden
p = graph.plot.HistogramPitchClass(c)
p.run()
{{:wiki:pitchclasshisto1.png?650|}}
Die einzelnen Werte können durch [[https://web.mit.edu/music21/doc/moduleReference/moduleAnalysisPitchAnalysis.html|music21.analysis.pitchAnalysis]] Modul als Tabelle angezeigt werden:
pcCount = analysis.pitchAnalysis.pitchAttributeCount(c, 'pitchClass')
for n in sorted(pcCount):
print("%2d: %2d" % (n, pcCount[n]))
{{:wiki:pitchclasshisto2.png?600|}}
Ebenfalls kann die Histogramm-Visualisierung durch Matplotlib und NumPy realisiert werden:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
note = ('c', 'c#', 'd', 'd#', 'e', 'f', 'f#', 'g', 'g#', 'a', 'a#', 'b')
x_pos = np.arange(len(note))
values = (40, 0, 58, 44, 1, 111, 3, 15, 0, 37, 61, 0)
ax.bar(x_pos, values, align='center',
color='salmon', ecolor='black')
ax.set_xticks(x_pos)
ax.set_xticklabels(note)
ax.set_title('Pitch Class Histogram')
plt.show()
{{:wiki:pitchclasshisto_matplot.png?600|}}