Sei sulla pagina 1di 13

Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

I LINGUAGGI DI PROGRAMMAZIONE PER LA COMPUTER


MUSIC
di Maurizio Giri

Introduzione
Le applicazioni che permettono di creare e manipolare suoni o comunque di fare musica
con il computer sono oggi, letteralmente, migliaia.
Dallhard disk recording ai sequencer MIDI, dai programmi per la performance dal vivo a
base di loop da strapazzare in tutti i modi a quelli per la scrittura di partiture classiche
o davanguardia, non c praticamente settore dellattivit creativa musicale che non sia
rappresentato da un adeguato parco software. Non parliamo poi dei plugin da carica-
re con il nostro programma preferito, che emulano praticamente qualsiasi effetto noto o
sconosciuto e qualsiasi strumento elettronico, campionato o vintage che ci possa veni-
re in mente di utilizzare.
In questa situazione il musicista elettronico (o aspirante tale) ha spesso la sensazione che
non gli baster una vita per esplorare tutte le possibilit creative interessanti che la tecno-
logia gli offre. Ma in realt chi desidera mettere le mani in pasta nella creazione e nella
elaborazione dei suoni, chi cerca di capire come realmente funziona la musica digitale, chi
alla ricerca di suoni nuovi che nessun altro ha mai concepito, prima o poi si rende conto
che le applicazioni pronte per luso, per quanto complesse e flessibili, non permettono
di fare davvero tutto: anche lelaboratore di loop pi estremo o il plugin pi raffinato alla
fine creano dei suoni che diventano fatalmente riconoscibili. E non c niente di peggio,
per un giovane compositore che sta orgogliosamente facendo ascoltare ad un amico il CD
con la sua ultima fatica, sentirsi dire: Questo suono lhai fatto con il Grain Delay di Live.
Anchio lanno scorso lho adoperato in un mio pezzo... bello, no?
Insomma inevitabile, per il nostro musicista che aspira alloriginalit, lincontroscontro
con un linguaggio di programmazione per la computer music, ovvero con una applicazio-
ne che gli permetta di specificare nei minimi dettagli come dovranno essere prodotti e
trattati i suoni, e dove come si dice spesso lunico limite la fantasia.
Naturalmente anche in questo ambito c limbarazzo della scelta: dai linguaggi pura-
mente testuali, in cui cio per udire dei suoni bisogna scrivere una serie di istruzioni (esat-
tamente come faremmo se programmassimo in Basic o in C) a quelli puramente visuali,
dove si lavora quasi esclusivamente con il mouse e non c bisogno di scrivere una riga di
codice.
Prima di entrare nel dettaglio e di ripercorrere la storia dei linguaggi di programmazione,
vediamo a grandi linee come si dividono queste applicazioni.
Ci sono 4 tipi principali di linguaggi per la computer music:

1) Linguaggi di sintesi in tempo differito, o offline, che seguendo il programma che noi gli
forniamo scrivono un file audio su disco che noi in un secondo momento possiamo ascol-
tare.
2) Linguaggi di sintesi in tempo reale, che magari si appoggiano a schede contenenti pro-
cessori specializzati per laudio, e che a differenza dei precedenti producono direttamen-
te (e al tempo giusto) i suoni che gli diciamo di produrre.
3) Linguaggi interattivi per il controllo della performance: diciamo che se i due preceden-
ti rappresentano degli strumenti virtuali, questo rappresenta un musicista virtuale,
ovvero questi linguaggi producono una serie di comandi che vengono trasmessi, ad esem-

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
1
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

pio via MIDI, a dei sintetizzatori o ad altri strumenti hardware, oppure, perch no, ad un
programma per la sintesi in tempo reale come quelli del punto 2.
4) Linguaggi di aiuto alla composizione: questi linguaggi servono a creare il materiale di
base per la composizione, o anche un intero brano. Le composizioni non sono necessa-
riamente destinate ad essere eseguite da un calcolatore, ma possono ad esempio essere
trascritte su partitura tradizionale e fatte eseguire a musicisti in carne ed ossa. In questo
caso quindi improprio parlare di computer music in senso stretto.

