Sei sulla pagina 1di 9

Appunti di Informatica Musicale

Prof. Giovanni Albini

Conservatorio ”A. Bonporti” di Trento


Ultima modifica: 23 Maggio 2017

Questi appunti nascono come traccia del modulo teorico del corso di Informatica
Musicale (30 ore) per i corsi accademici del Conservatorio ”A. Bonporti” di Trento
e del Conservatorio ”F. Vittadini” di Pavia.

Con il termine informatica1 si indica la scienza e la tecnica che si occupano


della rappresentazione e del trattamento dell’informazione e dell’elaborazione
automatica dei dati. Ha come oggetto di studio gli aspetti teorici legati all’in-
formazione e alla sua elaborazione automatica nonché le tecniche pratiche di ap-
plicazione attraverso elaboratori. L’informatica musicale è allora la scienza e
la tecnica della rappresentazione e dell’elaborazione automatica di informazioni
musicali.

1 Informatica generale
L’informatica non si occupa solo di computer: è una disciplina che si dedica
a concetti e contenuti decisamente più generali intrecciandosi con molte altre
materie di studio, prime tra tutte la matematica, la teoria dell’informazione,
l’automatica e l’elettronica. Eppure i suoi strumenti, cosı̀ come alcuni dei suoi
termini, sono ormai percepiti come naturali ed indispensabili nella vita di tutti
i giorni, senza che se ne approfondiscano le potenzialità, la portata, la storia
e il contesto. Per poter quindi spiegare in linea generale il funzionamento di
tali strumenti, e poter dare senso a quel vocabolario pseudo-informatico che è
entrato nel linguaggio comune, occorrono alcune definizioni preliminari.
1 Acronimo di INFORMazione automATICA, coniato da Philippe Dreyfus nel 1962 in lin-

gua francese, INFORMATion automatIQUE. Altri fanno risalire l’etimologia del termine al
tedesco Informatik, neologismo impiegato da Karl Steinbuch per il titolo di un suo articolo
nel 1957.

1
1.1 Dati, informazione, conoscenza
Si immagini di fotografare con lo smartphone un paesaggio. Come avremo
modo di approfondire quella fotografia verrà archiviata nella memoria del di-
spositivo come una precisa serie di 0 e di 1. La fotografia, nel momento in
cui risiede in memoria, è un dato, una successione di simboli convenzionali che
rappresentano qualcosa ma che se considerati in modo autonomo non hanno un
significato univoco. Servirà infatti una specifica applicazione sullo smartphone
(magari proprio la stessa utilizzata per scattare la foto) per permettere di vi-
sualizzarla, maniporarla e archiviarla, per farne insomma informazione, ossia
dati organizzati in modo comprensibile per l’utente mediante una convenzione
che gli attribuisca un significato condiviso. Quante volte si è inviato un docu-
mento via email per scoprire che il destinatario non era in grado di aprirlo? I
dati, difatti, si trasferiscono facilmente da dispositivo a dispositivo, ma la loro
interpretazione evidentemente non è sempre cosı̀ scontata.
Infine la conoscenza è quell’elaborazione dell’informazione tipica dell’uomo,
che presuppone contestualizzazione e sintesi. In riferimento all’esempio della
fotografia la conoscenza è ciò che noi impariamo visualizzando e manipolando
l’immagine e come lo rapportiamo a ciò che già conosciamo. Un problema inte-
ressante è quello dell’automazione del passaggio da informazione a conoscenza
nell’elaboratore stesso, anche se da un punto di vista filosofico la distinzione tra
informazione e conoscenza in un computer è decisamente discutibile e difficile
da stabilire. Non è semplice stabilire dove finisca un’informazione e dove si è
creata conoscenza. In ogni caso la disciplina che studia come rappresentare nel
modo più flessibile e generale la realtà e la conoscenza in termini informatici,
utile soprattutto al funzionamento di intelligenze artificiali, prende talvolta il
nome molto suggestivo di ingegneria ontologica.
Volendo proporre un altro esempio, più di natura musicale, si immagini di
registrare, sempre con uno smartphone, un concerto. I dati saranno quella
successione di cifre binarie che conserverà il segnale sonoro catturato dal mi-
crofono e convertito in digitale, l’informazione sarà consentita dalle applicazioni
che consentiranno di archiviare, riconoscere, riprodurre ed eventualmente ma-
nipolare quanto registrato trattandolo come informazione sonora ed infine la
conoscenza sarà la capacità di chi lo ascolta di riconoscere le partiture eseguite,
di comprenderne il contenuto musicale e di valutarne ad esempio l’esecuzione.
Dati diversi possono archiviare la stessa informazione: ad esempio file in for-
mato AIFF (Audio Interchange File Format) e in formato WAVE (Waveform
Audio File Format) possono contenere lo stesso identico segnale sonoro (conver-
tibile da un formato all’altro) pur rappresentandolo con una successione di cifre
binarie diversa. Allo stesso modo informazioni diverse possono teoricamente es-
sere rappresentate dagli stessi dati se letti con codifiche differenti. Quest’ultima
affermazione si verifica facilmente provando ad aprire un file di piccole dimensio-
ni con un editor di testo, che prova a rappresentarne il contenuto come testuale
visualizzando una serie di caratteri incomprensibili.

