Introduzione
La musica può essere descritta in diversi modi. L'approccio
classico è quello del rigo musicale, con esso un brano
viene descritto molto in dettaglio fornendo tutte le informazioni
necessarie per l'esecuzione di ogni singola nota: altezza, durata,
timbro, dinamica, etc..
Un'altro approccio è quello di chi studia un brano per
individuare al suo interno gli insiemi di note che costituiscono
delle unità concettuali, dette "oggetti musicali",
e le funzioni di trasformazione che vengono di volta in volta
applicate ad essi. Un'analisi di questo tipo produce un modello
che descrive una composizione musicale attraverso la sua struttura
e la sua evoluzione temporale. In questo modo vengono evidenziate
informazioni concettuali che sfuggono alla rappresentazione classica
e si ottiene una descrizione più compatta.
Un supporto scientifico a questo approccio è stato dato
dalle reti di Petri (RP) musicali, un formalismo di reti di Petri
[Petri 76] che permette la sintesi di partiture a partire da oggetti
elementari dalle trasformazioni definite dall'utente. Questo lavoro
di tesi nasce dalla volontà di sperimentare Scoresynth
strumento software per la costruzione ed esecuzione di RP nella
descrizione di partiture musicali complesse al fine di individuare
tramite l'utilizzo pratico limiti ed esigenze del sistema e quindi
apportare le opportune modifiche.
1.1 Esperienze precedenti
Diamo qui alcune informazioni circa le esperienze precedenti maturate
nell'ambito delle reti di Petri (RP).
Il primo sistema di cui ci occupiamo è MAP/CMUSIC realizzato
da A. Camurri all'università di Genova [Camurri 84] su
un computer VAX fornito di un convertitore digitale-analogico;
questo strumento riceve in ingresso una RP, rappresentata attraverso
un codice alfanumerico, e genera in uscita un file CMUSIC. CMUSIC
è un programma general purpose per la sintesi del suono
usato al CARL (Computer Audio Research Laboratory) che converte
una partitura in ingresso in un segnale digitale ascoltabile tramite
convertitori D/A.
Il secondo sistema di cui ci occupiamo è MAP/MCL realizzato
da G. Jacomini all'università di Milano [Jacomini 85] su
un VAX affiancato da un computer musicale CMI, esso permette di
sintetizzare partiture scritte nel linguaggio MCL (Music Composition
Language) a partire da una RP definita tramite un apposito linguaggio
di descrizione. MCL è un linguaggio per il disegno di una
composizione tramite gerarchie del tipo: piece-part-sequence,
cioè gerarchie che strutturano una composizione con metodologia
TOP-DOWN: dal concetto astratto di brano via via dettagliandolo
in parti e sequenze di note. In breve il MAP (Musical Actor by
Petri Nets) è strutturato in tre parti: MFORM, REMARK,
PERFORM. MFORM permette tramite un linguaggio di descrizione di
definire la struttura della rete (posti, transizioni, archi, marcatura,
capacità) utilizzando posti di differenti tipi:
- posti di controllo
- posti di Start e End
- posti rappresentanti oggetti musicali (partiture in CMUSIC,
campioni CMUSIC, partiture in MCL).
Con REMARK si può modificare la marcatura della rete senza
doverla ricompilare. Infine PERFORM si preoccupa di costruire
la partitura finale.
Una evoluzione significativa del MAP si è avuta con MAP/MAC
sistema sviluppato da E. Bianchi (tesi di laurea all'universit
di Milano) [Bianchi 86] su Macintosh 512, in questo programma
è stata inserita una interfaccia grafica e interattiva
di alto livello che permette di costruire RP e di rappresentarle
attraverso l'uso di un insieme di icone grafiche. In MAP/MAC gli
oggetti musicali sono file di testo simbolici compilati poi per
ottenere sequenze di comandi MIDI (Musical Instrument Digital
Interface). Esistono due ambienti di lavoro in MAP/MAC: l'Editor
e il Performer. L'Editor si occupa della costruzione e della modifica
delle reti e della loro apparenza grafica. Con il Performer si
eseguono le reti e si ascoltano le partiture sintetizzate.
In fine citiamo il sistema PETREX realizzato su personal IBM da
Camurri, Haus, Rodriguez. PETREX è un programma per la
costruzione ed esecuzione di RP "general purpose", quindi
non esclusivamente musicali, capace di simulazioni in tempo reale.
1.2 Discussione critica su Scoresynth
Scoresynth è stato realizzato da A. Sametti (tesi di laurea all'università di Milano) [Sametti 88] su personal Macintosh. In esso gli "oggetti musicali" vengono associati ai posti mentre alle transizioni vengono associati algoritmi di modifica dei parametri del suono (altezza, durata, intensit, timbro) e di manipolazione di sequenze di note. Scoresynth ha ereditato da MAP/MAC il tipo di interfaccia e l'algoritmo di esecuzione, estendendoli e migliorandoli dove possibile, è costituito da due parti l'Editor e l'Executer: nell'Editor si costruiscono le RP musicali in modalità preminentemente grafica, nell'Executer la rete viene eseguita generando una partitura che in seguito pu essere ascoltata collegando l'elaboratore alla strumentazione digitale tramite interfaccia MIDI.
Al fine di sperimentare le reali potenzialità di Scoresynth
nella descrizione di partiture musicali complesse, si è
deciso di realizzare un modello del Bolero di Ravel sfruttando
una analisi musicologica di Antonio Rodriguez. Nel realizzare
le prime reti si è subito evidenziato che spesso le stesse
strutture ricorrono all'interno dell'opera con delle differenze
in qualche parametro, sarebbe quindi utile sfruttare l'uso dei
morfismi, dato che una delle caratteristiche di Scoresynth è
proprio la possibilità di utilizzare raffinamenti successivi
nella costruzione di reti complesse, ma questa operazione non
è possibile data la presenza di differenze in alcuni parametri
di queste strutture.
E' allora evidente l'utilita dell'inserimento di reti macro, ovvero
di fornire all'utente la possibilit di aggiornare alcuni
parametri della rete richiamata prima che questa venga eseguita.
Si è quindi inserita la possibilità di assegnare
ai nodi, di tipo sottorete, una stringa contenente le modifiche
da attuare ai parametri della rete chiamata.
Un'altra considerazione è che durante l'esecuzione di una
rete Scoresynth genera un file di comandi M.I.D.I., questi in
seguito possono essere inviati a strumenti musicali digitali che
eseguono i comandi ricevuti suonando quindi la partitura descritta
dalla rete. Spesso è difficile capire gli errori commessi
nell'utilizzo delle reti attraverso l'ascolto, si è pensato
allora di realizzare un nuovo ambiente nel quale si potesse avere
un riscontro grafico, la mappa ad oggetti, della partitura generata
durante l'esecuzione della rete, ovvero un piano con ascissa il
tempo e ordinata i canali M.I.D.I.. Sempre con l'obbiettivo di
rendere più controllabili le RP costruite si è deciso
di offrire da questo ambiente la possibilità di far procedere
l'esecuzione per singoli scatti di transizioni per vedere i cambiamenti
prodotti nella mappa e contemporaneamente i valori di tutti i
parametri rilevanti della rete, il musicista può in questo
modo intervenire in caso di comportamenti inattesi e analizzare
nel dettaglio l'esecuzione della rete.