Questa rigida divisione era valida fino a qualche anno fa. Oggi, con la velocit degli attua-
li computer, la situazione molto pi fluida: i linguaggi di sintesi svolgono quasi tutti le
funzioni 1 e 2 (non esistono quasi pi quelli che lavorano esclusivamente offline e i lin-
guaggi in tempo reale non hanno pi bisogno di processori esterni), e i linguaggi di con-
trollo (tipo 3) sono quasi sempre connessi a quelli di sintesi in un unico pacchetto.
Anche i linguaggi per la composizione assistita (tipo 4) possono eseguire le composizioni
in tempo reale e magari hanno anche la possibilit di realizzare la sintesi del suono.
Bene, ora che abbiamo delimitato il territorio arrivato il momento di fare un bel salto
indietro nel tempo...

La preistoria
Lanno di nascita ufficiale della computer music , come vedremo tra poco, il 1957, ma esi-
ste un precedente poco noto che data addirittura al 1951, in Australia. Non possiamo iscri-
vere lesperimento australiano nella storia della computer music perch non si evoluto e
non ha avuto seguito, ma senzaltro interessante vederne da vicino il funzionamento.
Allepoca in Australia esisteva un grande calcolatore, lo CSIRAC, un mostro di un paio
di tonnellate, ultimo computer al mondo ad essere costruito in un unico esemplare, e
primo computer programmabile ad essere realizzato al di fuori degli Stati Uniti e
dellInghilterra. Era inizialmente in grado di eseguire 1000 istruzioni al secondo (andava
quindi a 0.001 MHz) e aveva una memoria di 768 parole da 20 bit luna: caratteristiche
queste che vennero migliorate col tempo.
Lo CSIRAC aveva un altoparlante che serviva a segnalare il raggiungimento di una particolare
istruzione nel programma (non esistevano gli schermi, allepoca, e lunico feedback possibile,
ad esempio per il debugging, era di tipo acustico). Laltoparlante era collegato direttamente ad
un registro del processore, e poteva ricevere un impulso da quel registro. Questo impulso era
un breve clic scarsamente udibile, ed era quindi necessario inviare una serie di impulsi, separa-
ti tra loro da un breve intervallo di tempo, per ottenere un beep pi consistente.
Geoff Hill, uno dei primi programmatori dello CSIRAC, aveva una buona educazione musicale,
e nel 1951 pens di variare il tempo di attesa tra un impulso e laltro per generare suoni di fre-
quenza diversa. Va sottolineato che questi suoni erano prodotti in tempo reale (anche perch
sarebbe stato ben difficile memorizzarli nella misera dotazione di memoria del calcolatore).
Il programma venne realizzato naturalmente con un intento didattico e dimostrativo, non
era considerato unapplicazione seria e la musica prodotta era estremamente rozza:
non esistevano convertitori digitaleanalogici (laltoparlante come abbiamo detto riceveva
limpulso direttamente dalla memoria del computer) e nemmeno una teoria completa del-
laudio digitale. Ci fu inizialmente lidea di trasmettere per radio questi esperimenti, ma
poi non se ne fece niente proprio per la povert dei risultati (bisogna pensare che allepo-
ca esistevano gi strumenti elettronici non digitali particolarmente raffinati e per cui ave-
vano scritto fior di compositori: il Telharmonium, il Theremin, le Ondes Martenot... il suono
elettronico non costituiva quindi una novit).

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
2
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

fig 1- Il calcolatore CSIRAC


Copyright Dysprosia, all rights reserved. Wikipedia.org

Chi fosse curioso di sentire come suonava lo CSIRAC pu trovare degli esempi a questa
pagina: http://www.abc.net.au/science/slab/csirac/default.htm