2
1.2 Automatismi ed elaboratori
Nella definizione che si è offerta in queste pagine dell’informatica si è scritto
che è la scienza e la tecnica che si occupa della rappresentazione e del trattamen-
to dell’informazione, nonché dell’elaborazione automatica dei dati. Dettagliando
meglio l’aspetto tecnico, operativo e applicativo si può scrivere che si occupa nel-
lo specifico della rappresentazione e del trattamento dell’informazione attraverso
l’elaborazione automatica dei dati e lo studio degli elementi teorici e generali
di tale elaborazione. Il termine stesso inglese computer, ormai entrato da de-
cenni di prepotenza anche nel vocabolario italiano2 , è proprio il nome d’agente
del verbo inglese to compute, in italiano computare, calcolare, elaborare. Appare
allora evidente il significato del termine appropriato italiano elaboratore (o,
più raro e meno specifico, calcolatore), nonché di quello francese ordinateur.
Si noti che i termini computer ed elaboratore non fanno esplicito riferimen-
to alla componente elettronica e digitale di un computer, ai giorni nostri data
per scontata, né alla portata di applicazione di tale elaborazione. Spesso si
confonde il computer con la tecnologia delle sue periferiche. L’uomo stesso,
opportunamente istruito, può svolgere le stesse funzioni di un elaboratore (ed
è esattamente quello che fa tutti i giorni quando ad esempio esegue un calco-
lo, non necessariamente matematico, anche di un intervallo musicale!), magari
aiutandosi e velocizzandosi con strumenti esterni, come ad esempio un foglio e
una matita per scrivere i passaggi. Dopotutto il calcolatore mette in pratica le
metodologie e gli strumenti del pensare e dell’agire razionale caratteristici del-
l’uomo. Malgrado quindi si finisca con il riferirsi impropriamente al computer
come ad un dispositivo programmabile a scopo generico, di natura elettronica
e che tratta dati digitali, nei suoi caratteri generali un elaboratore può avere
svariati meccanismi di funzionamento (siano essi meccanici, elettromeccanici,
elettronici o addirittura quantistici) nonché elaborare informazione rappresen-
tata con dati differenti. Macchine calcolatrici come l’abaco e le macchine di
Pascal, di Leibniz e di Schickard si possono allora considerare a tutti gli effetti
come antenati di un elaboratore moderno, anche se sono limitate nelle opera-
zioni di elaborazione. Il primo progetto (mai realizzato completamente) di un
computer capace di essere programmato per eseguire compiti generici è invece
del 1837 ed è l’Analytical Engine dello scienziato inglese Charles Babbage.
Una caratteristica fondamentale dell’elaboratore moderno è infatti proprio
quella di essere capace di eseguire su opportuna programmazione ogni tipo di
operazione logica, quindi ogni compito generico esprimibile con un algoritmo,
ossia un numero finito di operazioni elementari e riproducibili. Ciò permette
di introdurre anche la nozione teorica di calcolabilità: un problema si defi-
nisce calcolabile quando è risolvibile mediante un algoritmo. I computer sono
allora macchine programmate per eseguire operazioni sui dati in loro possesso
(che possono ovviamente cambiare grazie a periferiche che li aggiornano o ne
forniscono di nuovi) in modo autonomo. Elaboratori automatici, appunto. E
2 Nel corso di questi appunti i termini computer ed elaboratore saranno utilizzati come

