Informatica Musicale Dispensa

  • Uploaded by: Alessandro Monitillo
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Informatica Musicale Dispensa as PDF for free.

More details

  • Words: 11,485
  • Pages: 46
Loading documents preview...
Conservatorio di Musica di Reggio Calabria Diploma accademico in Discipline musicali

Informatica musicale I Moduli A e B1 Dispense del Corso

A.A. 2004-'05

Programma di studio A.A. 2004-'05 (moduli A e B1) 1) Introduzione all'informatica 1.Definizioni generali 2.Ambiti dell'informatica musicale 3.Cenni storici sui rapporti tra musica ed elettrotecnica-elettronica 4.Nozioni di calcolo binario 5.Operazioni logiche booleane 6.Teoria dell'informazione 7.Codifica digitale del testo, delle immagini, del suono 8.Origine e concetto di algoritmo 9.Caratteristiche del suono e sua discretizzazione 10.Analisi digitale dei segnali 11.Campionamento e quantizzazione 12.Frequenza di campionamento 13.Errore di aliasing 14.Filtri digitali 15.Convertitori digitali

2) Architettura dei sistemi informatici 1.Dispositivi di input e output 2.Macchina di Turing 3.Macchina di von Neumann 4.Processori RISC e CISC 5.Memorie di massa 6.Sistemi operativi 7.Memorie random access, read-only, flash, cache

Informatica musicale I – A.A. 2004-2005

Parte prima INTRODUZIONE ALL’INFORMATICA

Il termine informatica fu coniato dall'ingegnere francese Philippe Dreyfus nel 1962. Dal francese informatique, contrazione di informazione automatica, designa la disciplina che aiuta a risolvere problemi di una parte semplificata della realtà tramite tecniche e metodi per la rappresentazione, l'elaborazione, la conservazione e la trasmissione dell'informazione. Il computer, secondo l'architettura von Neumann, è il mezzo per realizzare questi 4 punti elencati.

L’informatica musicale è quella branca che si occupa dell’uso dei computer per finalità musicali (e non della musica “fatta” da un elaboratore: in questo caso si parla di musica informatica/elettronica o computer music). Comprende tutte le attività di •

ricerca



composizione



interpretazione



programmazione



edizione



istruzione



esecuzione,ecc.,

orientate all’analisi, alla trasformazione o alla sintesi di fenomeni musicali.

L’uso del computer per applicazioni musicali è stato preso in considerazione sin dagli albori dell’informatica. Le prime ricerche risalgono al 1957 e furono condotte negli U.S.A., presso l’Università dell’Illinois; ad esse si affiancarono presto le ricerche ai laboratori della Bell Telephone, nel 1959, e successivamente nell’Università di Princeton dal 1963. La musica si era però già “sposata” con queste tecnologie almeno 60 anni prima.

Nel 1876, infatti, Elisha Gray (U.S.A.) inventò il “Telegrafo musicale”, prima applicazione dell’elettrotecnica nella musica.

3

Informatica musicale I – A.A. 2004-2005

Al 1906 risale invece l’invenzione, da parte dello statunitense Thaddeus Cahill, del thelarmonium o dinamòfono, gigantesco strumento elettroacustico a tastiera del peso di 200 tonnellate il cui suono veniva trasmesso attraverso il telefono agli “utenti”.

Nel 1920 il russo Leon Theremin inventa l’eterofono o theremin, strumento atipico che suona secondo i movimenti delle mani fra due antenne.

Nel 1928 è la volta delle onde martenot. Lo strumento che le produce viene impiegato entusiasticamente dai compositori dell’epoca in contesti prevalentemente orchestrali (Messiaen, Honegger, Milhaud, ecc.)

Nel 1935 nasce il diretto discendente del thelarmonium: l’organo hammond, strumento di eccezionale successo impiegato fino agli anni ‘70. Ancora oggi il suo inconfondibile e seducente suono viene imitato dalla maggior parte dei più sofisticati sintetizzatori.

Nel 1964 nasce il primo vero e proprio sintetizzatore elettronico: il moog. Erede del Theremin, ebbe larghissimo impiego fino agli anni ‘80.

Negli anni ‘60, compositori di varie nazionalità cominciano ad usare il computer come ausilio nella composizione dei loro brani. In questa prima fase si possono già segnalare diverse composizioni realizzate con l’ausilio di mezzi informatici: la Iliac Suite per quartetto d’archi di Lejaren Hiller e Leonard Isaacson (1957), Atrees di Iannis Xenakis (1962), Übung für Klavier di Gottfried Michael Koenig (1969).

Il termine computer music è nato dalle prime esperienze statunitensi e descrive l’atteggiamento con cui prevalentemente si sono accostati i ricercatori-musicisti americani al computer, per fare musica con l’elaboratore (automazione dell’interpretazione), per produrre testi musicali e suoni.

Il computer è in grado di effettuare processi di analisi, elaborazione e sintesi ai due livelli fondamentali del fenomeno musicale: testo musicale (partitura) e suono (esecuzio-

4

Informatica musicale I – A.A. 2004-2005

ne, interpretazione) a condizione che il tutto sia codificato in informazioni da esso manipolabili.

Da Leibniz a Shannon, calcolo binario e teoria dell’informazione

Il calcolo binario, usato dal computer, fu studiato sistematicamente per la prima volta dal filosofo tedesco Gottfried Willhelm Leibniz (Lipsia 1646, Hannover 1716), che sostenne con forza l'estremo interesse matematico e filosofico dell'aritmetica binaria. Filosofo, matematico, studioso di fisica e di diritto, storico e linguista, ingegnere e diplomatico, Leibniz è forse uno degli ultimi esempi di ingegno 'universale'; sia la sua filosofia, sia il suo lavoro nei campi della fisica e della matematica sono del resto direttamente influenzati dalla molteplicità dei suoi interessi.

Probabilmente, Leibniz è stato portato a sviluppare il suo sistema di numerazione binaria riflettendo su quello a base 4 (nel quale vengono usate 4 'cifre' primitive attraverso la cui combinazione ottenere tutti i numeri) ideato da uno dei suoi maestri, il matematico Erhard Weigel (1625-1699). Leibniz criticava l'arbitrarietà della base 4 scelta da Weigel: se l'obiettivo che ci muove nell'allontanarci dalla familiare 'base 10' è quello di ridurre la lunghezza dei numeri, ragiona Leibniz, occorre scegliere semmai una base più alta del 10, ad esempio 12 o 16.

Se viceversa l'obiettivo è quello della maggiore semplicità teorica, occorre scegliere la base più 'semplice' possibile, quella che comprende il minor numero possibile di simboli primitivi: la base 2, propria del calcolo binario. Proprio per la sua caratteristica di semplicità teorica, argomentava Leibniz, il calcolo binario si presta particolarmente bene a permettere lo studio delle proprietà dei numeri e delle successioni di numeri, un campo di studio di particolare importanza per la matematica a cavallo fra XVII e XVIII secolo.

Claude Shannon, nato nel 1916 a Gaylord, nel Michigan, deve la sua fama soprattutto ai suoi fondamentali contributi teorici, fra i quali il più rilevante sul piano concettuale è probabilmente La teoria matematica della comunicazione. E' questo il titolo del saggio

5

Informatica musicale I – A.A. 2004-2005

che Shannon pubblicò nel 1949, assieme a Warren Weaver, sul Bell System Technical Journal. Questo testo, sorprendentemente leggibile pur essendo una relazione tecnica, è alla base di quella che ora si chiama teoria dell'informazione (information theory): un campo che ha reso possibili tutte le moderne comunicazioni elettroniche. Quando cominciò a lavorare in questo campo, l'obiettivo di Shannon era solo quello di eliminare i disturbi dai collegamenti telefonici; ma la teoria dell'informazione cui approdò rappresenta una delle più importanti conquiste teoriche del nostro secolo.

Per un lettore inesperto, la "teoria dell'informazione" potrebbe sembrare qualcosa che ha a che fare principalmente con la critica dei media. Ma la teoria dell'informazione delineata da Shannon in realtà non riguarda direttamente tale ambito. Piuttosto, Shannon si interroga su quali aspetti distinguere all'interno di un processo comunicativo, e osserva come una distinzione fra la sfera 'tecnica' della comunicazione e quella relativa ai suoi contenuti semantici possa portare a una migliore comprensione delle caratteristiche del processo. Per Shannon, pur avendo naturalmente una funzione essenziale nel processo comunicativo, "gli aspetti semantici della comunicazione sono irrilevanti sotto il profilo tecnico. Ciò che conta è che il messaggio effettivo è stato scelto fra un insieme dei messaggi possibili".

L’informazione in forma numerica

Per capire la rivoluzione in atto nel mondo dei media, e per rendersi conto delle ragioni che hanno reso il computer lo strumento per eccellenza nella gestione di informazione di ogni genere, occorre innanzitutto comprendere un concetto fondamentale: quello di informazione digitale.

Si tratta sicuramente di uno dei concetti-chiave del nostro tempo (non a caso si parla spesso di digital revolution e di digital culture). Eppure, molto spesso l'idea che se ne ha è estremamente vaga: "l'informazione in formato digitale è quella che può essere manipolata da un computer". Al più - magari ricordando che gli orologi digitali sono quelli nei quali l'ora viene direttamente indicata attraverso numeri anziché attraverso la

6

Informatica musicale I – A.A. 2004-2005

posizione delle lancette sul quadrante - ci si spinge a collegare il concetto di 'digitale' al termine inglese digit (cifra o numero), compiendo il passo ulteriore di identificare l'informazione in formato digitale con l'informazione in formato numerico.