Le origini
Entriamo ora nel vivo della storia della computer music e spostiamoci nei Laboratori AT&T
Bell, nel New Jersey, nel 1957: in quellanno il direttore del Behavioral and Acoustic
Research Center, Max V. Mathews, fece produrre ad un IBM 704 (un grande mainframe,
molto pi evoluto dello CSIRAC) una sua composizione musicale della durata di 17 secon-
di. Secondo le parole dellautore il timbro e le note non erano molto ispirate, ma leffet-
to di quella conquista tecnologica vivo ancora oggi.
NellIBM 704 girava un programma creato da Mathews, il MUSIC I, capostipite di una serie
di programmi realizzati da lui e da altri, i cui ultimi discendenti sono oggi liberamente sca-
ricabili da internet e disponibili per tutte (o quasi) le piattaforme esistenti.
Torniamo a quei 17 secondi di musica: lIBM 704 non si trovava nei Bell Lab, ma nel quartier
generale della IBM a New York. Qui i dati prodotti dal computer vennero registrati su nastro;
il nastro venne poi riportato nei laboratori Bell e venne fatto suonare da un registratore col-
legato ad un convertitore digitale-analogico realizzato da Mathews. Il grande passo avanti
tutto qui: nel 1957 i computer erano gi in grado di produrre suoni ronzanti di vario tipo
per segnalare particolari passaggi dei programmi, ma questa era la prima volta che un com-
puter veniva programmato per generare e scrivere su nastro i campioni digitali di una forma

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
3
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

donda arbitraria e controllabile in frequenza ed ampiezza. In realt il linguaggio MUSIC I


poteva generare solo forme donda triangolari, perch erano le pi facili da calcolare, ma le
fondamenta della sintesi digitale del suono erano state gettate.

fig 2 - il calcolatore IBM 704


Copyright Lawrence Livermore National Laboratory

La sintesi del suono per, come sappiamo, solo uno dei possibili utilizzi del computer in
campo musicale: in quello stesso 1957, infatti, allUniversit dellIllinois di
UrbanaChampaign vide la luce la Illiac Suite, una partitura per quartetto darchi com-
posta dal computer ILLIAC di propriet delluniversit. Gli autori del programma che
aveva generato la partitura erano Lejaren Hiller, un professore di chimica che aveva stu-
diato composizione con Milton Babbitt e Roger Sessions, e Leonard Isaacson, un assiten-
te di facolt. In questo caso il computer non venne utilizzato per produrre suoni, ma per
creare una musica destinata ad essere eseguita da esseri umani. Il programma sfruttava
delle tecniche che erano usate per calcolare la struttura dei polimeri, a cui erano stati asso-
ciati algoritmi probabilistici presi dalla teoria dellinformazione, nonch le regole del con-
trappunto classico: con questo sistema venivano generate le sequenze di note, e se una
nota non rispettava le regole del contrappunto, ne veniva generata unaltra, con una tec-
nica nota appunto come generate and test. Era nato cos anche il primo programma di
composizione algoritmica per computer.

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
4
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

Max Mathews
Il programma MUSIC I, come abbiamo detto, solo il primo di una serie di programmi per
la sintesi del suono realizzati da Max Mathews. Nel 1958 infatti Mathews cre Music II,
che poteva sintetizzare fino a 4 voci contemporaneamente, sempre con forma donda
triangolare. Di versione in versione arriv al famoso MUSIC V, un linguaggio per la sintesi
del suono maturo e completo, su cui scrisse un importante libro: The Technology of
Computer Music (MIT Press, Cambridge, MA, 1969) diviso in due parti; la prima che trat-
ta dei principi dellelaborazione digitale del segnale e la seconda che descrive il linguag-
gio. Tutti questi linguaggi vanno sotto il nome di linguaggi Music N e sfruttano princi-
pi simili, che vedremo nel prossimo capitolo.
Vale la pena a questo punto spendere due parole su Max Mathews: il direttore del Centro
di Ricerca Acustica dei laboratori Bell considerato il padre della computer music (nonch
bisnonno della techno, a detta degli spiritosi redattori di csounds.com) e il paradigma che
sta dietro i linguaggi Music N ancora centrale per molti linguaggi musicali usati ai nostri
giorni. Nel 1961, allepoca di MUSIC III, Mathews fece un breve arrangiamento di una
nota canzone, "A Bicycle Built For Two", che utilizzava una delle prime tecniche di sinte-
si vocale, con un effetto, per i tempi, stupefacente. Lo scrittore Arthur C. Clarke, autore
di 2001 odissea nello spazio, ebbe modo di ascoltare questo arrangiamento e ne rima-
se colpito; questa infatti la canzone che il computer HAL 9000 canta mentre il suo cer-
vello viene sconnesso dallastronauta Dave, nella famosa scena del film diretto da Stanley
Kubrik (nella versione italiana la canzoncina cantata da HAL giro giro tondo). Potete
ascoltare la versione originale di Mathews a questo indirizzo:
http://www.vortex.com/comphist.html. Considerando la tecnologia dellepoca un pezzo
impressionante.
A partire dal 1970, con la creazione del programma GROOVE, gli interessi di Mathews si
spostano verso linterazione tra esecutore e computer; seguendo questa strada crea il
radio baton, un controller per computer che si utilizza come una bacchetta da diretto-
re, e un programma, conductor, che fornisce nuovi modi per interpretare ed eseguire
partiture tradizionali. Un notissimo software musicale sviluppato allIRCAM (di cui parlere-
mo pi avanti) porta il suo nome: Max.