sinonimi.

3
l’automazione, insieme alle considerevoli velocità di elaborazione consentite dai
moderni microprocessori, sono forse la ragione principale del loro successo e
della loro diffusione.

1.3 Modello teorico-computazionale e architettura di un


computer
I computer moderni sono costruiti in riferimento ad un preciso modello teori-
co, che ne descrive il funzionamento e le procedure da un punto di vista astratto
consentendo di verificarne le potenzialità, il modello teorico-computazionale
della macchina di Turing, e secondo l’architettura fisica ideata da John von
Neumann.
Una macchina di Turing3 è una macchina ideale, ossia una macchina le
cui caratteristiche sono definite sono in maniera teorica per avere un modello
informatico astratto. Si compone di una testina che legge e scrive sulle caselle
di un nastro di lunghezza potenzialmente infinita. La macchina è programmata
con un insieme finito di istruzioni e può trovarsi in uno stato a sua volta ri-
conducibile ad un insieme finito di stati. Il suo comportamento è determinato
dallo stato in cui si trova e dal simbolo che legge la testina dalla casella su cui è
posizionata, e si concretizza nell’eventuale modifica del contenuto della casella
(con un simbolo appartenente ad un insieme finito di simboli), nell’eventuale
spostamento della testina di una posizione verso destra o verso sinistra e nell’e-
ventuale cambiamento dello stato. Quelle della macchina di Turing sono opera-
zioni semplicissime con le quali è sorprendentemente possibile descrivere tutte le
elaborazioni effettuabili dagli altri modelli di calcolo noti: tutto ciò che può fare
un computer può essere simulato con una macchina di Turing. Per questo si è
scritto che i computer moderni si fondano sul modello teorico-computazionale
di una macchina di Turing.
Se le macchine di Turing permettono di studiare dal punto di vista teorico i
problemi legati alla calcolabilità, la sua architettura minimale sarebbe decisa-
mente inefficiente per un computer. Per questo motivo nella pratica i computer
si riferiscono ad un’altra architettura, quella proposta da John von Neumann
nel 1945 per il progetto di uno dei primi computer elettronici digitali della sto-
ria l’EDVAC (acronimo di Electronic Discrete Variable Automatic Calculator ).
L’architettura si compone di varie componenti: l’unità di lavoro (o CPU,
acronimo di Central Processing Unit), a sua volta suddivisa in unità operativa
e unità di controllo, l’unità di memoria, che contiene i dati e le istruzioni per
l’unità di lavoro, e infine l’unità di input e l’unità di output attraverso le
quali i dati vengono inseriti nel computer per essere elaborati o restituiti all’e-
sterno. Infine il bus collega tutte le componenti tra di loro. Un’architettura
come quella di von Neumann si dice anche architettura hardware, poiché con
il termine hardware si indica tutta la componentistica fisica di un computer,
ossia tutte quelle parti meccaniche, magnetiche, elettroniche, elettriche, ottiche,
3 Teorizzata da Alan Turing nel 1936.

4
etc. che ne consentono il funzionamento. Con il termine software invece si in-
dicano quelle informazioni utilizzate da un elaboratore per funzionare: possono
essere programmi, che contengono le istruzioni di comportamento, dati, o la
combinazione di entrambi.

2 I dati digitali binari


