Sei sulla pagina 1di 19

DEI - Department of Information Engineering

Università degli Studi di Padova

Facoltà di Ingegneria
Corso di Laurea MAGISTRALE in Ingegneria Informatica

Corso di Informatica per la Cultura


Docente titolare del corso: Prof. Giovanni De Poli

Progetto:
Analisi dell’Espressività nella
Musica

Studenti: Professori:
Anuska Benacchio 601047 Prof. Sergio Canazza
Giuseppe Cassano 602102 Prof. Antonio Rodà
Francesco Locascio 604120
Nicolò Paganin 607267

Anno Accademico 2009/2010 17.07.2010


.
Indice 2

Indice
1 Introduzione 2

2 Scelta dei brani musicali 3

3 Interfaccia 4

4 Esecuzione dei test 4

5 Features acustiche 5

6 Analisi dei dati 7


6.1 Creazione della matrice di dissimilarità . . . . . . . . . . . . . 7
6.2 Creazione del Multidimensional Scaling e Clustering . . . . . . 8
6.2.1 Grafici MDS . . . . . . . . . . . . . . . . . . . . . . . . 8
6.3 Analisi dei cluster e delle feature comuni . . . . . . . . . . . . 11

7 Conclusioni 12

A Grafici MDS 14

B Kinestetic space 15

C Script Matlab per la creazione della matrice di dissimilarità 15

D Script R per la generazione dei grafici MDS e per il clustering


con “K-means” 16

Bibliografia 17

1 Introduzione
Lo scopo del progetto era quello di analizzare le intenzioni espressive tra-
smesse da brani musicali in tonalità “maggiore”. Il progetto si è svolto sulla
falsa riga del progetto svolto nel 2005 da Bigand [2] e analizzato da Canazza,
De Poli, Rodà [1] nel 2010 per l’estrazione di tratti comuni fra il dominio mu-
sicale e quello fisico. Per far questo si sono fatte ascoltare a venti musicisti e a
3

