Relatore: Prof. G. Haus Studente: Guagnini Stefano
Correlatore: Dott. G. Frazzini Matr.: 375079
Riassunto di tesi di laurea in Scienze dell'Informazione
Anno Accademico 1997/98
Metodi e strumenti per la segmentazione automatica di partiture musicali scritte in NIFF
In genere si è abituati a pensare alla musica come ad un insieme di note perché questo è il metodo più diffuso per accostarsi allo studio di tale disciplina. Esiste però un modo diverso di pensare alla musica: pensarla come un insieme di "oggetti musicali". Con oggetto musicale si intende un frammento di pentagramma contenente un certo numero di note che viene ripetuto più volte (anche se spesso soggetto a variazioni) nellíarco di un brano.
Il principale scopo della segmentazione è appunto líidentificazione di questi oggetti musicali che verranno indicati come temi. I temi di una composizione una volta noti potranno essere utilizzati per scopi diversi che vanno dallíanalisi stilistica di un compositore alla compressione del testo musicale in forma alfanumerica.
Il lavoro sviluppato in questa tesi di laurea rientra in un più ampio progetto in via di sviluppo presso il Laboratorio di Informatica Musicale (L.I.M) del Dipartimento di Scienze dell'Informazione dell'Università degli Studi di Milano. Questo progetto consiste nel restauro e nella digitalizzazione dellíarchivio fonico del teatro alla Scala di Milano, quindi, allo sviluppo di una base di dati multimediale (MAIS ñ Musical Archive Information System) che raccolga tutto questo materiale (audio, video, partiture e una serie di altre informazioni).
In questo contesto il principale scopo del metodo di segmentazione che verrà presentato è quello di fornire gli elementi necessari per líindicizzazione delle partiture in questa base di dati, cosicché sia possibile eseguire delle ricerche per contenuto. Un secondo scopo è quello di creare una mappa delle occorrenze dei vari oggetti musicali, in modo che queste informazioni siano disponibili per future applicazioni.
Gli aspetti salienti del presente lavoro (sviluppato su piattaforma Windows in Visual C++) sono quattro:
Come formato di acquisizione dei dati, essendo molto ricco nella descrizione notazionale di informazione musicale, è stato assunto lo standard NIFF (Notation Interchange File Format), che adotta la struttura interna RIFF (Resource Interchange File Format) definita da Microsoft.
La prima fase dellíanalisi di un brano consiste nella scansione del file NIFF durante la quale vengono scartate tutte le informazioni irrilevanti o ridondanti per le successive fasi (ad esempio i dati relativi allíimpaginazione). Le informazioni significative vengono ripartite su più file ognuno dei quali, al termine della scansione, conterrà la codifica di una sola parte o voce (un solo pentagramma).
La seconda fase riguarda la lettura e líorganizzazione dei dati in memoria. La partitura viene rappresentata con la stessa struttura gerarchica che avrebbe su uno spartito, cioè è vista come un elenco di pentagrammi ognuno associato ad una parte e ad una voce. Ogni pentagramma viene rappresentato come una lista di battute e queste a loro volta come liste di eventi musicali.
Nella terza fase si procede al calcolo e allíassegnamento degli accenti a tutte le note della partitura seguendo le regole della grammatica definita da un automa deterministico appositamente costruito durante lo sviluppo di questa tesi.
In seguito si preparano i dati per la ricerca dei frammenti generativi, eseguendo preventivamente alcuni dei calcoli necessari in modo da ridurre quanto più possibile i successivi tempi di esecuzione. Tale ricerca avviene su una lista ordinata di elementi che rappresentano i vari eventi musicali delle diverse parti. Apposite marche vengono inserite in questa lista per separare gli eventi appartenenti parti diverse o per indicare punti particolari che non possono essere interni ad un frammento tematico (ad esempio pause eccessivamente lunghe). Ad ogni elemento della lista sono associati dei valori che rappresentano líimportanza di quellíevento inserito in uno specifico contesto (il frammento che lo contiene). La ricerca procede confrontando ogni frammento con tutti quelli che lo seguono. Ogni volta che un frammento viene riconosciuto equivalente ad un altro líimportanza di tutti gli elementi appartenenti al primo dei due (quello più a sinistra nella lista) aumenta mentre quella relativa agli elementi del secondo (quello a destra) diminuisce in modo proporzionale alla loro somiglianza. Al termine dellíanalisi, alle prime occorrenze dei frammenti tematici sarà riconosciuta uníimportanza maggiore che non alle altre, quindi li si potrà isolare. Líimportanza dei frammenti viene valutata secondo due aspetti, il ritmo e la melodia. Sarà possibile, in fase di valutazione, combinare in vari modi i risultati ottenuti per ognuno di questi due aspetti (li si potrà pesare separatamente e si potrà indicare la necessità o la sufficienza di ognuno di essi).
Líidentificazione dei frammenti tematici comporta necessariamente un numero di confronti di ordine n2. Per ridurre i tempi di calcolo è stato necessario sviluppare degli strumenti che consentissero di velocizzare ogni singolo confronto.
A tale scopo si sono definiti degli operatori che rappresentassero le più comuni trasformazioni musicali utilizzate dai compositori. Si sono quindi considerati equivalenti quei frammenti che potevano essere messi in relazione tramite queste trasformazioni. Il problema nellíutilizzo di questi operatori cosi come definiti stava nel fatto che si sarebbe dovuto eseguire un grande numero di calcoli per stabilire se due frammenti potevano essere equivalenti. Quindi si è effettuato uno studio delle proprietà matematiche di questi operatori per giungere infine ad adottare una rappresentazione tale da ridurre la verifica ad un semplice confronto fra vettori.
Il formato adottato per líacquisizione delle partitura è di recente definizione, non è quindi facile recuperare spartiti scritti secondo questo standard. Per questo si devono spesso importare le partiture da un formato più povero o da un supporto cartaceo (tramite scanner) con risultati molto spesso poco precisi. Si è quindi introdotta una variante del metodo di segmentazione. Anziché utilizzare tutti gli eventi scritti sui pentagrammi si va a campionare la partitura a intervalli regolari (ad es. ogni quarto) e quindi ad eseguire la ricerca dei frammenti tematici in base a questo campionamento escludendo líaspetto ritmico.
I risultati ottenuti sono più che soddisfacenti in quanto i temi estratti durante i test eseguiti su fonti eterogenee corrispondevano abbastanza bene a quelli riportati sui manuali. Líunico effetto indesiderato notato è che molte volte i frammenti estratti comprendono anche le note che precedono o seguono il tema.