Altra caratteristica dei moderni computer è quella di trattare i dati, quan-
tomeno ad un livello di linguaggio macchina, espressi attraverso stringhe che
ammettono solo i due simboli del sistema numerico binario, classicamente chia-
mati zero (0) e uno (1). L’unità base allora di un dato all’interno di un computer
- se considerassimo il modello ideale della macchina di Turing, potremmo dire
la singola casella di un nastro che si riferisce ad un alfabeto binario - è il bit,
acronimo inglese di BInary digiT. Il bit quindi può assumere solo due valori, che
potremmo rappresentare come 0 e 1, ma anche come valori logici (vero e falso,
sı̀ e no) o stati (on e off, presente e assente). Questo ci suggerisce anche le innu-
merevoli modalità in cui i bit sono fissati su un dispositivo di memoria: possono
essere fissati come zone fisiche forate o non forate, magnetizzate o non magne-
tizzate, etc. Se ne deduce che la ragione fondamentale del successo nell’utilizzo
di un alfabeto binario risiede nella sua semplicità di utilizzo nelle memorie. Il
primo esempio di una macchina controllata da schede perforate contenenti dati
binari è del 1725: un telaio inventato da Basile Bouchon e reso automatico da
un progetto del 1801 da Joseph Marie Jacquard. I dati digitali vengono raccolti
in file, sequenze binarie; la convenzione che viene usata per leggere, scrivere e
interpretare i contenuti di un file prende il nome di formato di un file.
Una precisazione terminologica è a questo punto d’obbligo: il termine digi-
tale non si riferisce alla simbologia binaria trattata dai computer moderni, ma
semplicemente descrive una rappresentazione discreta (e quindi discontinua) di
un’informazione, come nel caso appunto di una stringa di bit. Si contrappone
al termine analogico, che invece descrive l’informazione in modo continuo, in
una qualche analogia con la sua origine.

2.1 I multipli del bit


Il multiplo del bit più importante è il byte, 8 bit, che storicamente indica il
numero di bit utilizzati per rappresentare un singolo carattere di testo. I dati
diversi tra loro che è possibile rappresentare con una stringa di n bit sono pari a
2n . Un byte permette allora di codificare ben 28 = 256 dati diversi: un numero
adatto a contenere l’alfabeto, con tanto di maiuscole, minuscole e accenti, i
numeri e simboli vari di punteggiatura e di base necessari nella scrittura.
Gli attributi kilo (abbreviato in k), mega (M), giga (G) e tera (T), posti
prima di bit e di byte, indicano rispettivamente 103 (mille), 106 (un milione),
109 (un miliardo) e 1012 (un bilione) di bit o di byte. Un terabyte (Tbyte) cor-
risponde allora ad un bilione di byte, 1.000.000.000.000 byte, 8.000.000.000.000

5
bit. Comunemente si fa però scorrettamente riferimento ai prefissi del sistema
internazionale di misura appena presentati come se fossero prefissi binari, an-
che se la distinzione è relativamente recente4 e non ancora diffusa e accettata.
Cosı̀ che gli attributi kibi (abbreviato in Ki), mebi (Mi), gibi (Gi) e tebi
(Ti), posti prima di bit e di byte, che indicano rispettivamente 210 = 1.024,
220 = 1.048.576, 230 = 1.073.741.824 e 240 = 1.099.511.627.776 (un bilione) di
bit o di byte, vengono ancora spesso ignorati. Un tebibyte corrisponde allora
a 8.796.093.022.208 bit. Gli attributi kilo, mega, giga, tera, etc. sono stati
per decenni e vengono ancora utilizzati in informatica per indicare ciò che la
Commissione Elettrotecnica Internazionale vorrebbe che fosse indicato da kibi,
mebi, gibi, tebi, etc. Il motivo è molto semplice, gestire i multipli come potenze
binarie in un sistema binario è decisamente più pratico e permette di gestire in
maniera più efficiente questioni quali ad esempio gli indirizzi di memoria. La
ragione della distinzione chiesta dalla Commissione Elettrotecnica Internazio-
nale deriva invece dal fatto che gli attributi kilo, mega, giga e tera sono invece
utilizzati come potenze di dieci convenzionalmente in riferimento ad ogni altra
unità di misura; utilizzarle allora per esprimere potenze di due può creare (e in
effetti crea...) confusione.

2.2 Campionamento di segnali analogici sonori