Music N
I linguaggi per la sintesi creati da Mathews ispirarono altri programmatori a realizzare pro-
dotti simili: nacquero cos MUSIC IV-B e MUSIC IV-BF (derivati chiaramente da MUSIC IV)
creati alluniversit di Princeton, e, partendo da questi due programmi, Barry Vercoe svi-
lupp MUSIC 360 (1969), MUSIC 11 (1973) e Csound (1986), un linguaggio ancora oggi
largamente usato e a cui dedicheremo ampio spazio.
Citiamo ancora Cmusic, Cmix (che come Csound sono scritti in linguaggio C) e RTcmix
(versione real time del precedente, ancora usato). Tralasciando molti altri programmi e
venendo ai giorni nostri ecco gli ultimi discendenti delle intuizioni di Mathews:
Supercollider, Jsyn, Chuck e alcuni linguaggi di programmazione visivi come Max/MSP,
Pure Data e tutte le altre varianti, ufficiali o meno, dellambiente Max, fino a praticamen-
te qualsiasi sistema basato sullassemblaggio di moduli elementari (come ad esempio
Reaktor). Se questi nomi (o molti di essi) non vi dicono gran che, niente paura, nel corso
dellarticolo daremo tutti i riferimenti necessari, inclusi link e bibliografia.
La caratteristica che accomuna i linguaggi Music N passati e presenti il concetto di Unit
Generator (che dora in poi abbrevieremo in UG e che potremmo tradurre con Unit, o
Modulo, di Generazione).

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
5
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

Un UG una porzione di software che genera un segnale audio, o lo modifica, o ne con-


trolla le caratteristiche. Ogni UG pu avere degli ingressi e delle uscite, e pi UG possono
essere connessi tra loro tramite questi ingressi e uscite (esattamente come si faceva nei sin-
tetizzatori analogici modulari, come ad esempio il mitico Arp 2500).
Ogni linguaggio Music N ha una libreria pi o meno estesa di questi moduli.
Esempi classici di UG possono essere:
a) generatori di segnali audio, come oscillatori, lettori di campioni, generatori di rumore
b) generatori di segnali di controllo, come inviluppi o oscillatori in bassa frequenza (LFO)
c) modificatori di segnale, come filtri, ritardi o riverberi
d) routine di interfaccia con controlli esterni, ad esempio una tastiera MIDI
e) routine di lettura e scrittura di file su disco.
Le istruzioni di un tipico linguaggio Music N vengono scritte in due file di testo denomi-
nati rispettivamente orchestra e score (partitura).
Unorchestra la descrizione delle connessioni e delle relazioni che intercorrono tra vari
UG; un insieme coerente di UG che produce un qualche suono chiamato instrument
(strumento) e unorchestra pu contenere, naturalmente, pi strumenti.
La score contiene una lista di note ordinata temporalmente, ciascuna delle quali modifica
in qualche modo i parametri degli strumenti dellorchestra, e contiene inoltre una descri-
zione delle forme donda e di altre funzioni che possono essere utilizzate dagli strumenti.
Come abbiamo detto orchestra e score sono generalmente due file separati, ma in alcuni
linguaggi possono essere accorpati in uno solo, e il secondo serve a suonare il primo.
Facciamo un esempio concreto di orchestra e score utilizzando il linguaggio Csound; le
quattro righe che seguono definiscono una semplice orchestra (non completa in ogni det-
taglio, ma sufficiente per il nostro scopo):

