Capitolo 1
Introduzione
1.1 Introduzione a MediaSynth: le partiture multimediali
Comunicare é da sempre stato uno dei fattori fondamentali
del vivere in una società. Nel nostro secolo con l'avvento
prima della radio e poi della televisione, la comunicazione ha
assunto via via aspetti sempre più sofisticati. Non si
comunica più solo a voce o tramite parole e immagini stampate,
ma si uniscono tutte queste cose per avere un impatto maggiore
su chi deve ricevere il messaggio. Tutto ciò é reso
possibile soprattutto dalla tecnologia avanzata a nostra disposizione.
Questa tecnologia, e in particolare l'informatica, fornisce strumenti
che permettono di trattare in maniera consistente dati non di
un solo tipo, per esempio solo testo, ma comprendenti diversi
canali mediali, quali l'audio e il video.
Il presente progetto nasce dall'idea di ampliare il concetto
di spartito, per comunicare sfruttando anche le possibilità
date dall'audio digitale e dal video. Naturalmente é necessario
un nuovo supporto descrittivo che non sia più lo spartito
tradizionale ma che permetta di descrivere e temporizzare eventi
diversi quali sono quelli audio e quelli video; eventi che sono
rappresentati dai media. Tale supporto é appunto lo spartito
multimediale contenente le informazioni descrittive dei media
e delle loro relazioni nel tempo. Questa rappresentazione é
attuabile mediante l'uso di linguaggi formali o grafici che permettono
oltre ad una facile descrizione, anche una facile lettura delle
relazioni che intercorrono tra gli oggetti.
Il nostro scopo però non é solo quello di descrivere
gli oggetti multimediali e le relazioni tra loro esistenti, in
quanto esistono già strumenti avanzati che ottemperano
in maniera esauriente a questa necessità (vedi §2.2),
ma quello di dimostrare che é possibile un approccio simbolico
all'elaborazione di suono e video; approccio simbolico reso possibile
dall'uso di Reti di Petri Multimediali, concepite come estensione
delle Reti di Petri Musicali riccamente usate in precedenza per
la sintesi di partiture MIDI [Degli Antoni & Haus, 1983] [Haus
& Rodriguez, 1989] [Haus & Sametti, 1994].
Il programma risultante da questo progetto, MediaSynth, si propone
quindi come strumento generativo di opere multimediali. Mediante
l'uso delle Reti di Petri Multimediali e delle loro caratteristiche
é possibile assegnare Oggetti Multimediali ai posti della
rete, e alle transizioni associare degli algoritmi di trasformazione,
scritti secondo una grammatica context-free, che permettono di
modificare i parametri del suono o del video o di entrambi. L'esecuzione
della rete dà come risultato un Media Object Finale, che
é un movie contenente lo spartito multimediale, la cui
composizione non é affatto scontata in quanto una delle
caratteristiche delle Reti di Petri é proprio il non-determinismo.
Il presente lavoro di tesi si é occupato in particolare
delle operazioni riguardanti l'audio, sia per gli oggetti intermedi
dell'esecuzione della rete che per quello finale, oltre che di
alcune delle modifiche necessarie per passare dall'esecuzione
di una Rete di Petri Musicale a quella di una Rete di Petri Multimediale.
1.2 Introduzione all'audio digitale
I suoni sono variazioni della pressione acustica che possono essere trasformate in voltaggi elettrici e viceversa; essi sono caratterizzati dal fatto di essere continui in ampiezza e nel tempo, sono cioè analogici. Al fine di poter trattare con un elaboratore tali segnali, è necessario renderli digitali, cioè discreti sia nel tempo che in ampiezza. La conversione dal dominio analogico a quello digitale avviene in due passaggi, mediante il campionamento e la quantizzazione del segnale [Blesser, 1978].
1.2.1 Campionamento
Campionare significa rendere discreto il tempo. Il processo
di campionamento consiste nel partizionare il tempo continuo in
una serie discreta di punti (figura 1.1), in ognuno di questi
punti il voltaggio viene convertito in una parola digitale. Il
campionamento, a differenza della quantizzazione, può non
far perdere informazione se vengono rispettate certe condizioni,
e in particolare se è verificato il Teorema di Nyquist,
cioè se la frequenza di campionamento è maggiore
di due volte la frequenza massima del segnale da campionare. Generalmente
per limitare in banda il segnale analogico si usa un filtro passa-basso.
Nel caso si campioni un segnale contenente frequenze superiori
a quella di Nyquist, si introducono nuove componenti, avendo così
un effetto indesiderato detto aliasing (equivocazione delle frequenze).
La frequenza di campionamento standard dell'audio digitale è
44100 Hertz.
Fig. 1.1 Campionamento
1.2.2 Quantizzazione
La quantizzazione consiste nel rendere discreta l'ampiezza
del segnale. La qualità del risultato dipende molto dalla
tecnica di conversione usata e dall'ampiezza della parola, cioè
dal numero di bit usati per rappresentare l'ampiezza del segnale.
Supponiamo per esempio che la codifica sia lineare e la parola
sia di 3 bit. Il dominio analogico può essere visto come
un voltaggio che può assumere qualunque valore tra un massimo
ed un minimo (per esempio da +1 volt a -1 volt). Nel dominio digitale
ho a disposizione 2^n parole, nel nostro esempio 2^3 = 8 parole.
Quantizzare significa dividere il dominio analogico in tante regioni
quante sono rappresentabili dalle parole digitali (8), e assegnare
tutti i voltaggi che cadono in una determinata regione alla parola
che ad essa corrisponde (figura 1.2). Nel caso di codifica lineare
il dominio analogico é diviso in intervalli uguali.
Da quanto detto risulta evidente che il processo di quantizzazione
distrugge necessariamente informazione; aggiungendo un bit alla
parola digitale si riduce questa perdita di informazione, poiché
ogni bit in più permette di specificare un numero doppio
di intervalli di quantizzazione e quindi di ridurre a metà
l'errore di quantizzazione, che però sarà sempre
presente.
Fig. 1.2 Digitalizzazione
Lo standard dell'audio digitale è di 16 bit.
1.2.3 SNR
Una misura della qualità di un sistema di conversione è data dal Signal-to-Noise Ratio (SNR), cioè dal rapporto tra l'ampiezza massima del segnale e l'errore di quantizzazione dovuto al fatto che ad una sola parola corrispondono più valori analogici. SNR è funzione del numero di bit di conversione. Nel caso di un segnale ad onda sinusoidale, SNR può essere così espresso in decibel:
SNR = 6.02n + 1.76 dB
dove n è il numero di bit usati nella conversione. Ogni bit contribuisce con circa 6 dB alla qualità del sistema.
1.2.4 File audio
Il segnale digitalizzato viene memorizzato in soundfile sotto forma di sequenza di valori di ampiezze intere. I file audio che abbiamo utilizzato nel nostro lavoro sono di tre formati: SoundDesigner I, SoundDesigner II e AIFF (Audio Interchange File Format).
I file SoundDesigner I sono costituiti da un header di 1336
byte in cui si trovano varie informazioni sul file e sul segnale
da esso contenuto, in particolare il numero di bit per campione,
la frequenza di campionamento e il numero di canali. All'header
seguono i campioni, rappresentati da numeri interi così
disposti S1, S2, S3,...Sn, dove Si è l'i-esimo campione.
Nel caso di un suono stereo i campioni sono memorizzati nella
sequenza L1, R1, L2, R2,..., Ln, Rn, dove Li è l'i-esimo
campione del canale sinistro e Ri è l'i-esimo campione
del canale destro.
I file SoundDesigner II contengono in una risorsa di tipo STR#
le informazioni relative al segnale (numero di byte per campione,
frequenza di campionamento e numero di canali) e nel data fork
i campioni disposti nello stesso modo usato nei file SoundDesigner
I.
I file AIFF sono un insieme di chunk che definiscono le caratteristiche
del suono o dati ad esso relativi. Un chunk è costituito
da un header che contiene il chunk ID e la dimensione del chunk,
e dai dati. I chunk principali sono: il Form Chunk, che contiene
tutti gli altri; il Common Chunk, che contiene le informazioni
relative ai bit per campione, al numero di canali, alla frequenza
di campionamento; il SoundData Chunk che contiene i campioni.
Altri chunk possono essere o no presenti. L'ordine dei chunk nel
Form Chunk non è predefinito, ma è casuale.