Si immagini uno strumento musicale che emette un qualche suono: le vibra-
zioni della sorgente vengono comunicate alle particelle d’aria adiacenti, le quali
a loro volta entrano in vibrazione e trasmettano il movimento alle particelle
vicine, e cosı̀ via, generando appunto un’onda in cui le particelle si muovono nel
loro moto oscillatorio lungo la direzione di propagazione fino a quando la vibra-
zione non giunge alla membrana timpanica di un ascoltatore o alla membrana di
un microfono. Tali spostamenti delle particelle d’aria si configurano come una
variazione locale della pressione, che varia con continuità. Il microfono quindi
trasforma questa variazione di pressione continua nel tempo in un segnale elet-
trico che varierà in analogia con il segnale sonoro. Le apparecchiature e i circuiti
che operano su segnali analogici si definiscono anch’essi analogici. Un segnale
invece è digitale quando è discreto: la discretizzazione (la digitalizzazione) di
un segnale analogico prende il nome di campionamento. Ad esempio quindi
una scheda audio (fornita di opportuni trasduttori) può convertire in digitale
il segnale elettrico fornito da un microfono e in analogia con il suono da esso
captato.
Nel campionamento entrano in gioco due grandezze fondamentali. La pri-
ma è la frequenza di campionamento, espressa in Hertz (Hz), che misura
quante volte in un secondo il segnale analogico viene misurato. L’intervallo di
tempo (costante!) tra due misurazioni successive prende il nome di periodo
di campionamento ed è l’inverso della frequenza di campionamento. Secondo
un celebre teorema noto nell’ambito dell’elettronica e delle telecomunicazioni, il
teorema del campionamento di Nyquist-Shannon, la minima frequenza
4 Dicembre 1998.

6
di campionamento necessaria per campionare un segnale analogico è uguale al
doppio della massima frequenza che si vuole campionare. 20kHz è pressoché la
massima frequenza udibile e gli standard di campionamento sono di poco su-
periori al suo doppio (44,1kHz per i CD audio, 48kHz per la maggior parte dei
dispositivi elettronici in commercio).
La seconda grandezza è la profondità di bit o profondità di campio-
namento, che indica la quantità di bit con cui si esprimerà il valore di ogni
misurazione, di ogni campione. Il CD audio, ad esempio, ha una profondità di
16 bit, quindi ogni campione può assumere uno tra 216 = 65.536 valori.

2.3 La compressione dei dati


In alcuni casi può essere particolarmente conveniente cercare di ridurre lo
spazio fisico occupato dai dati: si opera allora una compressione dati, oppor-
tuni algoritmi che consentono la riduzione della quantità di bit necessari alla
rappresentazione in forma digitale di un’informazione. Ci sono due tipi di com-
pressione dati: lossy (letteralmente ’perdente’, ’con perdita’)e lossless (’senza
perdita’). La prima comporta una perdita di informazione, la seconda invece
no.
Un esempio di compressione senza perdita è quello dei file ZIP: una volta
aperti ridanno esattamente i dati come erano prima di essere stati compres-
si. Evidentemente il loro tasso di compressione, ossia l’efficienza nel ridurre
spazio, dipende interamente dalla ridondanza del contenuto digitale, indipen-
dentemente da ciò che esso rappresenta. Un esempio invece di compressione
lossy è quello dei file MP3 (acronimo di Moving Picture expert group-1/2 audio
layer 3 ). Il suo funzionamento prevede un primo trattamento dell’informazio-
ne audio contenuta nel file di origine che, attraverso opportuni algoritmi che
tengono conto di noti fenomeni psicoacustici, riduce o elimina contenuti sonori
inudibili o poco udibili. L’informazione contenuta nei dati è a questo punto
ridotta e quindi una tradizionale compressione lossless su questi nuovi dati è
decisamente più efficiente. La qualità di un file mp3, il suo bit rate, si esprime
in kbit/s e ci dice quanti kbit di dati servono alla codifica di un secondo di
musica. I bit rate disponibili nella codifica MP3 sono 32, 40, 48, 64, 80, 96, 112,
128, 160, 192, 224, 256 e 320 kbit/s.

2.4 La rappresentazione dell’informazione musicale


La musica non si limita ad essere rappresentata e archiviata su un computer
in quanto suono, determinati formati consentono di trattare il contenuto mu-
sicali anche a livelli differenti. L’esempio più celebre è sicuramente quello del
MIDI (acronimo di Musical Instrument Digital Interface): benché il termine
indichi sia il linguaggio di codifica e il formato di un file, sia le specifiche di un
protocollo standard definito per l’interazione degli strumenti musicali elettronici
in tempo reale, sia l’interfaccia hardware che permette il collegamento fisico tra
dispositivi, ci si limiterà in questa sede al suo contenuto di informazione quale