instr 1

a1 oscil p4, p5, 1

out a1

endin

Vediamo passo passo cosa succede: in Csound gli strumenti debbono avere un numero
che li distingua, e nella prima riga questa orchestra definisce lo strumento 1:

instr 1

Nella seconda riga abbiamo lUG (o opcode) oscil, che (come il nome suggerisce) un
oscillatore. Alla sinistra di oscil abbiamo il nome di una variabile, a1, destinata a contene-
re il suono generato da oscil. Alla destra di oscil abbiamo lampiezza, la frequenza e la
forma donda delloscillatore, che sono, rispettivamente, p4, p5 e 1:

a1 oscil p4, p5, 1

p4 e p5 ci dicono che ampiezza e frequenza sono il quarto e quinto parametro che tro-
veremo nelle note della score, e 1 indica che la forma donda sar contenuta nella tabel-
la 1 specificata sempre nella score (vedremo tra poco cosa significa tutto ci).

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
6
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

Segue un altro UG, o opcode, che si chiama out che ha lo scopo di mandare alluscita (lal-
troparlante, o un file WAV su disco, dipende da come configuriamo Csound) il contenuto
di a1, ovvero la nota suonata da oscil:

out a1

con questa riga come se connettessimo luscita di oscil con lingresso di out, e la varia-
bile a1 pu essere considerata il cavo che collega i due opcode.
Lultima riga ci dice che la definizione dello strumento terminata:

endin

In figura 3 vediamo come appare questa orchestra se la trasformiamo in un diagramma di


flusso, ovvero in uno schema grafico che ci fa vedere le interconnessioni tra i moduli.

fig 3 - Diagramma di flusso

Maggiori informazioni sui digrammi di flusso le potete trovare nel quarto capitolo de Il
Suono Virtuale di Bianchini-Cipriani (cfr. la bibliografia di Csound, pi sotto)
Se siete sopravvissuti fino a qui possiamo vedere un esempio di score da applicare allor-
chestra appena descritta:

f1 0 4096 10 1

i1 0 1 4000 220

i1 1 1 12000 330

i1 2 2 32000 440

La prima riga serve a definire la forma donda da inserire nella tabella 1, non staremo a descri-
vere i dettagli, ci baster sapere che con questo codice definiamo unonda sinusoidale.
La seconda riga:

i1 0 1 4000 220

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
7
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

serve a far suonare una nota allo strumento definito in orchestra. La riga ha 5 elementi,
ovvero 5 parametri. Il primo parametro indica il numero dello strumento da far suonare, e
i1 significa strumento numero 1. Il secondo parametro indica il tempo (in secondi) di ini-
zio della nota: la nostra nota inizia al secondo 0, cio immediatamente. Il terzo parame-
tro ci d la durata della nota in secondi: 1 secondo. Il quarto parametro il famoso p4
che abbiamo incontrato nella seconda riga dellorchestra, ed lampiezza delloscillazio-
ne, ovvero il volume del suono che udremo. Questa ampiezza pari a 4000, e siccome
lampiezza massima in Csound circa 32000, significa che la nota suoner piuttosto
piano. Lultimo parametro p5, ovvero la frequenza, che in questo caso di 220 Hertz,
che corrispondono al La sotto il Do centrale.
La terza riga:

i1 1 1 12000 330

ci d la nota successiva, che suona al secondo 1, dura un secondo, ha unampiezza di


12000 ( un mezzoforte) e una frequenza di 330 Hertz.
La quarta riga descrive una nuova nota, i cui parametri vi lasciamo decifrare come eserci-
zio. In figura 4 c la rappresentazione in notazione tradizionale di quello che otteniamo
quando facciamo eseguire questa coppia di orchestra e score da Csound.

fig 4 - Dalla score alla partitura

