2.7 Concatenazione di voice leading e serie temporali
2.7.2 Clustering gerarchico e rappresentazione tramite dendrogramma
Nell’esempio precedente abbiamo visto come confrontare i brani a coppie attraverso la DTW.
Possiamo pensare ora a un insieme di n brani (o alla loro rappresentazione come concatenazio-
ne di voice leading) come a una nuvola di n punti in uno spazio metrico, in cui la distanza tra
due punti `e la distanza DTW; `e ora possibile descrivere il posizionamento tra tali punti attra-
verso un’analisi di clustering gerarchico (si veda [Ott 2009] e [Jain e Dubes 1988]). Questa analisi
restituisce una semplice rappresentazione di tutti i possibili cluster tra i punti, visualizzabile
come dendrogramma.
2.7. CONCATENAZIONE DI VOICE LEADING E SERIE TEMPORALI
49
0 10 9 8 7 6 5 4 3 2 1 0A
B
C
D
E
H
G
F
I
J
(a) Insieme di dati bidimensionali.
2 4 6 8 10 12 14 16 A B C D I E H F G J (b) Dendrogramma.
Figura 2.17: Dendrogramma che riporta la dissomiglianza tra dati. La struttura della nuvola
di punti `e fatta da due gruppi distinti e da due elementi outliers. Il dendrogramma riporta
una tale struttura, rappresentando i due gruppi come cluster separati e unendo gli outliers ai
cluster rispettando la loro posizione relativa rispetto alla configurazione della nuvola di punti.
Rappresentazione di dati tramite dendrogrammi
I dendrogrammi forniscono una rappresentazione intuitiva del clustering gerarchico di dati (si
veda [Langfelder, Zhang e Horvath 2008], [W. L. Martinez, A. R. Martinez e Solka 2010] per una
descrizione completa di questi argomenti). Si considerino i dati bidimensionali rappresentati
come punti inR
2nella figura 2.17a. I dati formano due cluster e hanno due elementi distaccati
(outliers) etichettati come I e J. L’asse orizzontale del dendrogramma rappresenta la distanza (o
dissomiglianza) tra i cluster, mentre ogni oggetto `e rappresentato dalla sua etichetta nell’asse
verticale. L’informazione che restituisce il dendrogramma riguarda quindi la somiglianza e
il clustering tra dati. Ogni unione `e rappresentata dalla divisione di una linea orizzontale in
due linee orizzontali. La posizione della divisione consente di recuperare la distanza tra due
cluster. Osservando il dendrogramma nella figura 2.17b, si pu `o vedere come i due cluster
principali sono rappresentati come rami che stanno circa alla stessa distanza. I valori anomali
sono congiunti a distanze ben pi `u elevate.
I valori presenti all’interno di un dendrogramma sono chiamati foglie (o leaves, in inglese).
Calcolo del dendrogramma
Si consideri un gruppo di n oggetti e sia D
= (d
u v)la matrice
che rappresenta la distanza tra i cluster u e v, composti da n
ue n
voggetti rispettivamente. Il
dendrogramma `e calcolato come segue:
1. Si trovano i cluster u e v tali che d
u v`e minimo in D.
2. Si raggruppano u e v in un nuovo cluster z con n
z=n
u+n
voggetti.
3. Occorre ora ricalcolare le distanze tra il nuovo cluster z e gli altri cluster w, ottenendo
una nuova matrice di distanze; a ogni tipo di distanza calcolata corrisponde la scelta di
un diverso algoritmo. Citiamo alcuni degli algoritmi pi `u utilizzati:
Sicut
Estote Discendi Se Tu m’accogli
Sicut
0 0, 7585
1, 6229
1, 3089
Estote 0, 7585
0
1, 5336
1, 2251
Discendi 1, 6229 1, 5336
0
1, 0962
Se Tu m’accogli 1, 3089 1, 2251
1, 0962
0
Tabella 2.5: Matrice delle distanze DTW tra i brani analizzati in questi esempi.
• Il linkage singolo (single) assegna la distanza:
d
z w=min{d(z
i, w
j) |i∈ {1, 2, . . . , n
z}, j∈ {1, 2, . . . , n
w}}
• il linkage completo (complete) assegna come distanza:
d
z w=max{d(z
i, w
j) |i∈ {1, 2, . . . , n
z}, j∈ {1, 2, . . . , n
w}}
• nel linkage medio (average) la distanza tra cluster `e definita come media aritmetica
delle distanze:
d
z w=
∑
i=1,...,nz j=1,...,nwd(z
i, w
j)
n
z·n
w• il linkage pesato (weighted), infine, assegna la seguente distanza:
d
z w=
d
(u, w) +d(v, w)
2
4. Si iterano i passaggi precedenti.
Il metodo del clustering gerarchico ha una propriet`a fondamentale: l’assegnazione di un ogget-
to a un cluster `e irrevocabile, ovvero una volta che un oggetto `e entrato a far parte di un cluster,
non ne viene pi `u rimosso.
Esempio 2.7.2.
Proviamo ad applicare il clustering gerarchico ai brani analizzati nell’esempio
2.7.1.
Per allargare la complessit`a del dendrogramma, aggiungiamo all’analisi una versione del
corale Wer nur den lieben Gott l¨aßt walten, armonizzato da Johann Sebastian Bach su melodia di
Georg Neumark (di seguito riportato col titolo della versione in italiano, Se Tu m’accogli), gi`a
citato a pagina 24; una volta analizzati i suoi voice leading, le distanze DTW rispetto agli altri
brani sono riportate, insieme a quelle della tabella 2.4, nella tabella 2.5.
Dalle distanze delle tabelle 2.4 e 2.5 si ottiene il dendrogramma riportato in figura 2.18 a
fronte. Si pu `o vedere come ci siano due cluster nettamente distinti: uno formato dai due brani
del 1500, caratterizzati da una grande indipendenza tra le voci, l’altro formato dai due brani
pi `u omoritmici, sebbene Se Tu m’accogli riporti una complessit`a maggiore rispetto a Discendi
Santo Spirito.
2.7. CONCATENAZIONE DI VOICE LEADING E SERIE TEMPORALI
51
Sicut cervus
Estote fortes
Se Tu m'accogli
Discendi, Santo Spirito
0.0
0.5
1.0
1.5
2.0
Figura 2.18: Dendrogramma che rappresenta il clustering tra i quattro brani polifonici
analizzati in precedenza.
Capitolo 3
Metodi e risultati
In questo capitolo sar`a mostrato il procedimento sperimentale utilizzato per l’analisi: nella
prima sezione sono presentati i metodi con cui essa `e stata affrontata, per poi descrivere i brani
analizzati e infine riportare e commentare i risultati.
3.1
Algoritmo e metodi utilizzati
Il linguaggio utilizzato per l’analisi `e Python, versione 2.7.10; l’algoritmo iniziale `e quello utiliz-
zato in [Bergomi 2015, Parte 2] e [Bergomi, Jadanza e Portaluri 2015], opportunamente adattato
per gli scopi di questa tesi.
I brani analizzati, in formato MIDI, vengono codificati come liste di pitch dal pacchetto
Music21; i file MIDI sono creati con il software di scrittura musicale Finale; la versione del
programma che `e stata utilizzata `e la versione 2012a.
I file MIDI devono presentare le seguenti caratteristiche:
• Ogni traccia del file riferita a voci diverse deve essere impostata su un canale diverso;
• Nel caso dei MIDI generati con Finale, occorre impostare Human Playback su Nessuno
prima di esportare il file in formato MIDI, per evitare complicazioni nella fase di conteg-
gio dei valori delle note, necessaria per quanto descritto nella sezione 3.1.3 nella pagina
successiva;
• All’inizio della sperimentazione era necessario che ogni voce fosse in un file MIDI se-
parato; si `e poi modificato l’algoritmo di conversione MIDI, consentendo di inserire un
unico file per ogni brano, riducendo sensibilmente le tempistiche di sperimentazione. Si
`e comunque conservata la possibilit`a precedente.
Nel documento
Analisi della complessità del voice leading di musica polifonica sacra tramite matrici di permutazione parziale
(pagine 56-61)