I concetti di base del mondo del digitale sono assolutamente elementari, alla portata di tutti. Normalmente, tendiamo ad utilizzare il termine 'informazione' in un senso molto generale: facciamo così, ad esempio, quando parliamo di informazione giornalistica o radiotelevisiva, o quando chiediamo 'una informazione' a qualcuno. Sarebbe difficile definire in maniera rigorosa questo concetto generico di informazione. A ben guardare, vi si confondono diversi significati: l'azione di comunicare una notizia, il contenuto della comunicazione (che a sua volta potrebbe essere distinto nel suo aspetto materiale - ad esempio una successione di caratteri - e nel suo aspetto significativo), le caratteristiche del mezzo di comunicazione usato... E' possibile, tuttavia, provare a definire un concetto specifico di informazione, e vedere poi se, e in che misura, il concetto così definito può essere usato, almeno in alcuni casi, anche per capire l'nformazione in senso più generale.

Primo esempio: è estate, fa caldo, stiamo tornando a casa e non vediamo l'ora di fare una doccia. Nell'aprire la porta di casa, tuttavia, un dubbio ci assale: siamo sicuri di aver lasciato lo scaldabagno acceso?

Riflettiamo un secondo sulla situazione appena considerata. Nel momento di entrare in casa, ci manca una informazione: l'informazione relativa allo stato dello scaldabagno. Sappiamo che lo scaldabagno può trovarsi in uno fra due stati possibili: acceso, o spento. Ma non sappiamo (è questa l'informazione che ci manca) in quale stato esso si trovi effettivamente.

Una situazione di questo genere ci presenta una scelta fra due alternative (detta spesso scelta binaria). Per controllare lo stato dello scaldabagno, daremo probabilmente un'occhiata alla posizione del suo interruttore: acceso o spento.

7

Informatica musicale I – A.A. 2004-2005

Al posto dell'interruttore, potremmo in questo caso usare una lampadina accesa o spenta - potremmo in realtà usare qualunque tipo di rappresentazione che ci metta a disposizione due simboli: uno per lo stato 'acceso', e uno per lo stato 'spento' cioè ‘0’ e ‘1’.

Ebbene, quell''1' e quello '0' sono già una forma di codifica numerica (digitale) di una informazione.

Questa relativa allo scaldabagno era un'informazione semplicissima, c'erano solo due alternative a disposizione. Prima di prendere in considerazione situazioni più complicate, tuttavia, riflettiamo un momento su questo esempio. Proprio perché semplicissimo, potrà forse aiutarci a capire qualcosa di più sul concetto di informazione. Innanzitutto, nel caso che abbiamo descritto l'informazione che ci interessava era collegata a una scelta fra più alternative (nel caso specifico, fra due alternative). Non sarà forse possibile estendere questa idea anche ad informazioni di altro tipo?

Secondo esempio: ci serve il numero di telefono di un'amica. L'amica abita a Milano, quindi sappiamo che le prime cifre saranno 02. Ma ci mancano le altre. Probabilmente, basandoci sulla normale lunghezza dei numeri telefonici di Milano, ci mancano 7 o 8 cifre. Potremmo provare a comporre, una dopo l'altra, tutte le possibili combinazioni, fino ad arrivare a quella giusta? In teoria sì, in pratica però non lo faremo mai: le combinazioni possibili sono moltissime, provarle tutte sarebbe troppo lungo (e troppo costoso!). Anche in questo caso, l'informazione che ci serve corrisponde alla scelta fra diverse alternative: solo che le alternative possibili sono molte di più. E’ un problema di quantità, non di qualità.

Terzo esempio: supponiamo adesso di considerare un'informazione di tipo un po' diverso: stiamo risolvendo uno schema di parole crociate, e troviamo fra le definizioni "l'autore di Ossi di seppia". Questa volta, dunque, abbiamo a che fare con un nome. Guardando lo schema, vediamo che deve essere lungo sette lettere. C'entra ancora la nostra idea di scelta fra diverse possibili alternative? A ben guardare, sì: in ognuna delle sette caselline dello schema corrispondenti alla nostra definizione dovrà andare una lettera dell'alfabeto. Tutto sta nello scegliere le lettere giuste. Anche qui, dal punto di vista pu-

8

Informatica musicale I – A.A. 2004-2005

ramente combinatorio le alternative possibili sono numerosissime, da 'Aaaaaaa' a 'Zzzzzzz' (due nomi piuttosto improbabili). E anche qui l'informazione che ci interessa - il nome 'Montale' - corrisponde alla scelta di una fra tali alternative. Se nello schema di parole crociate alcune caselle della definizione che ci interessa (ad esempio la 'M' iniziale e la 'E' finale) sono già riempite, le alternative a nostra disposizione diminuiscono, e diventa più facile individuare la parola cercata.

Sulla base di questi esempi, possiamo dire che, almeno in alcuni casi, tipi diversi di informazione hanno a che fare con un meccanismo di base simile: una situazione di scelta fra più alternative. Più numerose sono le alternative a nostra disposizione, maggiore sarà il contenuto informativo della nostra scelta. Ma non sappiamo ancora se, e come, questo meccanismo possa operare nel caso di informazioni che non siano numeriche o testuali - ad esempio nel caso di informazioni visive o sonore. Inoltre, non sappiamo ancora se, e come, una informazione di tipo testuale (ad esempio il nome 'Montale') possa essere trasformata in informazione numerica.

L'informazione relativa allo stato dello scaldabagno, nel primo esempio, può essere immediatamente rappresentata in forma numerica: un '1' può indicare lo scaldabagno acceso, uno '0' lo scaldabagno spento. La rappresentazione attraverso '0' e '1' (attraverso cioè un sistema di codifica binaria, che utilizzi due sole cifre) ha un importante vantaggio: i dati binari sono facilmente rappresentabili (e manipolabili) all'interno di un computer. Possiamo così pensare a un computer che, ad esempio, controlli lo stato del nostro scaldabagno, rappresentandolo attraverso una celletta di memoria: la celletta conterrà un '1' se lo scaldabagno è acceso, e uno '0' se è spento. Questa celletta corrisponde a un bit di informazione. Il termine bit è uno dei terminichiave dell'universo digitale. Un bit, infatti, non è altro che la quantità di informazione fornita dalla scelta fra due alternative diverse, considerate come egualmente probabili.

In effetti, l'uso in campo informatico del termine 'digitale' non si riferisce di norma solo al fatto che l'informazione è rappresentata in forma numerica, ma al fatto che è rappre-

9

Informatica musicale I – A.A. 2004-2005