7
formato di file. Un file MIDI contiene informazioni che specificano eventi legati
ad una partitura astratta: note, con loro altezza durata e volume, lo strumen-
to che le suona, indicazioni metronomiche, nonché informazioni più dettagliate
quali ad esempio il vibrato o la tonalità. La caratteristica che ne ha reso uno
standard internazionalmente adottato da oltre trent’anni risiede nella dimen-
sione estremamente ridotta dei file, nonché nell’efficienza del protocollo. Per
suonare un file MIDI ha bisogno di un software che esegua il suo contenuto (un
sequencer, in italiano sequenziatore) in combinazione con un campionatore,
un sintetizzatore o in ogni caso un dispositivo o un programma che associno agli
eventi del protocollo dei suoni.

3 Breve rassegna di software per l’informatica


musicale
Esistono tanti software per il musicista quante sono le sue necessità: le ap-
plicazioni oggi disponibili intervengono in ausilio del musicista in praticamente
ogni passaggio della sua attività. In questa breve rassegna verranno presentate,
in modo esemplificativo e non esaustivo, le tipologie più note.
Tra gli applicativi più diffusi rientrano sicuramente quelli di videoscrittura
musicale, di notazione musicale al computer, che consentono di comporre o co-
piare partiture, editarle, spesso ascoltarle e a volte anche analizzarle, correggerle
e modificarle con opportuni algoritmi di composizione assistita. In sostanza si
dedicano in prima istanza alla soluzione di problematiche legate all’editoria e alla
composizione musicale tradizionale. Delle decine di software dedicati disponibili
meritano attenzione: i tradizionali Sibelius e Finale, sviluppati rispettivamente
dalla Avid e dalla MakeMusic, a pagamento, che oggi dominano il mercato per
diffusione, potenzialità, e anzianità (il primo nasce nel 1993, il secondo nel 1988);
il recentissimo, sempre a pagamento, Dorico, della Steinberg; il gratuito ed open
source5 Musescore; il recente StaffPad della Microsoft, orientato all’utilizzo via
touchscreen.
Altra categoria è quella delle Digital Audio Workstation (DAW): soft-
ware che consentono la manipolazione di tracce audio, solitamente con una
impostazione che ricorda quella di un registratore multitraccia di un tradizio-
nale studio di registrazione. Consentono tutte quelle procedure di missaggio ed
elaborazione di segnali audio necessarie nelle fasi di registrazione, produzione e
post-produzione di un prodotto sonoro. Spesso sono vendute insieme ad hard-
ware dedicato. Le più celebri sono sicuramente ProTools, della Avid, Logic Pro
(e la versione semplificata e gratuita Garage Band ) della Apple, Cubase della
Steinberg, etc. Alcune presentano interfacce e funzionalità dedicate a generi,
situazioni e necessità precise: si possono ricordare FL Studio per i DJ e Ableton
Live per le performance live.
5 Il termine inglese open source indica un software di cui è reso pubblico il codice sorgente,

permettendo a chiunque di apportarvi modifiche ed estensioni.

8
Alcuni software consentono di programmare autonomamente gli applicativi,
mettendo a disposizione un framework, routine e librerie dedicate per il tratta-
mento di segnali audio o informazione musicale. I più celebri, anche per facilità
di utilizzo, sono gli ambienti di sviluppo grafico a flusso di dati, come Max
della Cycling ’74, l’open source Pure Data o ancora Flowstone della DSP Ro-
botics. Esistono anche linguaggi di programmazione dedicati, che servono
anche da ambienti di sviluppo, come CSound, SuperCollider (che consente
anche il live coding) e Processing (quest’ultimo più forte nell’interazione con
il video). Per il trattamento invece dell’informazione musicale sicuramente è da
ricordare la libreria Music21 del MIT, scritta e utilizzabile in linguaggio Python.

Indice
1 Informatica generale 1
1.1 Dati, informazione, conoscenza . . . . . . . . . . . . . . . . . . . 2
1.2 Automatismi ed elaboratori . . . . . . . . . . . . . . . . . . . . . 3
1.3 Modello teorico-computazionale e architettura di un computer . . 4

2 I dati digitali binari 5


2.1 I multipli del bit . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Campionamento di segnali analogici sonori . . . . . . . . . . . . . 6
2.3 La compressione dei dati . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 La rappresentazione dell’informazione musicale . . . . . . . . . . 7

3 Breve rassegna di software per l’informatica musicale 8