Una bella fatica per suonare tre note! Ma naturalmente per poter controllare il suono in
ogni dettaglio necessario specificare ogni dettaglio. Bisogna tenere presente comunque
che sono stati sviluppati dei programmi per compilare le score secondo delle macro istru-
zioni, e non quindi sempre necessario inserire a mano ogni singola nota; vedremo
qualche esempio tra poco, quando parleremo pi diffusamente di Csound.
E arrivato infatti il momento di dare unocchiata a quali sono i linguaggi per la computer
music disponibili oggi...

Lo stato dellarte
Come abbiamo gi detto, per chi volesse cimentarsi nella programmazione per la compu-
ter music c solo limbarazzo della scelta, e per tutte le tasche, da 0 a 10.891 dollari (il
prezzo di un sistema Kyma/Capybara espanso al massimo).
Vediamo quindi le caratteristiche di due tra i pi importanti linguaggi diponibili:

Csound
Disponibile su http://www.csounds.com
Sistemi operativi: Windows, Mac OSX, Mac OS 9, Linux
Prezzo: free

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
8
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

Di questo linguaggio, creato da Barry Vercoe nel 1986, abbiamo gi parlato ripetutamen-
te nei precedenti paragrafi. E uno dei linguaggi pi antichi e venerabili oggi disponibi-
li. E usatissimo nelle universit (soprattutto statunitensi), nelle scuole di musica e anche
in diversi conservatori italiani. Per la sua struttura molto chiara sicuramente uno stru-
mento prezioso per imparare i fondamenti della sintesi e dellelaborazione del suono.
La sua comunit di utenti molto estesa, ed esistono migliaia di programmi scritti per
Csound e disponibili in rete.
Come abbiamo visto pi sopra i programmi in Csound constano di unorchestra in cui ven-
gono definiti gli strumenti virtuali e una score che contiene la lista di note da far suo-
nare a questi strumenti. In realt il concetto di nota piuttosto limitante, perch possi-
bile costruire strumenti molto complessi la cui score pu essere costituita da ununica nota
che fa partire il processo, cos come possibile, ad esempio, realizzare un programma di
sintesi granulare in cui le note della score sono i singoli grani, cio delle unit molto pi
piccole di quello che noi percepiamo come nota. A questo proposito bisogna aggiun-
gere che esistono decine di programmi di aiuto alla composizione in Csound. Questi
programmi permettono di definire graficamente o algoritmicamente le score, e possono
generare migliaia di note con pochi clic del mouse o poche linee di codice. A titolo di
esempio potete vedere in figura 5 una schermata del programma grafico Cecilia per lela-
borazione di partiture Csound.

fig 5 - Cecilia

Questo programma scaricabile gratuitamente a partire dal sito di riferimento


www.csounds.com (che praticamente il punto di partenza per qualsiasi cosa riguardi

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
9
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

Csound in rete). Sempre su questo sito ci si pu iscrivere alla mailing list (molto utile), si
possono scaricare decine di tutorial ed esempi, si pu leggere le-zine dedicata a Csound
che contiene moltissimi articoli interessanti e molto altro ancora.
Concludiamo questo capitolo con una breve bibliografia sul programma:

Riccardo Bianchini e Alessandro Cipriani - Il Suono Virtuale - Ed. ConTempoNet


http://www.virtual-sound.com
E un testo introduttivo alla computer music e al linguaggio Csound che, pur partendo
dalle basi, molto approfondito, e contiene una serie di esempi in Csound che illustrano
la teoria e la pratica di ogni tipo di sintesi ed elaborazione del suono. Esiste sia in versio-
ne italiana che inglese, ed stato adottato, oltre che in diversi conservatori e scuole di
musica in italia, anche in universit e scuole all'estero.

Richard Boulanger (curatore) - The Csound Book - Ed. MIT Press


http://www.mitpress.com
E un libro corale, scritto da alcuni tra i massimi esperti di Csound ed costituito da 32
capitoli che affrontano i pi svariati concetti teorici e pratici intorno al programma. Ci sono
inoltre 2 CDRom pieni di applicazioni interessanti ed articoli supplementari. E un testo
vivamente consigliato a chi gi ha fatto i primi passi con Csound e vuole approfondire la
programmazione e le diverse tecniche di sintesi.