sentata in forma numerica sulla base di una codifica binaria, e dunque attraverso bit (il termine bit corrisponde alla contrazione dell'inglese binary digit, numero binario). Rappresentare in forma binaria una qualsiasi informazione numerica (come il numero di telefono del secondo esempio) è compito relativamente facile. È vero che in genere siamo abituati a utilizzare un sistema di numerazione decimale (i numeri sono costruiti utilizzando le dieci cifre 0,1,2,3,4,5,6,7,8,9).

Sappiamo però che ogni numero decimale può essere trasformato in un numero binario (costruito usando solo lo '0' e l''1'): lo '0' e l''1' resteranno uguali, ma il 2 sarà rappresentato dalla combinazione '10', il 3 da '11', il 4 da '100', il 5 da '101', il 6 da '110', il 7 da '111', l'8 da '1000' e così via.

La nostra rappresentazione dei numeri superiori a 1 sarà cioè ottenuta combinando fra loro (in maniera ordinata) un numero via via maggiore di '0' e di '1', proprio come nel nostro familiare sistema decimale i numeri superiori al 9 vengono costruiti combinando fra loro (in maniera ordinata) le dieci cifre che abbiamo a disposizione.

L’algebra che fornisce gli strumenti necessari per elaborare ed interpretare le informazioni in forma binaria è stata fondata dall'inglese George Boole (1815-1864). Si tratta di una struttura algebrica definita da:

1. L’insieme { 0 , 1} 2. a+b, somma logica (operatore binario logico OR, "disgiunzione") 3. a•b opp. ab, prodotto logico (operatore binario logico AND, "congiunzione") 4. _, negazione o inversione (operazione unaria NOT, "negazione") 5. La relazione di equivalenza con le proprietà: Riflessività a = a Simmetria a = b

b=a

Transitività a = b, b = c

a=c

6. Valgono le seguenti relazioni: a+0=a

a +1 = 1

a+a=a

a+_=1

10

a•0=0

a•1=a

a•a=a

a•_=0

Informatica musicale I – A.A. 2004-2005

Le principali operazioni logiche sono dunque:

AND (=”e”, prodotto logico) OR (=”o” non esclusivo, come il vel latino, somma logica) NOT (=”al contrario”, negazione o inversione)

In queste operazioni, i simboli '1' e '0' rappresentano:

1 = vero, “sì”, "presenza"

0 = falso, “no”, "assenza"

simboli dei circuiti logici

11

Informatica musicale I – A.A. 2004-2005

Altri operatori logici sono:

NOR (prima funzione di Sheffer) E' l'inversione dell'operatore somma (OR). L’operatore NOR coincide con un OR negato:

NAND (seconda funzione di Sheffer) E' l'inversione dell'operatore prodotto (AND). L’operatore NAND coincide con la negazione del risultato dell’operatore AND:

Con le sole funzioni NOR e NAND è possibile effettuare qualunque operazione logica usando esclusivamente l'una o l'altra di esse.

EXOR (a

b)

L’operatore di non equivalenza EXOR, detto anche OR esclusivo, assume valore 1 solo se le due variabili binarie hanno valore diverso tra loro:

12

Informatica musicale I – A.A. 2004-2005

EXNOR L’operatore EXNOR coincide con EXOR negato, cioè assume valore 1 solo se le due variabili binarie hanno lo stesso valore:

La teoria dell’informazione

Ogni messaggio utilizza un codice che deve essere comune a chi lo trasmette e a chi lo riceve, e sulla cui base il messaggio deve essere interpretato. I codici utilizzano di norma un certo numero di simboli di base, e costruiscono messaggi complessi combinando fra loro i simboli di base sulla base di apposite regole di combinazione.

Stabilire esattamente quali siano i simboli semplici e quali siano le combinazioni ammesse può essere assai difficile, soprattutto nel caso delle lingue storico-naturali (i simboli di base saranno le singole lettere, le parole che troviamo in un dizionario, o qualcos'altro ancora?), ma in generale sembra molto naturale pensare che - anche nel caso delle lingue storico-naturali - chi codifica un messaggio lo faccia attraverso una successione di scelte, scelte effettuate fra i simboli semplici e le combinazioni di simboli semplici messe a sua disposizione dal codice che sta utilizzando.

Il padre della moderna teoria dell'informazione, Claude Shannon, in un famoso articolo del 1948 ha proposto di utilizzare il concetto di scelta (o decisione) per misurare la quantità di informazione contenuta in un messaggio. Per semplificare questa misura, Shannon suggerisce di ridurre ogni scelta a una successione di scelte binarie:

UNA SCELTA FRA PIÙ ALTERNATIVE può sempre essere ridotta a PIÙ SCELTE FRA DUE ALTERNATIVE.

13

Informatica musicale I – A.A. 2004-2005

Prendiamo ad esempio un semaforo: ha tre lampadine, ciascuna delle quali può essere accesa o spenta (trascuriamo qui il caso un po' particolare della lampadina gialla lampeggiante). La nostra scelta è dunque fra otto alternative: 1. tutte e tre le lampadine spente; 2. verde acceso; 3. giallo acceso; 4. rosso acceso; 5. verde e giallo accesi; 6. giallo e rosso accesi; 7. verde e rosso accesi; 8. verde, giallo e rosso tutti accesi (le ultime due combinazioni sarebbero sicuramente un po' pericolose per il traffico).

Il semaforo, in un certo senso, rappresenta una scelta fra otto alternative in termini di tre scelte binarie, cioè di tre scelte (ognuna rappresentata da una lampadina) fra due sole alternative (acceso o spento). A questo punto dobbiamo ricorrere al concetto di logaritmo in base 2: il logaritmo in base 2 di un numero n è il numero x al quale bisogna elevare 2 per ottenere n: log2 n = x e, di conseguenza, n = 2x

La scelta fra n alternative diverse (nel nostro esempio, 8 alternative diverse; se vogliamo essere rigorosi, è necessario aggiungere che queste alternative devono essere anche egualmente probabili) corrisponde a log2 n scelte binarie (nel nostro esempio, log2 8 = 3). Sappiamo in effetti che 8 = 23, e che dunque il logaritmo in base 2 di 8 è proprio 3. Se il semaforo avesse 4 luci (per esempio, rosso, verde, giallo, blu), le scelte binarie diventerebbero 4, e le alternative 24 = 16 (1. tutte accese, 2. tutte spente, 3.rosso acceso, 4. giallo acceso, 5. verde acceso, 6. blu acceso, 7. rosso e giallo accesi, 8. rosso e verde accesi, 9. rosso e blu accesi, 10. giallo e verde accesi, 11. giallo e blu accesi, 12. verde e blu accesi, 13. rosso giallo verde accesi, 14. giallo verde blu accesi, 15. rosso giallo blu accesi, 16. rosso verde blu accesi).

Per capire meglio questo meccanismo pensate a un gioco: supponiamo che dobbiate indovinare il numero (intero) pensato da un amico, sapendo che questo numero è compreso fra 1 e 8 (8 alternative), e avendo a disposizione solo tre domande alle quali il vostro amico può rispondere solo 'sì' o 'no'. Potete innanzitutto chiedere se il numero pensato

14

Informatica musicale I – A.A. 2004-2005

dal vostro amico è compreso fra 1 e 4. Supponiamo che la risposta sia 'no': è allora chiaro che il numero è compreso fra 5 e 8. Vi sono rimaste 4 alternative. Dimezzatele di nuovo, chiedendo come seconda domanda se il numero è compreso fra 5 e 6. Supponiamo che la risposta sia nuovamente 'no'. Sono rimaste due sole alternative: il numero sarà 7, oppure 8. La terza domanda potrà essere "il numero che hai pensato è 7?" In caso di risposta affermativa, avrete individuato il numero che cercavate. Ma anche in caso di risposta negativa l'avrete individuato: poteva essere solo o 7 o 8, non è 7, dunque è 8.

Qualunque sia il numero pensato, se esso è compreso fra 1 e 8 il processo di progressivo 'dimezzamento' delle alternative porta sempre a individuarlo attraverso tre domande. In effetti, quella che abbiamo appena descritto è una ricerca binaria (o logaritmica) di un dato in un insieme: si tratta di uno degli algoritmi più importanti - e più usati - dell'informatica.

Ogni scelta binaria corrisponde a un bit di informazione: negli esempi visti sopra, dunque, la scelta fra 8 alternative diverse -che poteva essere quindi individuata o codificata attraverso tre scelte binarie- 'peserà' 3 bit; se le alternative diventano 16, corrispondenti a 4 scelte binarie, l'informazione 'peserà' 4 bit. In generale: se mi trovo davanti a una scelta fra n alternative egualmente probabili, la quantità di informazione (ovvero il numero di scelte binarie) corrispondente sarà uguale a log2 n.

Algoritmi e programmi

In ambito informatico, "programmare" significa risolvere classi di problemi in modo automatico tramite una procedura che possa poi essere tradotta in un linguaggio interpretabile dal computer.

Dato un problema (o una classe di problemi) si deve: 1. trovare un procedimento risolutivo, ossia un algoritmo; 2. tradurre l'algoritmo in un linguaggio comprensibile dal calcolatore, ossia trasformarlo in un programma scritto in un determinato linguaggio di programmazione;

15

Informatica musicale I – A.A. 2004-2005

3. fornire dei dati in ingresso (input) al programma; 4. verificare che i dati di uscita (output) siano quello attesi.

Quindi il computer esegue ordini dati sotto forma di istruzioni in un linguaggio di programmazione (ne esistono diversi). Le istruzioni sono sintetizzate in un programma. Il programma permette il processo (elaborazione) dei dati in ingresso per produrre dei dati in uscita. Definiamo ora meglio i concetti di algoritmo, linguaggio di programmazione e programma.

L'algoritmo è un procedimento risolutivo (insieme di passi risolutivi o istruzioni) che permette di trasformare un insieme di dati iniziali in un insieme di risultati finali; l'algoritmo è paragonabile a una ricetta di cucina: partendo da un insieme di singoli ingredienti di base (dati semplici) ed eseguendo una sequenza di passi (istruzioni), produce come risultato un piatto composto (risultato dell'elaborazione). Presuppone l'esistenza di un automa (nel nostro esempio, il cuoco) in grado di eseguire le istruzioni. L'origine dell'algoritmo risale al sec. IX ad opera del matematico arabo Muéammad ibn Mùsa che era nativo del Khwarizim, regione dell'Asia centrale (ecco spiegato il termine algoritmo, dall'arabo al-Khuwàrizmê).

Il linguaggio di programmazione è un linguaggio o strumento per rappresentare le istruzioni di un algoritmo e l'ordine in cui devono essere eseguite.

Il programma è un algoritmo scritto in un linguaggio di programmazione al fine di comunicare al calcolatore elettronico le azioni da intraprendere, quindi è la descrizione dell'algoritmo nel linguaggio di programmazione scelto.

Il processo è l'esecuzione dell’algoritmo descritto da un programma

Dato un problema, l'operatore scriverà un algoritmo risolutivo: l'algoritmo esprime i passi elementari che devono essere compiuti per arrivare alla soluzione. Ogni passo elementare dell'algoritmo deve rappresentare operazioni che il computer è in grado di compiere. L'algoritmo sarà poi tradotto in un corrispondente programma scritto in un

16

Informatica musicale I – A.A. 2004-2005

qualsiasi linguaggio di programmazione. Il programma sarà composto da una sequenza di istruzioni, traduzione dei passi dell'algoritmo, che rispettano un ordine di esecuzione. Alla fine il programma sarà sottoposto ad una serie di trasformazioni che lo renderanno eseguibile dal computer.

Un algoritmo deve necessariamente soddisfare tre condizioni per essere definito tale, ossia deve essere: •

non ambiguo



eseguibile



finito.

Non ambiguo significa che le istruzioni devono essere interpretabili in modo univoco dall'esecutore. Eseguibile significa che il computer deve essere in grado, con le risorse a sua disposizione, di eseguire le singole istruzioni. Finito significa che l'esecuzione dell'algoritmo deve terminare in tempo finito per ogni insieme dei valori d'ingresso. Quando si progetta un algoritmo, si devono rispettare alcuni prerequisiti necessari per ottenere poi un buon programma: 1. L'algoritmo deve essere indipendente dal linguaggio di programmazione scelto; esistono linguaggi appositi per rappresentare algoritmi. 2. Il procedimento risolutivo deve essere riusabile, ossia non deve essere scritto per risolvere una sola istanza di un dato problema. 3. L'algoritmo è la soluzione al problema. 4. L'algoritmo deve essere traducibile in un linguaggio di programmazione.

La progettazione di un algoritmo può essere divisa in due fasi: 1. Analisi e definizione dei dati: si analizza il problema e si sceglie come rappresentare i dati che si hanno a disposizione e quelli che si vogliono ottenere. 2. Specifica della soluzione: corrisponde alla scelta dei passi che portano alla soluzione, quindi alla scrittura dell'algoritmo.

17

Informatica musicale I – A.A. 2004-2005

Le due fasi sono strettamente legate: la fase di analisi dei dati è importante quanto la seconda fase. Una cattiva analisi può pregiudicare la costruzione dell'algoritmo. Inoltre la soluzione può essere condizionata dal tipo di rappresentazione dei dati scelta.

Ad esempio, supponiamo che il problema sia cercare un numero di telefono. Il procedimento che adotteremo sarà diverso se partiamo da un elenco telefonico oppure da una rubrica. L'elenco telefonico e la rubrica sono le rappresentazioni che scegliamo per i nostri dati. Nel caso dell'elenco telefonico, dovremo effettuare una ricerca per trovare la lettera muovendoci avanti e indietro a seconda che siamo posizionati prima o dopo quella cercata. Nell'agenda potremo invece posizionarci direttamente sulla pagina relativa alle lettera. In entrambi i casi, una volta arrivati alla lettera giusta, effettueremo la ricerca per individuare il nome cercato.

Il testo digitale - Come fare per codificare in formato binario una informazione di tipo testuale? Basterà pensare al fatto che un testo non è altro che una successione di caratteri, e che i caratteri di base – quelli compresi nell'alfabeto della lingua usata - sono in un numero che varia col variare delle lingue, ma che è comunque - almeno per le lingue basate sull'alfabeto latino - finito e piuttosto ristretto. Il nostro compito consisterà allora nello stabilire una tabella di corrispondenza fra caratteri da un lato (simboli) e numeri binari dall'altro.

Una tabella di questo tipo si chiama tabella di codifica dei caratteri. Per molto tempo, la codifica di riferimento è stata la cosiddetta codifica ASCII (American Standard Code for Information Interchange). La codifica ASCII originaria (ASCII stretto) permetteva di distinguere 128 caratteri diversi; la tabella di caratteri attualmente più usata, denominata ISO Latin 1, distingue 256 caratteri, i primi 128 dei quali sono 'ereditati' dall'ASCII stretto. L'indicazione ISO indica l'approvazione da parte dell'International Standardization Organization e 'Latin 1' indica che si tratta della tabella di riferimento per gli alfabeti di tipo latino. È questa la codifica di caratteri più utilizzata.

Come ogni tabella di codifica dei caratteri, anche la tabella ISO Latin 1 codifica i caratteri da essa previsti (che come si è accennato sono 256) facendo corrispondere a cia-

18

Informatica musicale I – A.A. 2004-2005

scuno un numero binario. Il primo di questi caratteri corrisponderà al numero binario '00000000', il secondo al numero binario '00000001', il terzo al numero binario '00000010', e così via, fino al 256°, che corrisponderà al numero binario '11111111'. Se contate, vi accorgerete che questi numeri sono tutti espressi attraverso una notazione 'lunga' esattamente otto cifre binarie, ovvero 8 bit. In sostanza, possiamo 'scriverlo' utilizzando otto cellette affiancate, in ciascuna delle quali può esserci uno '0' o un '1' (nel caso considerato, le cellette conterranno tutte degli '1').

Le otto cellette potranno essere usate come 'contenitore' per rappresentare - in formato binario - un qualunque carattere della nostra tavola di codifica: dovremo solo ricordarci, se il numero binario che codifica un determinato carattere è più 'corto' di otto cifre, di farlo precedere da tanti '0' quante sono le cellette rimaste vuote. Così, ad esempio, per rappresentare il carattere che abbiamo fatto corrispondere al numero binario '10' riempiremo le nostre cellette in questo modo: '00000010'.

Otto bit possono differenziare fra 256 combinazioni diverse, e dunque una 'parola' lunga 8 bit (otto cellette) può rappresentare, attraverso la sua particolare combinazione di '0' e '1', uno qualunque dei 256 caratteri della nostra tavola di codifica.

Per convenzione, una 'parola' lunga 8 bit è chiamata byte.

Il byte è dunque una unità di misura dell'informazione, e indica la quantità di informazione corrispondente alla scelta fra 256 alternative diverse. Se adottiamo come base per la nostra codifica dei testi una tavola comprendente 256 caratteri, ogni carattere del nostro testo richiederà un byte per essere codificato: in altri termini, 'costerà' un byte.

La codifica binaria di un testo avviene dunque seguendo lo schema seguente:

19

Informatica musicale I – A.A. 2004-2005

Sullo schermo, ad esempio utilizzando un programma di videoscrittura, l'utente scriverà (e leggerà) la stringa di testo 'oggi piove'; il computer, dal canto suo, lavorerà invece con la rappresentazione binaria di quella stringa. In generale, tutte le volte che utilizzate un computer per visualizzare un testo scritto o per lavorarvi sopra, lo schermo vi presenterà il testo nella familiare forma alfabetica, ma il computer lavorerà in effetti su quel testo in forma binaria: la tavola di conversione lo aiuterà a 'tradurre' i caratteri alfabetici nella relativa codifica binaria, e viceversa.

L’immagine digitale - Il testo scritto è già costruito combinando fra loro unità discrete (i singoli caratteri) scelte all'interno di un alfabeto abbastanza limitato. Ma immagini e suoni sono fenomeni che sembrano intrinsecamente analogici, nei quali cioè abbiamo a che fare con sfumature continue (di colori, di tonalità, di frequenza, ecc.). Se si ha a che fare con un numero finito, prefissato e non troppo grande di entità discrete, la codifica numerica è in fondo facile: basta contare le diverse entità discrete che possono presentarsi, e attribuire a ciascuna un numero che la rappresenti nella codifica. Il problema è costituito dalle “infinite” differenze e sfumature di un'immagine o di un suono.

Per capire in che modo il problema sia stato risolto, partiamo da un'osservazione pratica. Quando guardiamo il monitor del nostro computer, le immagini che vediamo ci appaiono di norma abbastanza facili da interpretare: possiamo identificare forme e strutture anche complesse come nel caso dei videogiochi. Se ci avviciniamo molto allo schermo, tuttavia, noteremo che quella che a una certa distanza ci era apparsa come un'immagine ben definita e continua si 'sgrana' in piccoli puntini luminosi e colorati (i cosiddetti pixel - termine inglese corrispondente alla contrazione di picture elements). L'immagine che vediamo è in realtà il risultato dell'integrazione dei tanti singoli 'segnali' luminosi emessi da ciascuno dei singoli pixel. La griglia di pixel è talmente fitta da darci un'impressione di continuità.

Per discretizzare un'immagine, cioè renderla in forma numerica, il primo passo è proprio quello di 'sovrapporre' all'immagine analogica (ad esempio una fotografia) una griglia fittissima di minuscole cellette. Ogni celletta sarà considerata come un punto del-

20

Informatica musicale I – A.A. 2004-2005

l'immagine, come un pixel. Naturalmente, a parità di immagine, più fitta è la griglia, più piccole saranno le cellette, e migliore sarà l'illusione di un'immagine continua.

In questo modo, abbiamo sostanzialmente 'scomposto' l'immagine in tanti puntini. Ora occorre un passo ulteriore: rappresentare i puntini attraverso numeri. L'idea di base è semplice: utilizzare anche qui una tavola di corrispondenza, che però questa volta, anziché far corrispondere numeri a caratteri, faccia corrispondere numeri a colori diversi, o a sfumature diverse di colore.

I primi personal computer con capacità grafiche, all'inizio degli anni '80, utilizzavano griglie molto larghe (i pixel sullo schermo del computer più che a minuscoli puntini corrispondevano a grossi quadrati) e i colori codificati erano molto pochi (solo il bianco e nero, o al più 8 o 16 colori diversi). L'effetto non era un granché, ma i bit utilizzati per rappresentare l'immagine non erano troppo numerosi. Ad esempio, una griglia di 80 colonne per 60 righe (utilizzata in alcuni piccoli videogiochi portatili con schermo a cristalli liquidi e telefonini) comprende 80x60=4800 pixel, e se ci limitiamo a due colori (bianco e nero) possiamo rappresentare ogni pixel attraverso un solo bit: l''1' potrà rappresentare il nero e lo '0' il bianco. Con 4800 bit avremo dunque codificato un'immagine, anche se solo in bianco e nero, e ben poco definita.

Se abbiamo a disposizione un numero maggiore di bit, potremo rendere più fine la griglia, oppure aumentare il numero dei colori, o magari (se possiamo permettercelo) fare tutte e due le cose insieme. Così, se ad esempio per ogni celletta decidiamo di 'spendere' 8 bit (e dunque 1 byte) anziché 1 bit soltanto, anziché usare solo il bianco e nero potremo codificare 256 colori diversi (giacché, come abbiamo visto, le possibili combinazioni di '0' e '1' nelle nostre 8 cellette sono proprio 256; quando si parla di immagini 'a 256 colori' o 'a 8 bit' ci si riferisce proprio a un'immagine la cui palette [tavolozza] di colori è codificata in questo modo); se di bit ne possiamo spendere 16, avremo a disposizione 65.536 colori diversi, e così via. Certo, con l'aumento della risoluzione e la crescita del numero dei colori codificati, il numero di bit necessario a rappresentare la nostra immagine sale molto: supponiamo di voler utilizzare una griglia di 800 colonne per 600 righe (è una risoluzione assai diffusa per i personal computer), e di destinare a ogni celletta, a

21

Informatica musicale I – A.A. 2004-2005

ogni pixel, 24 bit (il che ci consentirà di distinguere oltre 16 milioni di sfumature di colore). I bit necessari per rappresentare una singola immagine diventano 800x600x24 = 11.520.000.

Tuttavia, il progresso tecnologico (che - ricordiamolo - dipende non solo dall'ingegno umano, ma anche dalle altissime risorse economiche investite in un settore evidentemente considerato strategico) ci ha portato da una situazione in cui il risparmio di ogni singolo bit costituiva una priorità essenziale a una situazione in cui i bit sono sempre più 'economici'. I computer delle nuove generazioni dispongono così di veri e propri 'sottosistemi' interamente dedicati alla gestione della grafica, dotati di una memoria indipendente (in modo che la rappresentazione delle immagini non sottragga troppe risorse agli altri compiti nei quali il computer può essere impegnato) e man mano sempre più larga.

Inoltre, sono stati fatti molti progressi nelle tecnologie per il 'risparmio' dei bit: si tratta delle cosiddette tecniche di compressione (anche per l'audio e il video), quello di ridurre il numero dei bit necessari alla rappresentazione dell'immagine considerando la diversa frequenza dei suoi colori (in campo audio, la riduzione dei bit si ottiene analizzando il segnale per poi sottrarre gli elementi non indispensabili per una veritiera ricostruzione del suono; ovviamente, maggiore è il livello di compressione, minore sarà la fedeltà del suono all'originale). Tali processi si effettuano sulla base di ingegnosi e complessi algoritmi. Nella rappresentazione di immagini fisse è ormai possibile arrivare al livello del fotorealismo: griglie talmente fitte, e codifica di una 'palette' talmente ampia di colori, da rendere sostanzialmente indistinguibile all'occhio umano l'immagine (digitale) visualizzata attraverso il computer da quella (analogica) risultato di una fotografia tradizionale.

Il video digitale - Se pensiamo a come è fatta una vecchia pellicola cinematografica, ci risulterà chiaro che un filmato altro non è se non una successione di fotogrammi (ciascuno dei quali corrisponde a un'immagine statica), accompagnata da una banda sonora. Il numero di bit impiegati nell'operazione aumenta vorticosamente.

22

Informatica musicale I – A.A. 2004-2005

Per essere esatti, aumenta in funzione di almeno cinque fattori: il numero di bit necessari alla codifica sarà infatti tanto maggiore quanto più lungo è il filmato, quanto maggiore è la sua risoluzione grafica (e cioè quanto più fitta è la griglia che usiamo per digitalizzare i singoli fotogrammi), quanto più ampia è la 'palette' di colori utilizzata, quanto maggiore è il numero di fotogrammi (o frame) per secondo, e quanto migliore è la qualità del sonoro (ovvero la frequenza di campionamento, di cui parleremo nel prossimo paragrafo). Una bassa risoluzione grafica rende il filmato quadrettato e indistinto, una 'palette' troppo ristretta rende poco realistici i colori visualizzati, un numero troppo basso di frame per secondo produce un filmato 'a scatti' e poco fluido, e una frequenza di campionamento audio troppo bassa pregiudica la qualità del sonoro.

Come si vede, i fattori da considerare sono davvero tanti: per quanto la nostra 'disponibilità di bit' sia notevolmente aumentata col tempo, e nonostante il fatto che proprio nel campo delle immagini in movimento le tecniche di compressione abbiano fatto passi da gigante, il cosiddetto 'full motion video' digitale (la capacità cioè di rappresentare a pieno schermo immagini in movimento, con una risoluzione e con una fluidità simile o migliore rispetto a quelle televisive) è un traguardo raggiunto solo di recente.

Il suono digitale - In questo caso, la trasformazione del dato analogico in dato digitale si basa su un processo di 'segmentazione' ('campionamento') - il più raffinata possibile dell'onda sonora di partenza. E' possibile rappresentare in molti modi un'onda sonora. Con un procedimento non troppo dissimile da quello già considerato a proposito della grigliatura in pixel di una immagine, questa funzione può essere 'segmentata' in regioni abbastanza piccole da poter essere considerate come se si trattasse di singoli punti.

Ognuno di questi punti sarà identificato dai suoi valori sugli assi del piano cartesiano, e questi valori, naturalmente, sono dei numeri: sappiamo dunque bene come rappresentarli attraverso una codifica binaria.

Ecco allora che la successione di questi valori (assieme alle necessarie informazioni sullo spettro delle frequenze considerate e sulla 'frequenza di campionamento', che ci dicono in sostanza quanto è esteso lo spettro sonoro considerato e quanto è accurata la

23

Informatica musicale I – A.A. 2004-2005

nostra segmentazione della funzione d'onda, ovvero quanto 'fitta' è la nostra griglia) ci fornisce quella rappresentazione numerica, e dunque quella digitalizzazione dell'onda sonora, che stavamo cercando.

Naturalmente, un sonoro stereofonico ci imporrà di considerare separatamente le onde sonore dei due canali corrispondenti agli altoparlanti di destra e di sinistra.

Nel campo dei suoni, la qualità ottenibile attraverso la digitalizzazione è già molto alta, tanto che ormai la resa audio dei compact disc musicali (che contengono informazione in formato digitale) ha superato quella dei vecchi dischi di vinile (nei quali l'informazione sonora era registrata in formato analogico).

Inoltre, la produzione di nuove copie di un brano in formato digitale non implica una perdita di qualità (la copia è perfettamente uguale all'originale, dato che i dati numerici che vi sono codificati sono esattamente gli stessi), mentre sappiamo che nel campo dell'analogico ogni 'passaggio' di copiatura introduce disturbi e distorsioni che comportano un peggioramento della qualità sonora. Approfondiamo ora il fenomeno oscillatorio sonoro in funzione della sua rappresentazione in termini matematici e della sua elaborazione da parte del computer.

Le caratteristiche del suono e la sua discretizzazione

Non solo i corpi dotati di massa ma anche la luce, le onde radio e in generale le onde elettromagnetiche sono esempi di moti oscillatori. In genere, lo studio dei fenomeni oscillatori interessano l'acustica, l'elettrotecnica, la meccanica delle vibrazioni, l'astronomia e molte altre scienze.

Un segnale sonoro solitamente viene rappresentato con un grafico cartesiano avente in ascissa il tempo e in ordinata i valori istantanei dell'ampiezza che indica un aumento dalla pressione (in atm.) o un abbassamento della stessa, in quest'ultimo caso si osserva

24

Informatica musicale I – A.A. 2004-2005

il fenomeno di rarefazione dell'aria (si ricordi che il suono si propaga anche in mezzi più densi come l'acqua, i metalli ecc.).

In acustica si distingue il suono dal rumore per la perturbazione prodotta giacché un suono è prodotto da una vibrazione periodica mentre il rumore no. Questo fenomeno periodico, come quello delle onde elettromagnetiche, verrà associato ad una funzione periodica.

Iniziamo col riportare i diagrammi delle note musicali prodotte da un flauto, strumento musicale considerato fra i più "puri" poiché la sua rappresentazione grafica mostra la sinuosità regolare (più evidente nel La), al contrario di altri strumenti le cui onde periodiche hanno un andamento molto più complesso (timbro diverso) ma pur sempre periodico.

a) La frequenza è il numero che indica la quantità di oscillazioni complete al secondo compiute, si misura in Hertz (Sistema Internazionale - Hz). All'aumentare del periodo diminuisce la frequenza.

25

Informatica musicale I – A.A. 2004-2005

Analizzando i 7 Do presenti nella tastiera di un pianoforte notiamo che il primo Do (Do0 ) ha una frequenza di 32 Hz (la corda del pianoforte oscilla 32 volte al sec.) che è proprio la metà del Do successivo, e questo è metà del terzo e cosi via...

Do0

32 Hz

Do1

64 Hz

Do2

128 Hz

Do3

256 Hz

Do4

512 Hz

Do5

1024 Hz

Do6

2048 Hz

Do7

4096 Hz

prima ottava

seconda ottava

b) L'ampiezza è il carattere che distingue i suoni forti da quelli deboli. Se riportassimo nel nostro diagramma la stessa nota (La) ma con le 2 intensità sovrapposte otterremmo:

c) Timbro o colore del suono - Ciò che distingue fondamentalmente un suono da un altro è la diversa forma d'onda, la diversa variazione di pressione nel mezzo in cui si propaga; in altri termini, in un diagramma pressione-tempo tali variazioni (in sec.), prodotte per esempio da un’armonica a bocca, possono essere schematizzate così:

Quel che vediamo è un oscillazione periodica non sinusoidale.

26

Informatica musicale I – A.A. 2004-2005

“Qualunque segnale periodico può essere scomposto in una serie di segnali sinusoidali il primo dei quali, avente lo stesso periodo e quindi la stessa frequenza del segnale considerato, si chiama prima armonica o fondamentale, e gli altri, aventi periodi sottomultipli e quindi frequenze multiple, si chiamano armoniche superiori" (teorema di Fourier).

In questo modo è possibile scomporre praticamente ogni moto o vibrazione periodica anche complessa in moti o vibrazioni più semplici. Il procedimento si chiama analisi armonica del suono complesso ed è visualizzabile in tempo reale grazie al computer (spettrogramma).

La somma di queste onde è un semplice esempio di quello che puo' accadere con le onde elettromagnetiche quando si verifica il fenomeno di interferenza: l'interferenza è quel che accade a due o più onde quando il risultato della loro sovrapposizione crea una nuova perturbazione periodica. Nel grafico seguente abbiamo fatto interferire tra loro due funzioni sinusoidali in modo costruttivo ossia abbiamo sovrapposto, in termini adottati in fisica, due treni d'onda con l'effetto di amplificare il segnale, seppure leggermente (traccia rossa).

La nuova onda prodotta rimarrà sinusoidale se la sovrapposizione delle due onde generatrici manterrà la stessa pulsazione, anche se avranno fasi e ampiezze diverse. Nel caso però in cui due onde siano di medesima ampiezza ma sfasate l'una rispetto all'altra e-

27

Informatica musicale I – A.A. 2004-2005

sattamente di 180°, ovvero quando il massimo di un onda coincide esattamente con il minimo dell'altra, allora l'effetto della sovrapposizione delle onde è quello di annullarsi.

In questo caso diremo che le onde interferiscono in modo distruttivo.

Possiamo riportare un esempio pratico dell'effetto dell'interferenza con un esperimento condotto nel 1801 dal fisico inglese Thomas Young. Dimostrò che in certe circostanze la luce non si comporta, come aveva dedotto Newton nel Seicento, come un flusso di particelle (concezione corpuscolare) bensì come un qualsiasi fenomeno ondulatorio.

Infatti Young, facendo passare un fascio di luce bianca attraverso due fenditure molto strette su un diaframma in modo da creare l'effetto di diffrazione, osservò il fenomeno riportato in questa figura:

Le onde di luce emesse dai due fori si sovrappongono e dove le linee rosse evidenziano le zone costruttive l'effetto di questa interferenza si risolve proiettandosi in strisce sfumate di luce bianca, laddove le strisce rosse evidenziano zone di interferenza distruttiva le onde si annullano e si ha un effetto di oscurità (strisce nere).

28

Informatica musicale I – A.A. 2004-2005

Nel caso in cui vari la pulsazione come vedremo ora, la sovrapposizione produrrà un'onda non più sinusoidale periodica ma semplicemente un'onda periodica;

L'analisi digitale dei segnali (digital signal processing, DSP) comprende una serie di processi atti a:

1-trasformare il segnale analogico in forma numerica; 2-analizzare il segnale per mezzo di filtri atti ad evidenziarne o modificarne le caratteristiche.

In alcune applicazioni è anche possibile ottenere il processo inverso, ossia riottenere un segnale analogico a partire da una sua rappresentazione numerica. L'unione dei due processi consente di realizzare filtri, ad esempio “passa-banda” o “elimina-banda”, che consentono il riascolto del segnale in tempo reale, a valle del filtro selezionato.

Le applicazioni della analisi digitale dei segnali sono le più svariate e spaziano dalla semplice realizzazione di un analizzatore di spettro per gli studi classici sui segnali, fino alla più evoluta realizzazione di filtri che consentono di ascoltare in cuffia il risultato sintetizzato dal calcolatore relativo ad un determinato evento sonoro a cui viene applicato un filtro che ne modifica le caratteristiche

E', per esempio, possibile ascoltare un concerto di musica classica, preventivamente registrato in un determinato ambiente, così come si presenterebbe se suonato in un am-

29

Informatica musicale I – A.A. 2004-2005

biente diverso di cui si sono misurate le caratteristiche acustiche (questa particolare tecnica prende il nome di auralizzazione).

Le tecniche digitali permettono di realizzare filtri in grado di 'estrarre' un segnale acustico da una emissione complessa o di “purificarlo” dal rumore.

Discretizzazione: campionamento e quantizzazione del suono

L’operazione da eseguire prima di potere trattare il segnale numerico è la discretizzazione del segnale, ossia l'operazione che consente l'ottenimento del segnale numerico a partire dal segnale analogico originale.

Il processo di discretizzazione del segnale si compone di campionamento e quantizzazione.

Si parla di campionamento quando ci si riferisce agli intervalli temporali in cui il segnale analogico viene 'fotografato' (vengono quindi presi dei campioni del segnale distanziati nel tempo).

Si parla di quantizzazione in riferimento al valore numerico che viene assegnato ad un determinato campione. La figura che segue mostra la relazione che c'è tra segnale analogico, campione e quantizzazione.

30

Informatica musicale I – A.A. 2004-2005

L'intervallo temporale che trascorre tra due campioni prende il nome di intervallo di campionamento mentre la frequenza con cui i campioni vengono acquisiti prende il nome di frequenza di campionamento (o, in inglese, sampling rate). Il valore della frequenza di campionamento (SR) è legato al tempo di campionamento t secondo la formula: SR= 1 t

I campioni sono relativi ai valori istantanei che il segnale analogico ha negli istanti di campionamento. La quantizzazione è il processo che assegna un determinato valore numerico ai diversi campioni.

A valle della discretizzazione del segnale abbiamo quindi una serie di valori numerici riferiti ai diversi istanti campionati; la successione di questi valori rappresenta proprio il segnale digitale.

Affinché non vada persa l'informazione dei dati del segnale, nel passaggio dalla sua forma analogica alla sua espressione numerica, è necessario che vi sia un numero di campioni sufficienti tale per cui, unendo i campioni tra loro, venga mantenuta la fisionomia del segnale originale.

Nell'esempio precedente infatti si potrebbero unire con una spezzata i vari campioni e la fisionomia del segnale verrebbe mantenuta (anche se avremo una linea spezzata in luogo di una sinusoide).

31

Informatica musicale I – A.A. 2004-2005

Dal teorema del campionamento deriva che: la SR minima per ricostruire un segnale di frequenza f deve essere almeno 2f o, più in generale, la SR necessaria per campionare un segnale deve essere almeno doppia della frequenza massima contenuta nel segnale.

L'enunciato del teorema del campionamento è illustrato nelle figure successive dove, a causa di un numero di campioni troppo basso, l'onda viene completamente alterata rispetto al segnale originale.

Risulta evidente che il segnale originale non è più riconoscibile dopo il campionamento a causa dello scarso numero di campioni acquisiti.

32

Informatica musicale I – A.A. 2004-2005

Una situazione da evitare è quella in cui un segnale contenga "picchi" di frequenza (armoniche superiori) fuori dalla portata della SR.

Ciò produrrebbe il cosiddetto errore di aliasing ed impone che, per una corretta discretizzazione di un segnale analogico, sia interposto tra l'ingresso del segnale ed il convertitore analogico-digitale (ADC) un filtro passa-basso (LPF, low-pass filter) atto a bloccare componenti in frequenza troppo elevate per la frequenza di campionamento prescelta. Tale filtro prende il nome di filtro anti-aliasing.

L'ingresso del sistema di elaborazione numerica del segnale sarà quindi del tipo:

In linea generale, poiché non è possibile creare dei filtri passa-basso perfetti, la frequenza di campionamento viene scelta ad un valore più alto del doppio della massima frequenza del segnale analogico.

Filtri digitali e conversioni

Per sintetizzare al massimo il concetto di filtro digitale, possiamo immaginare quest'ultimo come un algoritmo che trasforma la sequenza di numeri in ingresso (i valori dei campioni quantizzati) in una sequenza di valori in uscita secondo un processo che modifica in termini di ampiezza alcune frequenze o bande di frequenze.

In funzione del tipo di filtro realizzato si può parlare di filtri passa-basso, passa-alto, passa-banda, elimina-banda.

33

Informatica musicale I – A.A. 2004-2005

Negli ultimi anni sono stati realizzati diversi dispositivi capaci di eseguire espressamente i compiti sopra esposti. Un grande vantaggio dei filtri digitali rispetto a quelli analogici (come i controlli "bass", "treble", "loudness", "high cut" ecc. nei comuni impianti hi-fi) risiede nella possibilità di variare rapidamente le caratteristiche del filtro (tipo di filtro, caratteristiche in frequenza, posizione in frequenza) semplicemente variando alcuni parametri numerici nel processore (di fatto, cambiando dei numeri).

Un elemento importante nella analisi digitale dei segnali è relativo al numero di bit del convertitore analogico/digitale, in quanto da questo numero dipende la dinamica (ampiezza dell'escursione dal piano al forte) del sistema. La qualità di un convertitore analogico-digitale (ADC) aumenta in funzione del numero di bit a disposizione. Un convertitore a 8 bit (che consente 28= 256 valori diversi di quantizzazione) permette una dinamica di circa 48 dB mentre un convertitore a 16 bit (216= 65536) permette una dinamica di circa 96 dB.

Una volta ottenuta la sequenza di numeri che rappresenta il segnale opportunamente filtrato, è possibile eseguire il processo inverso per ottenere un nuovo segnale analogico. I blocchi funzionali che eseguono la conversione sono un convertitore digitaleanalogico (DAC) ed un filtro passa-basso che 'raccorda' i vari campioni digitali. Anche in questo caso, la dinamica del sistema è legata al numero di bit del convertitore. Un convertitore digitale-analogico è presente, ad esempio, in ogni lettore di compactdisc per trasformare l'informazione numerica contenuta nel disco in segnale analogico che verrà poi inviato all'amplificatore. Lo schema a blocchi completo di un filtro digitale prende quindi la forma indicata in figura.

34

Informatica musicale I – A.A. 2004-2005

Parte seconda ARCHITETTURA DEI SISTEMI INFORMATICI

L'elaboratore elettronico o calcolatore (computer) lavora partendo da informazioni (input) in ingresso, le manipola in base a un programma (software), e restituisce informazioni in uscita (output).

Un tipico dispositivo di input è la tastiera: alla pressione dei tasti corrisponde l'invio di impulsi corrispondenti ai caratteri verso l'unità di elaborazione.

Anche il mouse è un dispositivo di input: attraverso appositi sensori, il computer riceve informazioni sullo spostamento del mouse stesso, e le interpreta come movimenti da far eseguire al puntatore sullo schermo; i 'click' del mouse vengono ricevuti e interpretati in accordo con le istruzioni fornite dal programma che si sta utilizzando.

Altri dispositivi di input sono ad esempio lo scanner, la scheda di acquisizione sonora e video, il microfono. Quanto ai dispositivi di output, vengono subito in mente la stampante e il monitor. Uno schermo sensibile al tatto, o touch screen, come quelli disponibili nelle biglietterie ferroviarie, è un dispositivo sia di input che di output.

Una classe di dispositivi un po' particolare è costituita dagli strumenti che permettono al computer di leggere (e dunque ricevere) e di scrivere (e dunque inviare) dati – le lunghe catene di dati binari ('0' e '1') - da e verso un supporto in grado di conservarli anche quando il computer è spento. Sono dispositivi di input/output che non interagiscono direttamente con l’operatore: •

floppy disk (dischetti)



hard disk (dischi rigidi o “winchester”)



cd-rom e DVD (dischi ottici)



rimovibili (dischi portatili come “jaz”, “zip”, ecc. o “penne” di memoria flash)

35

Informatica musicale I – A.A. 2004-2005

La computazione

Alan Turing (1912-1954) concepì una macchina molto simile al funzionamento del computer: immaginiamo di avere a disposizione un nastro di lunghezza potenzialmente infinita diviso in singole celle in ciascuna delle quali può essere scritto il simbolo '0' oppure '1'. Il nastro dovrà essere in grado di scorrere in entrambe le direzioni sotto la testina.

Potremmo stabilire che: • se la macchina si trova nello stato “a” e legge un “1” nella casella su cui è posizionata la testina, il nastro si dovrà spostare a destra di una casella e la macchina dovrà passare nello stato “b”; • a questo punto, dovremo ulteriormente specificare le istruzioni che la macchina deve eseguire quando si trova nello stato “b”, in dipendenza da quello che la testina legge sul nastro, e così via.

La macchina disporrà di istruzioni (programma) in grado di fare spostare il nastro e di far cambiare stato alla macchina stessa secondo: •

lo stato in cui la macchina si trovava in precedenza;



il simbolo sul quale la testina si trova ora posizionata.

La particolare successione di '0' e di '1' presente sul nastro prima dell'avvio rappresenta l'input della macchina (i dati sui quali vogliamo farla lavorare). La particolare successione di '0' e di '1' scritta sul nastro nel momento in cui essa si ferma rappresenta invece l'output della macchina, il risultato del suo processo di elaborazione (il nastro può infatti essere anche scritto oltre che letto, cioè modificato).

Una macchina di Turing è in grado di effettuare tutte le operazioni che può compiere il più potente dei computer. Essa, infatti, è un modello. Quello che conta è il modo in cui opera, non la velocità. L’operazione che la macchina compie è una computazione, cioè un processo di manipolazione di simboli governato da regole.

36

Informatica musicale I – A.A. 2004-2005

La macchina di von Neumann

Il modello teorico costituito dalla macchina di Turing è simile all'idea di computer sviluppata negli anni '40 da un altro pioniere dell'informatica, John von Neumann (19031957), americano di origine ungherese. Si tratta della cosiddetta “macchina di von Neumann”.

Anch'essa è in primo luogo una costruzione teorica, che influenzò però direttamente la realizzazione dei primi computer: l'ENIAC (Electronic Numerical Integrator and Computer) e l'EDVAC (Electronic Discrete Variable Automatic Computer).

Von Neumann sviluppò insieme a J.H. Bigelov, J.R. Oppenheimer e H. Goldstine, la teoria degli automi. Nel 1944 pubblicò La Teoria dei Giochi e comportamento economico, opera di notevole importanza nelle scienze economiche. Sempre nel 1944 divenne consulente nell'Università di Pennsylvania del gruppo per lo sviluppo del primo computer elettronico, l'ENIAC.

Nel 1945, insieme a John Eckert, John Mauchly, Arthur Burks ed Herman Goldstine, definisce l'architettura logica dell'elaboratore. Dimostrò che una macchina con tale architettura (l'attuale computer) poteva eseguire qualunque calcolo risolubile. Da allora l'architettura dei computer è rimasta la stessa.

La struttura era costituita da: *

unità aritmetica centrale, un componente che si occupi dei calcoli e opera-

zioni logiche (l'attuale ALU) *

unità di controllo, che gestisce un numero finito di istruzioni e di dati in

memoria (DATAPATH) *

memoria che contiene dati e istruzioni (gli attuali REGISTRI e la RAM)

*

unità di ingresso e di uscita -I/0- (gli attuali monitor, tastiera, memorie, etc.).

37

Informatica musicale I – A.A. 2004-2005

Molte istruzioni di programma richiedono l'intervento di una componente particolarmente importante della CPU, l'Unità Aritmetico-Logica o ALU: come dice il suo nome, la ALU compie le principali operazioni aritmetiche e logiche, come quelle descritte a proposito della logica booleana.

Spesso, infatti, le istruzioni di un programma hanno la forma "se si verifica questa condizione congiuntamente a (AND) quest'altra condizione, allora fai questo", oppure "se si verifica questa o (EXOR) quella condizione fai quest'altro", o ancora "se non (NOT) si verifica questa condizione, fai quest'altro ancora". E’ importante dunque che la CPU sappia 'calcolare' se un input è vero o falso partendo dalla "verità o falsità" degli elementi che lo compongono.

I bit che vanno avanti e indietro dai registri e sui quali lavorano l'unità di controllo e la ALU hanno naturalmente bisogno di canali attraverso cui viaggiare: si tratta dei cosiddetti bus. L'architettura di un computer dovrà naturalmente prevedere diversi tipi di bus per lo scambio di dati: alcuni interni alla CPU, altri fra la CPU e le altre componenti del computer.

La CPU e le altre componenti del computer devono lavorare in maniera coordinata, e per farlo devono scambiarsi informazioni sullo stato e i tempi di esecuzione dei vari còmpiti. Ecco allora che la frequenza di lavoro della CPU funziona da vero e proprio orologio (clock) di sistema, che 'segna il ritmo' per il lavoro svolto da tutta la macchina.

38

Informatica musicale I – A.A. 2004-2005

La velocità di un computer dipende grandemente, ma non esclusivamente, dalla velocità del suo clock. Attualmente, quelli “domestici” più potenti hanno di gran lunga superato i 3000 MHz (tre miliardi di oscillazioni al secondo, 3 GHz). Le missioni lunari degli anni ‘60-’70 furono assistite da computer con velocità di pochi MHz.

Il controllo della decodifica e dell'esecuzione delle istruzioni del programma è affidato all'unità di controllo e deve comunicare con l'unità aritmetico-logica (ALU) che, come abbiamo visto, ha il compito di eseguire le operazioni matematiche e logiche. A sua volta, la ALU lavorerà operando sui registri che contengono i dati da confrontare o sui quali svolgere le operazioni tenendo man mano traccia dei risultati del suo lavoro.

Nel cuore del nostro computer lavora quindi un'attivissima fabbrica impegnata nella continua elaborazione di dati in formato binario; attraverso le vie di comunicazione costituite dai bus, la materia prima arriva dall'esterno sotto forma di dati binari in entrata; viene poi 'lavorata' in accordo con le istruzioni del programma, e viene infine nuovamente 'spedita' verso l'esterno. I ritmi di lavoro della “fabbrica” sono scanditi dall'orologio della CPU, e le sue capacità di elaborazione dipendono direttamente dall'insieme di istruzioni che il processore può riconoscere ed eseguire. Ogni programma compilato per essere eseguito da un particolare processore deve essere basato su comandi tratti dal relativo 'set di istruzioni' del processore stesso.

Struttura interna di una CPU

39

Informatica musicale I – A.A. 2004-2005

Tipi di CPU

La potenza effettiva di un processore non dipende solo dalla sua frequenza di clock. Dipende anche dal numero e dal tipo di istruzioni che il processore è in grado di eseguire e dalla velocità del bus di sistema.

Ci sono, a questo proposito, due 'scuole' diverse: 1) i processori RISC, che sanno eseguire poche istruzioni molto semplici, ma lo fanno assai velocemente; 2) i processori CISC, che sanno invece eseguire (un po' più lentamente) molte istruzioni diverse e più complesse.

RISC ='Reduced Instruction Set' Insieme di istruzioni ridotto a vantaggio della velocità di calcolo. Saranno poi i programmatori a dovere costruire, mettendo insieme come mattoni le poche istruzioni di base, programmi capaci di effettuare operazioni complesse.

CISC = 'Complex Instruction Set' Processori capaci di eseguire direttamente, senza bisogno di programmazione esterna, molte istruzioni diverse a svantaggio della velocità.

La CPU è di norma 'incastonata' in una scheda che raccoglie in maniera efficiente e compatta altri componenti fondamentali di ogni computer, come la memoria, le porte di comunicazione, e così via. Si tratta della cosiddetta piastra o scheda madre (motherboard).

Memorie di massa

I floppy disk sono piccoli dischi di materiale magnetico inseriti all'interno di un rivestimento di plastica, che all'inizio era flessibile (da qui la caratterizzazione 'floppy') ma

40

Informatica musicale I – A.A. 2004-2005

che adesso è quasi rigido. I piccoli floppy disk attuali contengono, nella versione più diffusa, 1.44 Mb di dati.

Una categoria ormai diffusissima è quella costituita dai CD-ROM; a differenza dei floppy disk e dei vecchi nastri, l'informazione è scritta e conservata sfruttando un supporto ottico inciso da un raggio laser. Si tratta di una procedura del tutto analoga a quella usata nei cd musicali. La capacità equivale a più di 400 floppy.

I DVD (Digital Versatile Disk) sono apparentemente simili ai CD-ROM ma capaci di contenere quantità ancora maggiori di dati (le capacità dei DVD variano a seconda della loro formattazione, e – nelle specifiche attuali - possono andare da 4,7 a 17 Gb, cioè da 7 a 26 volte la capacità di un CD-ROM).

Mentre floppy disk, CD-ROM, DVD, nastri e cartucce sono supporti rimovibili (li inseriremo nel computer solo quando ci servono quei particolari dati o quel particolare programma), i dischi rigidi (hard disk o winchester) sono in genere fissi, inseriti all'interno del computer.

Alcuni confronti pratici tra capacità dei supporti di memoria:

Una pagina=2000 caratteri (2000 caratteri=2000 byte) 1 floppy disk=1.440.000 byte=_____________720 pagine 1 CD-ROM=700.000.000 byte=___________ 350.000 pagine 1 DVD=17.000.000.000 byte=________

8.500.000 pagine

1 Hard disk=200.000.000.000 byte=_100.000.000 pagine

Foto piccola a colori di media qualità=200.000 byte 1 floppy disk=1.440.000 byte=___________7 foto 1 CD-ROM=700.000.000 byte=_________ 3.500 foto 1 DVD=4.700.000.000 byte=__________23.500 foto 1 Hard disk=80.000.000.000 byte=__400.000 foto

41

Informatica musicale I – A.A. 2004-2005

Un’ora di musica=600.000.000 byte (qualità CD) 1 floppy disk=1.440.000 byte=_____________8 secondi 1 CD-ROM=700.000.000 byte=________più di

1 ora

1 DVD=4.700.000.000 byte=________________ 8 ore 1 Hard disk=80.000.000.000 byte=_______ 130 ore

Un film=4.500.000.000 byte (qualità dvd) 1 floppy disk=1.440.000 byte=____________ 2 secondi 1 CD-ROM=630.000.000 byte=______________ 16 minuti 1 DVD=4.700.000.000 byte=______________

1 film

1 Hard disk=80.000.000.000 byte=_______

17 film

Carte di credito, carte bancomat, schede telefoniche e molti altri tipi di tessere possiedono una piccola memoria, su banda magnetica o su chip, che conserva i dati necessari. Anch’esse sono memorie di massa.

Il funzionamento di un computer non dipende solo dall'hardware ma anche, e in maniera indispensabile, dai programmi (istruzioni) che il computer è in grado di eseguire, il cosiddetto software. In un certo senso, il software 'dà vita' all'hardware:

>Programmi di calcolo >Giochi >Videoscrittura (word processor) >Fogli elettronici >Database >Programmi grafici >Programmi di manipolazione sonora e di manipolazione video >Programmi di comunicazione >Programmi per la navigazione su Internet >Programmi didattici >Editoria multimediale >ecc.

42

Informatica musicale I – A.A. 2004-2005

Un software fondamentale: il sistema operativo (OS)

Il computer deve permettere anche a un non esperto di interagire in maniera semplice e intuitiva. Non basta insomma che il computer sia in grado di comunicare con noi: vogliamo, per quanto possibile, che esso comunichi con noi usando convenzioni di comunicazione familiari e immediate.

Ciò è realizzato dal sistema operativo (OS) che, oltre al compito di gestire il funzionamento dell'hardware, deve mettere in comunicazione la macchina con l'uomo. I primi OS erano basati sull'idea della comunicazione linguistica; i sistemi operativi a caratteri, come il DOS o l’UNIX, si basano appunto sull'idea che l'utente impartisca i propri comandi in forma 'scritta', utilizzando la tastiera.

Al posto delle interfacce a caratteri sono comparse le cosiddette interfacce ad icone o grafiche (GUI, Graphical User Interface). La loro diffusione si deve soprattutto ai computer Atari, Amiga e Apple che con i loro sistemi operativi ad icone hanno fatto scuola.

Ben presto anche IBM e Microsoft hanno deciso di imitarli: la prima con il sistema operativo OS/2, la seconda con le varie versioni di Windows.

Il sistema operativo (SO oppure OS in inglese) è dunque il primo e più importante programma. Esso non è solo una realizzazione ingegneristica, ma rispecchia la 'filosofia' dell’interazione uomo-computer-uomo: •

i tipi di còmpiti che ci interessa far svolgere alla macchina



le tipologie di utente che con essa devono interagire



i modelli di comunicazione adottati.

La prima operazione del computer all'accensione è il trasferimento del sistema operativo, presente su una memoria di massa, nella memoria “RAM”.

43

Informatica musicale I – A.A. 2004-2005

Random access memory (RAM)

I tempi di accesso alle informazioni memorizzate nelle memorie di massa come i dischi fissi o removibili variano a seconda del supporto, ma non sono paragonabili a quelli, molto più veloci, di accesso alle informazioni presenti in una banca di memoria costituita da circuiti integrati.

Direttamente innestato nella piastra madre, un deposito capiente è quello rappresentato dalla cosiddetta RAM (Random Access Memory, memoria ad accesso casuale), dove mentre usiamo il computer vengono conservate, momento per momento, le istruzioni del sistema operativo, la gran parte dei dati sui quali stiamo lavorando e delle istruzioni relative ai programmi che stiamo usando. Se ad esempio stiamo utilizzando un programma di videoscrittura, la RAM conterrà il testo che stiamo scrivendo (o una larga parte di esso) e i moduli fondamentali del programma che stiamo usando per scriverlo.

La RAM è una memoria volatile: i dati vengono conservati sotto forma di potenziali elettrici, e se togliamo la spina (o se va via la corrente) vanno persi. La RAM viene inserita in appositi alloggiamenti (slot) sulla motherboard. Entro certi limiti, la quantità di RAM è direttamente proporzionale alla performance del processore.

E' necessario però che sulla piastra madre sia presente, a disposizione della CPU, anche una parte di memoria non volatile, contenente una serie di informazioni fondamentali per il funzionamento del computer. Ad esempio, le informazioni su quali siano i dispositivi presenti sulla piastra madre, e su come comunicare con essi.

Queste informazioni non possono essere date 'dall'esterno', perché senza di esse la stessa comunicazione con l'esterno è impossibile. Non possono nemmeno essere volatili, perché se lo fossero scomparirebbero al momento di spegnere il computer, e alla successiva riaccensione non sapremmo più come reinserirle, dato che il computer stesso non 'ricorderebbe' più come fare per comunicare con l'esterno.

44

Informatica musicale I – A.A. 2004-2005

Devono dunque essere a portata di mano, sulla piastra madre, e conservate da una memoria non volatile. Si tratta del cosiddetto BIOS, Basic Input-Output System. La memoria non volatile che conserva questi dati è in genere considerata memoria a sola lettura, o memoria ROM (Read Only Memory, memoria di sola lettura), anche se ormai questa denominazione è inesatta: si usano infatti sempre più spesso a questo scopo moduli di memoria non volatile 'aggiornabili' in caso di necessità (flash memory).

Talvolta, oltre al BIOS, nella memoria non volatile trovano posto anche veri e propri programmi; è il caso ad esempio di molti computer palmari della nuova generazione (si tratta dell'evoluzione delle cosiddette agendine elettroniche: pesanti qualche centinaio di grammi e in grado di essere portati in una tasca, i computer palmari di oggi sono molto più potenti dei personal computer di sei o sette anni fa).

In questo caso, l'installazione in ROM del sistema operativo e dei principali programmi usati consente non solo di averli immediatamente a disposizione, senza aspettare i tempi necessari al loro caricamento da una memoria esterna, ma anche di ridurre il peso della macchina, dato che non servono dispositivi di memoria di massa come dischi rigidi o floppy disk dai quali altrimenti questi programmi dovrebbero essere caricati.

Negli ultimi anni si è diffusa l'abitudine di inserire una memoria autonoma di una certa ampiezza in grado di “alleggerire” (e quindi velocizzare) il lavoro della CPU. Questa memoria, detta memoria cache, trovandosi a portata diretta della CPU è ancor più veloce della RAM installata sulla piastra madre, ed è quindi in grado di migliorare ulteriormente le prestazioni del sistema.

Note a margine…

Armàti solo degli '0' e '1' della codifica digitale è possibile affrontare tipi di informazione molto diversa - dai numeri al testo scritto, dai suoni alle immagini e al video in movimento - riuscendo a rappresentarli tutti. Possiamo capire - e considerare in certa misura quasi profetico - lo slancio delle parole con le quali all'inizio del '700 Leibniz parlava

45

Informatica musicale I – A.A. 2004-2005

della sua scoperta. Egli vedeva nella notazione binaria "un'immagine della creazione, ovvero dell'origine delle cose da Dio e dal nulla", e sosteneva:

Il calcolo binario, che utilizza lo '0' e l''1', a ricompensa della sua maggiore lunghezza è il più fondamentale per la scienza, ed è all'origine di nuove scoperte (...) la cui ragione è che allorché i numeri sono ridotti ai principi più semplici, e cioè allo '0' e all''1', appare ovunque un ordine meraviglioso.

Proprio perché tutto ciò coinvolge direttamente i nostri modi di rappresentare, scambiare e organizzare l'informazione - cioè qualcosa che ha per noi un'immensa importanza culturale, sociale, politica - dobbiamo guardarci dal considerare la convergenza al digitale come il frutto quasi automatico di un mero progresso tecnologico. E’ certo resa possibile dalla disponibilità di certi strumenti tecnologici (e, come abbiamo visto, di certi strumenti teorici), ma non è determinata né dalla tecnologia, né dalla teoria. È piuttosto il frutto di una serie di scelte, e comporta essa stessa scelte, ad esempio nelle forme di organizzazione dell'informazione.

Queste scelte non mancano di avere conseguenze, spesso estremamente rilevanti, e non sempre o necessariamente positive. Se ci limitassimo a considerare questo processo come una realizzazione ingegneristica, perderemmo completamente di vista questa dimensione, che è invece essenziale: dopo la rivoluzione digitale il nostro universo informativo non sarà semplicemente una riformulazione in un linguaggio nuovo di una realtà preesistente: avrà forme nuove, rese possibili dalla tecnologia, ma frutto di scelte che non saranno né unicamente né principalmente tecnologiche.

46

Related Documents


More Documents from "Tommaso Siciliano"