venti non musicisti 23 brani selezionati. Lo scopo degli ascoltatori era quello
di raggruppare brani che avevano intenzioni espressive simili. I dati raccolti
sono stati analizzati creando una matrice di dissimilarità delle emozioni e
creando poi dei diagrammi MDS (multidimensional scaling) clusterizzati con
“K-means” in uno spazio 2−dimensionale (un esempio di spazio descritto in
letteratura è il Kinestetic space (app. B). Sono stati analizzati i dati ottenuti
dai non musicisti, dai musicisti e i dati totali mettendo assieme musicisti con
non musicisti.

2 Scelta dei brani musicali


Per lo svolgimento del progetto sono stati selezionati 23 brani classici in
tonalità “maggiore”. Viene di seguito riportata la lista dei brani scelti e il
numero identificativo di ciascun brano che verrà utilizzato nel seguito.

1 R. Strauss - Also sprach Zarathustra


2 Antonio Vivaldi - Trio Sonata Do Mayor, RV82 allegro
3 Berlioz - La dannazione di Faust - Ballet des Sylphes
4 J. Brahms - Violin Concerto, Adagio.
5 D. Scarlatti, Sonata A for Harpsichord, K208
6 R. Schumann - Tra eumerei, op. 15, no. 7
7 Bizet - Symphony No.1 in C
8 Boccherini Luigi - Minuetto
9 Byrd - Galliard
10 Claude Debussy - Claire de lune
11 F. Liszt - Poeme symphonique
12 Corelli - violin sonata
13 Faure - nocturne op 84 no 8
14 L. Beethoven - Piano, Sonata 32, mvt 2
15 F. Mendelssohn - Italian Symphony, mvt 1
16 Handel - Concerto Grosso Op6
17 Marcello Benedetto - Sonata No.1 in F Major
18 Monteverdi - Prologo - Toccata
4

19 J. Haydn. Symphony Bdur - Hob I 105, Andante


20 W.-F. Bach - Duetto for two flutes in G, Allegro
21 F. Schubert - Valse no. 3, op. 50, D779
22 L. Beethoven - Symphony. 7, Vivace
23 Monteverdi - Sonata sopra Sancta Maria

3 Interfaccia
Per dare la possibilità agli utenti di ascoltare i brani e di creare i gruppi
in modo più semplice e intuitivo è stata realizzata un’interfaccia grafica in
PureData. L’interfaccia aveva anche lo scopo di rendere l’interazione con il
pc più agevole e di fornire un modo semplice per poter ascoltare i brani più
volte e poter classificarli.
Ciò di cui ci siamo accorti durante i test è che non è possibile creare i gruppi
tutti in un solo momento e ascoltando i brani una sola volta. E’ neccessario
infatti un primo ascolto dei brani e la creazione di alcuni gruppi temporanei.
Dopo essersi fatti un’idea generale dei gruppi gli utenti avevano quindi la
possibilità di riascoltare i brani un numero arbitrario di volte e di modificare
o convalidare i gruppi creati precedentemente.
L’interfaccia, oltretutto, al momento della sua apertura forniva i brani mu-
sicali ordinati casualmente, in modo che, ad ogni utente, venivano forniti i
brani in oridine diverso. Questo ha reso i test più attendibili, togliendo la
possibilità che i gruppi creati dagli utenti fossero influenzati dalla particolare
sequenza di ascolto. Riportiamo uno screeshot dell’interfaccia in fig.1.

4 Esecuzione dei test


L’esecuzione dei test è avvenuta esclusivamente in un laboratorio adibito per
lo scopo. Questo ha avuto il vantaggio di far sentire gli utenti più a loro agio
in modo da compromettere il meno possibile i risultati. Oltretutto, si è usata
una strumentazione professionale (casse acustiche o cuffie di qualità) in modo
che ogni utente potesse avere il massimo confort e la massima resa di qualità
dei brani che ascoltava con la strumentazione che più preferiva.
Ad ogni utente veniva spiegato l’obiettivo del test, cioe’ di raggruppare brani
5

Figura 1: Interfaccia

con intenzioni espressive simili, e veniva consegnato un foglio con le istruzioni


per l’utilizzo dell’interfaccia.
Durante le spiegazioni abbiamo notato che i musicisti non avevano bisogno di
ulteriori spiegazioni sulle modalita’ e obiettivi del test mentre la maggior par-
te dei non musicisti aveva bisogno di ulteriori spiegazioni e di porre qualche
domanda di delucidazione.

5 Features acustiche
Per poter relazionare le risposte degli utenti con le emozioni trasmesse dai
brani si sono calcolate le feature acustiche dei brani selezionati. Per il calcolo
automatico delle feature sono stati utilizzati script realizzati da Calzavara,
Salamone, Toso [3] nella parte iniziale di questo progetto. Le feature sono
state calcolate usando frame non sovrapposti di 46 ms di larghezza. Si sono
raccolte informazioni su undici feature. Le più importanti verranno spiegate
di seguito:
ˆ Tempo: misurato in bpm (beats per minute) indica la velocità della
performance. Dato che i brani selezionati sono caratterizzati da una
complessa struttura audio, il tempo è stato calcolato manualmente
da un esperto, sarebbe stato infatti difficile calcolarlo con strumenti
automatici;
6

ˆ Brightness: misura la quantità di energia intorno alla frequenza di


1000Hz. Il risultato è un numero compreso fra 0 e 1;
ˆ Zerocross: misura il numero di volte per cui il segnale audio cambia di
segno e può essere considerato come un semplice indicatore di rumore;
ˆ Centroid: è relazionato alla brightness. Più alto è il centroide più
l’energia è concentrata nelle alte frequenze. Viene misurato in Hertz;
ˆ Rolloff : è la frequenza in cui e’ contenuta l’85% dell’energia. Anch’esso
è relazionato alla brightness;
ˆ Roughness: è una stima del grado di dissonanza tra due sinusoidi,
a seconda del rapporto tra la loro frequenza. La roughness totale per
un suono complesso può essere calcolata determinando i picchi dello
spettro, e prendendo la media di tutte le dissonanze tra tutte le coppie
di picchi possibili;
ˆ Spectralflux: è definito come la distanza dello spettro dal succesivo
frame;
ˆ RMS: indica l’energia media del segnale;
ˆ Onsets: si riferisce alla differenza di energia sviluppata da differenti
componenti di frequenza;
ˆ Attack Time: e’ il tempo richiesto per raggiungere il picco in RMS
partendo dall’istante onset;
ˆ Spectral Ratio: che indica la quantita’ di energia nelle basse frequen-
ze.

Vengono di seguito riportati i dati delle feature che hanno discriminato i vari
gruppi. Come in [1] le feature sono state scelte valutando qualitativamente i
rispettivi valori.
7

Num. Tempo Brightness Centroid Rolloff Zerocross


1 61 0.32 1717 2372 521
2 120 0.39 1727 3210 789
3 52 0.26 1337 1867 515
4 53 0.37 1291 1746 938
5 53 0.17 1082 1105 370
6 50 0.15 1092 1028 443
7 84 0.44 1600 2714 817
8 98 0.43 1754 3233 1044
9 78 0.32 1353 2289 575
10 54 0.19 1847 2706 468
11 79 0.68 2660 4971 1650
12 104 0.48 2220 4367 1082
13 56 0.16 948 1069 449
14 102 0.32 1147 1799 655
15 145 0.41 1509 2494 827
16 72 0.54 1873 3229 1120
17 60 0.40 1498 2559 713
18 116 0.61 2855 5840 1578
19 76 0.44 1672 2487 851
20 103 0.33 1423 1581 135
21 88 0.24 1201 1785 674
22 103 0.47 1784 3176 971
23 79 0.26 1203 1741 498

6 Analisi dei dati


L’analisi dei dati è avvenuta su tre fasi distinte spiegate nel seguito.

6.1 Creazione della matrice di dissimilarità


Prima di tutto si è dovuto calcolare la matrice di dissimilarità. Tale matrice
è definita in questo modo: sia A la matrice di dissimilarità, ad ogni riga di
A è associato un brano di quelli selezionati, stessa cosa per le colonne. A nel
6.2 Creazione del Multidimensional Scaling e Clustering 8

nostro caso è, quindi, una matrice 23 × 23.


Il generico elemento A[ij] è pari al numero di volte per cui i brani i e j
sono stati posizionati dagli utenti in gruppi differenti. Indichiamo con g(i) il
gruppo dell’i − esimo brano, allora

(
A[ij] + 1 g(i) 6= g(j)
A[ij] =
A[ij] + 0 altrimenti

Per la creazione efficiente della matrice di dissimilartà è stato creato uno


script Matlab che, per brevità, riportiamo nell’appendice C.

6.2 Creazione del Multidimensional Scaling e Cluste-


ring
Dopo aver creato la matrice di dissimilarità questa viene usata per la crea-
zione dei Multidimensional Scaling Graph in uno spazio 2-dimensionale e
il relativo clustering. Per la creazione dei grafici MDS è stato usato questa
volta uno script R, riportato in appendice D. Per il clustering si è scelto di
1
inizializzare l’algoritmo di Clustering “K-means” per la creazione di 3, 4, 5
cluster. Ogni cluster corrisponde ad un gruppo. In questo modo i dati dei
raggruppamenti degli utenti vengono utilizzati per generare i gruppi che me-
glio rappresentano quelli generati dagli utenti.
I brani musicali raggruppati nello stesso cluster sono poi stati analizzati in
base alle feature acustiche dei brani stessi cercando di trovare quali feature re-
stavano invariate nello stesso cluster. In questo modo si è tentato di associare
caratteristiche acustiche del brano alle emozioni suscitate negli ascoltatori.

6.2.1 Grafici MDS

Riportiamo di seguito i grafici MDS con 3-cluster ottenuti dai dati di non mu-
sicisti (fig.2), musicisti (fig.3) e dai dati congiunti di musicisti e non musicisti
(fig.4). I nomi dei cluster sono stati scelti in base al valore delle feature, come
1
L’algoritmo “K-means”, dato in ingresso un numero k di cluster, cerca di raggruppare
gli elementi a distanza minore in k cluster. L’algoritmo è un’euristica quindi non trova il
miglior clustering, ma sicuramente termina dato che esiste solo un numero finito di modi
in cui raggruppare n elementi in k cluster.
6.2 Creazione del Multidimensional Scaling e Clustering 9

spiegato nel paragrafo 6.3. Riferendoci a [1] tali cluster sono stati chiamati E,
I ed EF2 . I rimanenti grafici con 4,5-cluster sono stati riportati in appendice
A. Da questi ultimi infatti non si sono ricavate informazioni aggiuntive (si
veda il paragrafo successivo).

Figura 2: Grafico MDS relativo ai NON-musicisti

Dai grafici MDS si può notare che l’unica differenza fra i grafici MDS di
musicisti e non musicisti è legata ai brani 9,12. Nel caso dei musicisti tali brani
vengono entrambi inseriti nel cluster E, mentre nel caso dei non musicisti il
brano 9 appartiene al cluster I e il brano 12 al cluster EF. Nel caso del grafico
relativo ai dati congiunti i brani 9, 12 vengono inseriti negli stessi cluster dei
grafici relativi ai dati di non musicisti.
In effetti, guardando il grafico, si può notare che: il brano 9 si trova ad una
distanza molto piccola dal cluster I e il brano 12 ad una distanza molto piccola
dal cluster EF. Questo sta ad indicare che i musicisti hanno raggruppato i
brani 9, 12 insieme con i brani del cluster E qualche volta di più rispetto ai
non musicisti, ma nel complesso i raggruppamenti del brano 9 con i brani del
cluster I e del brano 12 con i brani del cluster EF sono maggiori di quelli dei
raggruppamenti dei brani 9, 12 con i brani del cluster E.
2
I = Inertia attractor, E= Elasticity attractor, F= Friction attractor
6.2 Creazione del Multidimensional Scaling e Clustering 10

Figura 3: Grafico MDS relativo ai musicisti

Figura 4: Grafico MDS relativo ai dati congiunti

Per la successiva analisi dei dati si è quindi deciso di analizzare i dati congiunti
di musicisti e non musicisti, considerando il brano 9 appartenente al cluster
I e il brano 12 al cluster EF.
6.3 Analisi dei cluster e delle feature comuni 11

6.3 Analisi dei cluster e delle feature comuni


Per effettuare l’analisi dei cluster si è proceduto manualmente, nel senso che
si è prima provato ad analizzare il 3-cluster, trovando caratteristiche simili
fra brani nello stesso cluster. Si è poi continuata l’analisi con i 4-cluster ed
i 5-cluster in modo da convalidare o perfezionare i risultati ottenuti con il
3-cluster.
Nel caso in esame, si è concluso che la migliore clusterizzazione è quella con
i 3-cluster. Tale conclusione deriva dal fatto che, ai fini dell’analisi e per tro-
vare le feature comuni, effettuare un numero maggiore di cluster comportava
avere valori delle feature molto simili tra loro fra i cluster aggiuntivi. Di
conseguenza i brani appartenenti a cluster con valori delle feature simili si
potevano unire.
Ciò che si è ricavato è che, sulla base dei cluster creati da “K-means”, i brani
appartenenti ad uno stesso cluster sono contraddistinti da valori molto simili
di alcune delle feature estratte. Riportiamo di seguito la suddivisione in clu-
ster dei brani selezionati con le relative feature.

Num. Tempo Brightness Centroid Rolloff Zerocross


7 84 0.44 1600 2714 817
11 79 0.68 2660 4971 1650
12 104 0.48 2220 4367 1082
EF
15 145 0.41 1509 2494 827
16 72 0.54 1873 3229 1120
18 116 0.61 2855 5840 1578
22 103 0.47 1784 3176 971
2 120 0.39 1727 3210 789
8 98 0.43 1754 3233 1044
14 102 0.32 1147 1799 655
20 103 0.33 1423 1581 135
E
21 88 0.24 1201 1785 674
23 79 0.26 1203 1741 498
12

Num. Tempo Brightness Centroid Rolloff Zerocross


1 61 0.32 1717 2372 521
3 52 0.26 1337 1867 515
4 53 0.37 1291 1746 938
5 53 0.17 1082 1105 370
I 6 50 0.15 1092 1028 443
9 78 0.32 1353 2289 575
10 54 0.19 1847 2706 468
13 56 0.16 948 1069 449
17 60 0.40 1498 2559 713
19 76 0.44 1672 2487 851
3
Si sono poi descritte con degli indicatori le feature comuni. Riportiamo di
seguito i risultati.

Cluster Tempo Brightness Centroid Rolloff Zerocross


EF ++ ++ ++ ++ ++
I -- -- -- - --
E + + - - -

Dalla tabella e dai grafici si può notare che l’asse x suddivide i cluster in
base al tempo mentre l’asse y in base alla brightness. Dalla tabella si può
facilemente verificare che il cluster EF è caratterizzato da valori alti per
tutte le feature, il cluster E da valori medi mentre il cluster I ha valori bassi
per tutte le feature, di conseguenza sono stati determinati. In particolare,
essendo tutte feature del timbro (brightness, rolloff, zerocross,...), queste sono
altamente correlate quindi, per esempio, il cluster EF essendo caratterizzato
da alta brightness, di conseguenza ha alti valori di rolloff e zerocross.

7 Conclusioni
Il progetto era orientato nel trovare relazioni tra il dominio delle emozioni
trasmesse dalla musica e caratteristiche del suono dei brani ascoltati. Alla
fine del progetto si è potuto concludere che esistono dei tratti comuni fra
3
++ per valori molto alti, + per valori alti, - per valori bassi, - - per valori molto bassi
13

i due domini e in particolare si è notato che alcune feature acustiche sono


molto più correlate alle sensazioni dell’utente rispetto ad altre. Con l’analisi
dei dati raccolti abbiamo concluso che queste featuers sono: Tempo per l’asse
x e Brightness, Rolloff e Zerocross per l’asse y. Questo risultato è sicuramente
in linea con quanto concluso nelle precedenti ricerche [1][2] e concettualmente
coerente con la definizione di Kinestetic space.
14

A Grafici MDS

Figura 5: Grafici MDS con relativi cluster


15

B Kinestetic space
In letteratura con Kinestetic space si intende uno spazio 2 − dimensionale il
cui scopo è di associare alle intenzioni espressive di un musicista le emozioni
provate da un utente ascoltatore. L’ascoltatore deve posizionare le perfor-
mance del musicista lungo i due assi relativi alle 2 dimensioni.
In un Kinestetic space l’asse x è legato al Tempo (Kinematics) e discri-
mina fra perfomance “Heavy” e “Light” mentre l’asse y è legata all’Ener-
gia (Brightness, Centroids, Attack time, ecc.) e discrimina fra performance
“Soft” e “Hard ”. Viene riportata in figura 6 un grafico rappresentativo dello
Kinestetic space

Figura 6: Kinestetic Space

C Script Matlab per la creazione della ma-


trice di dissimilarità
clear;
close all;

% inizializzo la matrice 23x23 con tutti 0


M = zeros(23,23);

% Carico il file gruppi.txt dove e’ presente una matrice N x 23.


16

% Ogni riga corrisponde ai gruppi formati da una persona.


% Le colonne vanno da 1 a 23, ognuna corrisponde a una traccia musicale.

gruppi = fopen(’gruppi.txt’ , ’r’);


% salvo la matrice : ’%g %g’-> tipo elementi su una riga
% [x inf] : x -> quante colonne ho
G = fscanf ( gruppi ,’%g %g %g %g %g %g %g %g %g %g %g %g %g
%g %g %g %g %g %g %g %g %g %g \n’ , [23 inf] );
[c,n] = size(G);
fclose (gruppi);

% Aggiornamento matrice. Sommo uno ogni volta che due tracce sono in
% gruppi diversi
for k = 1:n
for i = 1:23
for j =1:23
if ( G(i,k)~= G(j,k) )
M(j,i)= M(j,i)+1;
end
end
end
end

% Scrittura nel file matrice.txt della matrice ottenuta


matri = fopen (’GroupedExpressionsN.txt’,’wt’);
fprintf (matri,’%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g
%g %g %g %g %g %g %g %g \n’,M);
fclose (matri);

D Script R per la generazione dei grafici MDS


e per il clustering con “K-means”
library(MASS)
17

##Etichette aggettivi
label<-c("1","2","3","4","5","6","7","8","9","10","11","12","13",
"14","15","16","17","18","19","20","21","22","23")

##Lettura da file matrice di dissimilarità aggettivi raggruppati


matgroupedN<-read.table("GroupedExpressionsN.txt")

##Kruscal non metric MDS


MDS1<-isoMDS(matgroupedN,y=cmdscale(matgroupedN,k = 2),k = 2,
maxit=500)

##K-means clustering
km<-kmeans(MDS1$points,6,iter.max=2000,nstart = 25)

plot(MDS1$points[,1],MDS1$points[,2],col=km$cluster,xlab = "Dim 1",


ylab = "Dim 2",type="p",xlim=c(-20,20),ylim=c(-20,20),axes=FALSE)
km$cluster

##Aggiunta etichette aggettivi al plot


text(MDS1$points[,1],MDS1$points[,2],labels=label,col=km$cluster,
adj=c(0.5,-0.7))

##Aggiunta titolo al plot


title(main="Musicisti + NON Musicisti - 6 cluster")

##Aggiunta assi al plot


axis(1,pos=0,tcl=0.2,cex.axis=0.6,padj=-2.5,outer=TRUE,at=
c(-20,-15,-10,-5,0,5,10,15,20))
axis(2,pos=0,tcl=0.2,cex.axis=0.6,hadj=0,las=2,outer=TRUE,at=
c(-20,-15,-10,-5,0,5,10,15,20))
Riferimenti bibliografici 18

Riferimenti bibliografici
[1] Canazza, S., De Poli, G., and Rodà, A. (2010). On the espressive gestu-
res. Looking for common traits between musical and physical domain.
Proceedings of Kansei Engineering and Emotion Research, KEER 2010,
March, 2-4, Paris, pp. 1589-1597.

[2] Bigand, Vieillard, Madurell, Marozeau, Dacquet Multidimensional sca-


ling of emotional responses to music: The effect of musical expertise and
of the duration of the excerpts Cognition and Emotion 2005.

[3] Calzavara, Salamone, Toso Analisi dell’espressività nella musica - script


per l’estrazione delle feature con Matlab, 2010.

Potrebbero piacerti anche