Max/MSP
Disponibile su http://www.cycling74.com
Sistemi operativi: Windows XP, Mac OSX
Prezzo: 495 dollari
E attualmente il programma di riferimento di molti musicisti elettronici di area colta e non
(un nome per tutti: Aphex Twin), e nella sua prima versione stato realizzato allIRCAM
da Miller Puckette alla met degli anni 80, come programma di controllo del sistema 4x,
un grosso hardware dedicato alla sintesi del suono progettato da Giuseppe Di Giugno.
Inizialmente era utilizzato quindi per linterazione e il controllo di un macchinario esterno,
cio era uno di quei programmi che allinizio di questo articolo abbiamo definito di tipo
3. Max stato il primo esempio (finora insuperato quanto a flessibilit e potenzialit) di
linguaggio visuale per la musica. In Max i moduli, le funzioni, sono delle scatolette che
vengono collegate tra loro e che si passano i dati attraverso i collegamenti. Un program-
ma Max si chiama patch ed ha laspetto che potete vedere in figura 6.

Nelle sue prime versioni Max era in grado solo di comunicare con strumenti esterni via
MIDI o di scrivere dei file di testo su disco, ma con laumentare della velocit dei compu-
ter stata creata unestensione, denominata MSP (cio Max Signal Processing), in grado
di generare suoni in tempo reale e differito. Questa estensione costituita da centinaia di
nuove scatolette che corrispondono ad altrettanti UG.
Negli ultimi anni poi una nuova estensione, Jitter, permette al programma di elaborare
anche grafica e video, diventando cos unapplicazione utilissima ai videomaker e VJ pi
sperimentali. Come se non bastasse, nelle ultime versioni possibile realizzare nuovi
moduli programmando direttamente (allinterno dellambiente Max) in Java e in Javascript,
e questo fa s che il programma abbia sia i vantaggi della programmazione visiva sia quel-
li della programmazione testuale. In pratica tutti e quattro i tipi di linguaggio di cui abbia-
mo parlato allinizio sono ora contenuti in Max.

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
10
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

fig 6 - Una patch Max/MSP


(Per inciso questa una piccola patch che genera score per Csound).

Lunico difetto di Max MSP che costa 495 dollari (pi altri 395 se volete anche Jitter),
ma per fortuna esistono dei programmi molto simili (anche se meno potenti) disponibili
gratuitamente in rete: Pure Data realizzato da Miller Puckette (lautore del primo Max) e
Jmax, prodotto allIRCAM.
Non esistono al momento libri interessanti su Max MSP, i manuali e i tutorial forniti con il
programma sono comunque eccellenti.
Una breve introduzione a Max MSP (realizzata dal sottoscritto) si trova nel libro Il Suono
Virtuale, di Bianchini Cipriani (citato pi sopra), ed anche pubblicata integralmente nel
sito http://www.virtual-sound.com
Ci sono comunque diversi link che vale la pena di visitare:

http://www.cycling74.com
E il sito della software house che produce attualmente Max. Qui possibile scaricare una
demo perfettamente funzionante per 30 giorni. Ci sono link molto interessanti ed pos-
sibile iscriversi allindispensabile mailing list.

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
11
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

http://www.maxobjects.com
Per Max MSP sono stati scritti centinaia, se non migliaia, di moduli esterni: questo sito
tenta di catalogarli tutti. Quasi tutti questi moduli sono utilizzabili gratuitamente.

http://crca.ucsd.edu/~msp/software.html
Da qui possibile scaricare il software open source Pure Data di Miller Puckette.

http://freesoftware.ircam.fr/
Qui potete trovare Jmax (e altre cose interessanti).

Altri linguaggi
Ecco un po di link ad altri linguaggi che ci sembrano importanti:

Supercollider
E un linguaggio Object Oriented testuale potentissimo, in cui non esiste pi la rigida divi-
sione tra orchestra e score. Non semplice da usare, ma permette di fare cose difficil-
mente realizzabili con altri programmi.
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/6

Jsyn
Estensione Java che permette di realizzare programmi di sintesi visualizzabili con un browser.
http://www.softsynth.com/jsyn/

