UN SISTEMA PER LA SINTESI DI PARTITURE MUSICALI MEDIANTE ESECUZIONE DI RETI DI PETRI

 

 

 

Riassunto

Le Reti di Petri fino ad oggi sembrano essere uno strumento molto efficace per definire i modelli che caratterizzano i sistemi dinamici. Non solo  efficace ma anche semplice in termini di implementazione.
L'osservazione di fenomeni musicali pu˜ essere ben rappresentata mediante un'opportuna formalizzazione di sistemi dinamici e quindi mediante Reti di Petri.
Per inquadrarlo meglio nell'ambito dei sistemi dinamici diremo che un fenomeno musicale  costituito da una serie di "oggetti musicali" distinti che vengono eseguiti, trasformati, eseguiti nuovamente, ritrasformati durante il trascorrere del tempo. Associando ai posti di una Rete di Petri gli "oggetti musicali" e alle transizioni operatori su tali oggetti, si crea una corrispondenza tra una istanza della rete e la progressione sonora cos" come la udiamo.
Il lavoro di tesi  consistito nell'analisi e sviluppo su Macintosh di un sistema software, realizzato nell'ambiente del sistema di sviluppo MPW 2.0 col linguaggio di programmazione Pascal, linkato con alcune routine assembler per la gestione della porta seriale.
Il tipo stesso di elaboratore ha orientato la realizzazione verso un sistema preminentemente grafico, interattivo e flessibile che vuole essere un reale supporto al lavoro del musicista, consapevoli delle difficoltˆ che egli deve affrontare nell'approccio non essendo sempre un esperto di informatica.
Il tipo di problemi incontrati riguardano la definizione di algoritmi ad hoc per la gestione della struttura dati, della grafica, dei dati MIDI, degli "oggetti musicali" e degli algoritmi; in particolare, per questi ultimi due sono stati realizzati semplici parser "top-down".
Per quanto riguarda l'interprete delle reti esso accetta il formalismo della teoria generale pi
le estensioni consistenti nella capacitˆ dei posti, molteplicitˆ degli archi, morfismi di tipo raffinamento e temporizzazione. L'algoritmo che lo implementa  stato realizzato utilizzando le esperienze fatte in altri lavori di tesi evelvendolo per supportare le estensioni introdotte.
Nell'ambito di una sessione di lavoro si pu˜ operare in due ambienti distinti: l'editor e il performer.
L'editor, dotato di una interfaccia grafica evoluta, permette la creazione e la modifica interattiva delle reti: inserimenti, cancellazioni di posti, archi e transizioni; la modifica degli attributi associati ai posti; la definizione e l'assegnazione degli oggetti musicali ai posti e degli algoritmi alle transizioni. Un oggetto musicale consiste a livello dell' utente in un insieme di note, pause e comandi per modificare lo stato della strumentazione. Un algoritmo agisce sugli oggetti dei posti in ingresso alla transizione alla quale appartiene modificandoli in termini di sequenze o sottosequenze. Possiamo distinguere due tipi di algoritmi: algoritmi che modificano i parametri del suono(altezza, intensitˆ, durata, timbro) e algoritmi che manipolano le sequenze di note (inversioni speculari, retrogradazioni, rotazioni, ripetizioni, trasposizioni, cancellazioni).
Il performer esegue le reti generando una partitura che pu˜ essere ascoltata in tempo differito, memorizzata come file ed eventualmente usata come oggetto musicale da associare a uno o pi
posti (realizzando in maniera meno formale ma pi
efficiente la possibilitˆ di strutture gerarchiche implicite nella definizione adottata delle Reti di Petri). L'ascolto avviene collegando la porta seriale del calcolatore a una strumentazione elettronica digitale (campionatori, sintetizzatori, batterie elettroniche) tramite una interfaccia MIDI (Musical Instrument Digital Interface).
In conclusione lo scopo del lavoro vuole essere sia quello di produrre all'atto pratico "fenomeni musicali" osservabili, sia quello di mostrare come anche il processo compositivo  per molti aspetti formalizzabile in leggi ben definite, che portano alla sintesi di partiture a partire da "oggetti musicali" elementari, senza volere diminuire in esso l'importanza della "invenzione".