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.