Chuck
Linguaggio di programmazione audio on the fly lultima frontiera dellimprovvisazio-
ne musicale su laptop. E un linguaggio testuale che pu essere modificato in esecuzione,
e chi lo usa improvvisa scrivendo codice in concerto (!).
http://chuck.cs.princeton.edu/ (c anche un divertente video di un concertoimprovvisazione)
E sempre a proposito di live coding un sito essenziale :
http://www.toplap.org

Kyma/Capybara
Uno dei pochissimi linguaggi di sintesi che ha bisogno di una scheda esterna. A detta di
chi lo usa bellissimo e potentissimo. Purtroppo il sistema tuttaltro che economico, e
la spesa minima da affrontare di 3470 dollari. Non resta che sperare che i bravi pro-
grammatori della Symbolic Sound (la casa che produce la Kyma) ne realizzino quanto
prima una versione nativa per computer tradizionali.
http://www.symbolicsound.com

Reaktor
Non credo che questo programma abbia bisogno di presentazioni. Lo includiamo qui per-
ch anche in questo caso abbiamo a che fare con moduli che vengono connessi tra loro
(esattamente come gli UG dei programmi Music N di Mathews). In realt, pi che di lin-
guaggio di programmazione musicale, potremmo parlare di editor di strumenti ed effetti
virtuali. Reaktor ha lindubbio vantaggio (rispetto ad esempio a Max MSP) di permettere
la produzione di suoni belli con poco sforzo (belli per chi ama sonorit piene e grasse)
e di rendere molto semplice la costruzione di un sintetizzatore, con i pannelli di controllo
che si assemblano da soli mentre noi connettiamo i moduli. Ma proprio questa facilit

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
12
per gentile concessione dellEditore Mixxnow Publishing
Musica Elettronica e Sound Design - volume 1 - Materiale di supporto

di utilizzo ne penalizza la flessibilit: ci sono moltissime cose che non si possono fare con
Reaktor. Dalla versione 5, tuttavia, con lintroduzione di una nuova libreria di moduli a
basso livello denominata Core Level, il programma ha fatto un notevole passo avanti
quanto a potenzialit. Staremo a vedere.
http://www.nativeinstruments.com

Altri link utili


Questa una serie di link utili ad approfondire gli argomenti che abbiamo trattato:

http://nosuchmedia.com/tjt/plum.html
Qui trovate la descrizione di tutti, o quasi, i linguaggi per la computer music.

http://www.softsynth.com/links/languages.html
Utile pagina di link a molti linguaggi per la computer music, divisi per piattaforma.

http://www.flexatone.net/algoNet/
Un sito che elenca molti programmi di composizione algoritmica, ovvero di aiuto alla com-
posizione, attualmente disponibili.

http://arts.ucsc.edu/ems/music/equipment/computers/history/history.html
http://www.harmony-central.com/Computer/synth-history.html
http://music.calarts.edu/~eric/cm.html
Alcune pagine che tracciano una breve storia della computer music:

http://www.wikipedia.org/
La Wikipedia come sempre uno strumento prezioso. Cercate (nella sezione inglese) le
voci Audio programming language e Computer-generated music.

Bibliografia
Concludiamo con una brevissima bibliografia (a cui vanno aggiunti i due testi su Csound
citati sopra):

Charles Dodge e Thomas Jerse - Computer Music - Ed. Shirmer Books


Contiene indicazioni preziose per capire le tecniche di sintesi ed elaborazione del suono.
Non legato a nessun programma in particolare, ma con un po' di esperienza si possono
tradurre gli algoritmi e le tecniche illustrate in linguaggi tipo Csound o MaxMSP o
Supercollider.

Curtis Roads - the computer music tutorial - Ed. MIT Press


Una bibbia di 1234 pagine che tratta praticamente tutti gli aspetti del rapporto tra
musica e computer. Nonostante la mole non pu approfondire gli argomenti pi di tanto,
ma comunque un utilissimo testo di riferimento.

--------------------

Maurizio Giri, compositore, vive e lavora a Roma.


La sua homepage http://www.giri.it

I linguaggi di programmazione per la Computer Music di Maurizio Giri


pubblicato sulla rivista Strumenti Musicali - Gennaio 2006
13
per gentile concessione dellEditore Mixxnow Publishing