Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.Introduzione
2.Cenni sulla composizione algoritmica
2.1.Il gioco di dadi musicale di Mozart
3.Cenni sulle catene di Markov
3.1.Alcune applicazioni
4.Analisi della catena utilizzata
4.1.Probabilit di transizione ad un passo: matrice di transizione
4.2.Grafo associato
4.3.Calcolo di leggi congiunte
4.4.Classificazione degli stati
4.5.Probabilit invarianti
4.6.Stato stazionario
5.Implementazione
5.1.Descrizione dell'algoritmo utilizzato
6.Analisi dei risultati
6.1.Analisi della forma d'onda
7.Allegati
8.Webgrafia
1.INTRODUZIONE
Nella seguente trattazione, vedremo in che modo la statistica pu trovare applicazione in
ambito di composizione musicale.
In particolare, verranno prima introdotti separatamente i concetti di composizione
algoritmica musicale e catena di Markov, osservando successivamente, con un
esempio pratico, in che modo sia possibile implementare un algoritmo che permetta di
comporre musica tramite processo markoviano.
Nel trattare la composizione algoritmica, verr approfondito maggiormente il carattere
aleatorio del comporre tramite casualit (vedremo un esempio storico di musica composta
con l'uso di dadi) a discapito del legame tra la composizione musicale e l'uso del
computer.
Saranno poi allegati due file audio ottenuti da due esecuzioni successive dello stesso
algoritmo e ne saranno evidenziate le differenze date dal carattere aleatorio
dell'implementazione stessa.
2.CENNI SULLA COMPOSIZIONE ALGORITMICA
Si definisce come algoritmico un processo musicale che si svolge, prevalentemente
mediante elaboratore digitale, in base ad un ben determinato schema utilizzato per la
generazione delle strutture musicali. L'oggetto del comporre, in questo caso, non sono gli
eventi sonori quali altezze, durate e timbro, ma il processo stesso di composizione.
Gli algoritmi (intesi come insiemi di regole formali) sono stati utilizzati per secoli per
comporre musica: le procedure utilizzate per intrecciare le voci nel contrappunto
occidentale, ad esempio, possono spesso essere ridotte a determinatezza algoritmica.
Il termine, tuttavia, solitamente indica l'uso di procedure formali per fare musica senza
l'intervento umano, sia attraverso l'introduzione di procedure casuali sia attraverso l'uso
del computer.
Alcuni algoritmi che non hanno alcuna rilevanza musicale immediata vengono utilizzati dai
compositori come ispirazione creativa per la loro musica. Algoritmi come frattali, sistemi
Lindenmayer, modelli statistici e anche dati arbitrari (ad esempio dati del censimento,
coordinate GIS, o le misurazioni del campo magnetico) sono stati utilizzati come materiali
di partenza.
Nel 1793 questa tecnica inizia ad avere larga diffusione grazie alla pubblicazione a Berlino
e ad Amsterdam di un "Musikalisches Wrfelspiel" ("Gioco di dadi musicale") utilizzabile
per comporre minuetti "senza la minima conoscenza della musica, tirando due dadi".
Il gioco, il cui autore era Wolfgang Amadeus Mozart, ebbe subito un grandissimo
successo: in pochi anni moltissime case editrici europee lo ristamparono, e vennero
pubblicate versioni economiche e di lusso.
Per comporre il minuetto, il gioco prevedeva l'utilizzo di una tabella con 11 righe e 16
colonne. In ognuna delle caselle risultanti era presente un numero da 1 a 176, che
rimandava ad un libretto nel quale erano trascritte 176 battute composte da Mozart.
Le 16 colonne della tabella corrispondevano alle 16 battute del minuetto. Lanciando, per
ciascuna delle 16 battute, due dadi e sottraendo 1 dal punteggio totale si otteneva un
numero da 1 a 11. Consultando il libretto con il numero presente all'intersezione tra la
colonna del numero di battuta e la riga determinata dal lancio dei dadi, si trovava la battuta
mozartiana da utilizzare.
Seguendo questo procedimento il "giocatore" si ritrovava con un minuetto di 16 battute.
Per quanto riguarda il trio da usare come parte centrale, il procedimento era del tutto
analogo, ma in questo caso la tabella da utilizzare aveva soltanto 6 righe, per cui era
sufficiente un solo dado.
importante sottolineare che nel lancio di due dadi le 11 combinazioni possibili non hanno
tutte la stessa probabilit: ad esempio il punteggio 7 il pi probabile, poich si pu
ottenere con 6 diverse combinazioni, mentre il 2 o il 12 si ottengono con una sola
combinazione. Alcuni minuetti, quindi, sono pi probabili di altri ma non sappiamo se
Mozart abbia tenuto conto di questo, ad esempio facendo corrispondere le battute migliori
ai lanci di dadi pi probabili.
Ci che certo, che la bravura di Mozart fu quella di scrivere battute che potessero
adattarsi bene l'una con l'altra, cosa tutt'altro che banale, specie analizzando i possibili
risultati ottenibili. Infatti, per ognuna delle 16 battute del tema principale ci sono 11 battute
possibili: quindi le combinazioni sono 1116. Analogamente, il gioco consente la
composizione di 616 trii. Poich il minuetto, come forma musicale tripartita, dato dalla
combinazione di un minuetto e di un trio, abbiamo in tutto 1116 x 616 =
129.629.238.163.050.258.624.287.932.416 diverse composizioni possibili, cio circa 129
miliardi di miliardi di miliardi!
Tale processo prende il nome dal matematico russo Andrej Andreevi Markov che per
primo ne svilupp la teoria.
In riferimento a un processo stocastico con spazio degli stati e tempo discreti, possiamo
dare la seguente definizione formale:
P( Xn+1 = j | X0, X1, , Xn ) = P( Xn+1 = j | Xn )
ovvero: se il istema si trova nello stato n, il suo stato al tempo n+1 non dipende dagli stati
ai tempi 0, 1, , n-1, ma solo dallo stato al tempo n.
3.1.Alcune applicazioni
Il motore di ricerca Google assegna un valore all'importanza di un sito web tramite
l'algoritmo PageRank: quest'ultimo si basa sull'assegnare una probabilit di transizione da
un sito web A a un sito B basata sulla quantit di link che da A conducono a B.
Conoscendo la probabilit di transizione possibile ottenere la distribuzione stazionaria di
probabilit della catena di Markov formata da tutti i siti web. La distribuzione stazionaria
assegna un valore nell'intervallo [0,1] ad ogni sito (corrispondente alla quantit media di
tempo spesa sul sito da un gran numero di utenti dopo un tempo tendente a infinito): tale
valore, opportunamente riscalato, costituisce il Page Rank del sito. Gran parte della
modellistica di serie temporali in finanza si basa su processi stocastici generati da catene
di Markov.
Note LA DO MI
LA 0.4 0.3 0.3
DO 0.6 0.25 0.15
MI 0.1 0 0.9
Un esempio con una matrice di prim'ordine.
Note LA RE SOL
LA LA 0.5 0.5 0
LA RE 0.3 0.5 0.2
LA SOL 1 0 0
RE RE 0.5 0.25 0.25
RE LA 0.75 0 0.25
RE SOL 0.9 0.1 0
SOL SOL 0.4 0.4 0.2
SOL LA 0 1 0
SOL RE 0.15 0.75 0.1
Un esempio con una matrice di secondo ordine.
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
Q=
0 0 0 0 0 1/3 2/3 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
1/3 0 0 0 0 1/3 0 0 0 1/3
Ogni riga rappresenta il comportamento dell'i-esimo stato, per questo la somma degli
elementi di una riga sempre 1.
4.2.Grafo associato
Una rappresentazione alternativa per le catene di Markov prevede l'utilizzo di un grafo
orientato pesato, i cui vertici rappresentano gli stati e i pesi degli archi le probabilit di
transizione. Per ogni stato indicata la nota, il valore della frequenza in hertz e la durata
relativa, che andr poi divisa per i bps (beats per second) per ottenere la durata effettiva.
Non sono presenti sottoinsiemi di stati che siano chiusi, pertanto E l'unica classe
irriducibile, ovvero per ogni i, j E, con i j, esister sempre n > 0 tale che qi,j(n) > 0.
Questo significa che, presi due stati qualunque, esister un percorso che andr dallo stato
i allo stato j in n passi.
Essendo E la sola classe irriducibile, e avendo essa cardinalit maggiore di 1, non sono
presenti stati assorbenti, ossia stati che costituiscono da soli una classe irriducibile.
Uno stato i si dice ricorrente se il sistema, essendo stato una volta in i, torner in i con
probabilit 1, ovvero pi, i = 1. In caso contrario lo stato si dir transitorio e pi, i < 1.
Gli stati 0, 1, 2, 7, 8 e 9 sono ricorrenti, mentre gli stati 3, 4, 5 e 6 sono transitori.
La catena aperiodica. Infatti, dato k 1, non esiste nessuna m > 1 per cui un qualche
stato j soddisfi la seguente relazione:
P(Xn+s = j | Xn = j) = 0, con s mk.
4.5.Probabilit invarianti
Nessuna delle probabilit su E invariante o stazionaria.
Infatti facile verificare che non esiste nessuna v probabilit su E tale che:
v = vQ
Poich la matrice di transizione Q regolare, ovvero esiste m intero positivo tale che:
qi, j(m) > 0, per ogni i, j E
la catena di Markov si dir regolare. Ne segue che tutti gli stati comunicano tra loro e
quindi la catena irriducibile e gli stati ricorrenti.
Ma non vale il viceversa.
4.6.Stato stazionario
Studiamo ora la catena di Markov per tempi molto grandi.
Quando l'istante di osservazione molto lontano dal punto iniziale, la probabilit p j che la
catena si trovi nello stato j non dipende dallo stato iniziale, ovvero, per j = 0, 1, ...:
lim P( Xn=j | X0=i ) = lim qi, j(n) = pj
n n
Troviamo p = (p0, p1, p2, p3, p4, p5, p6, p7, p8, p9).
Calcoliamo le equazioni di bilancio.
Per j = 0 si ha:
p0 = p9 / 3
Per j = 1 si ha:
p1 = p0
Per j = 2 si ha:
p2 = p1 + p4 / 4
Per j = 3 si ha:
p3 = p2 / 2
Per j = 4 si ha:
p4 = p3
Per j = 5 si ha:
p5 (2 / 3) = p4 (3 / 4) + p7 / 2 + p9 / 3
Per j = 6 si ha:
p6 / 2 = p5 (2 / 3)
Per j = 7 si ha:
p7 = p2 / 2 + p6 / 2
Per j = 8 si ha:
p8 = p7 / 2
Per j = 9 si ha:
p9 (2 / 3) = p8
L'equazione di normalizzazione :
p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 = 1
Tali risultati possono essere osservati empiricamente con dei semplici test sul codice
allegato. Baster infatti inserire un comando che stampi a video lo stato corrente a ogni
passo (chiameremo percorso questo insieme di valori) e calcolare la distribuzione di
frequenza con la funzione FREQUENZA di Excel, usando il percorso come dati e gli stati
possibili (ovvero gli elementi dell'insieme E) come classi.
Stato Frequenza
0 5
1 5
2 5
3 2
4 2
5 23
6 22
7 18
8 8
9 10
Mentre per n = 1000 otteniamo:
Stato Frequenza
0 36
1 37
2 41
3 17
4 17
5 209
6 297
7 167
8 74
9 105
Per valori molto grandi di n, dunque, la distribuzione di frequenza degli stati della catena
tender a stabilizzarsi seguendo la propriet invariante p.
5.IMPLEMENTAZIONE
Per l'implementazione dell'algoritmo, stato usato SuperCollider, un linguaggio di
programmazione per la sintesi audio in tempo reale con integrato un ambiente di sviluppo
diviso in due componenti: un server (scsynth) e un client (sclang). Questi componenti
comunicano tramite OSC (Open Sound Control).
Traccia 1.
Traccia 2.
Osservando le creste e gli avvallamenti, possibile notare come le due tracce siano
composte dagli stessi eventi sonori, ma disposti in maniera diversa.
Ad esempio, le forme d'onda dei suoni eseguiti tra l'istante 0 e l'istante 1 sono le stesse
per entrambe le tracce. In effetti, come si evince dal grafico e dalla matrice di transizione,
la nostra catena forza i passaggi tra gli stati 0 e 1, e tra 1 e 2. Agli istanti successivi le
tracce iniziano a diversificarsi.