Intervista con Andrea Valle
Nuovo appuntamento con le nostre interviste. Stavolta tocca ad Andrea Valle, musicista, compositore, ricercatore presso il Centro Interdipartimentale di Ricerca sulla Multimedialità e l’Audiovisivo e docente nel corso di laurea in Multimedialità e Discipline Artistiche, Musicali e dello Spettacolo (MultiDAMS), entrambi dell’Università di Torino.
Conosco Andrea da diversi anni, sin dai tempi della prima edizione del volume Audio e Multimedia. In particolare ho sempre ammirato la sua capacità di sperimentare nuove tecnologie in ambito sonoro, nonchè la volontà di condividere la propria esperienza tramite un’attività di pubblicazione non comune in questo ambiente.
Andrea è stato la prima persona a parlarmi di SuperCollider, uno degli ambienti di sviluppo audio più interessanti degli ultimi anni, un software dalle potenzialità espressive immense, che purtroppo rimane sconosciuto a molti sound designer moderni. Questa intervista nasce proprio con l’intento di conoscere meglio le caratteristiche di questo stupendo strumento, per poi muoversi inevitabilmente (e fortunatamente) in territori sonori molto più profondi e interessanti.

Andrea, puoi descriverci brevemente cosa ti ha spinto a studiare un software come SuperCollider? Quali sono le caratteristiche che ti hanno interessato maggiormente?
Musicalmente, i miei riferimento sono due: l’ambito improvvisativo di area rock sperimentale/free jazz e la composizione algoritmica lato sensu (da Cage a Nancarrow a Xenakis). Rispetto a questo secondo punto, mi sono avvicinato alla programmazione perché volevo sperimentare procedure formali per la composizione strumentale. Ho iniziato a lavorare con Csound, e – come usuale in Csound – mi sono trovato a imparare un altro linguaggio (nel mio caso: Python) per generare scores, cioè le liste di eventi che controllano la sintesi del segnale. Tempo differito, assenza di interfaccia grafica, assenza di costrutti di controllo del flusso dell’informazione: Csound, per quanto benemerito, aveva dei limiti per me di rilievo. Visti i miei interessi, mi sono sempre sentito a disagio con i linguaggi a diagrammi tipo Max/MSP, PD, CPS (che noia tirare le righe con un mouse, e che macchinoso scrivere un condizionale), e dunque per me non erano una soluzione.
Un giorno (credo nel 2002) ho visto il mio amico Hairi Vogel che usava SuperCollider per scrivere codice, eseguirlo in tempo reale, generare interfacce grafiche, connettersi in rete con altri computer, e il tutto per di più suonava benissimo. Mi sono comprato un mac usato apposta…(la versione 2 girava solo su Mac Os9). In realtà, il percorso di avvicinamento è stato lungo, non credo di aver usato veramente SuperCollider prima del 2005/06 (sono lento di natura).
SuperCollider ha fondamentalmente tutte le caratteristiche che mi servono: è un linguaggio di alto livello, interattivo, a oggetti, efficiente rispetto alla generazione di audio in tempo reale, dotato di una quantità enorme di unità di sintesi, ha una comunità attivissima e di alto livello. Tra l’altro, ne ho fatto anche degli usi piuttosto eccentrici: ad esempio, lo usato come linguaggio di scripting per generare partiture musicali.
Comunque, non ho ancora risolto definitivamente il problema dell’uso del calcolatore rispetto all’altro ambito che mi interessa, l’improvvisazione. Mi sento ancora molto più a mio agio con il basso elettrico (anche se ho un progetto interessante in proposito).
Un consiglio per chi vuole iniziare a lavorare con SuperCollider: quali sono le conoscenze e/o le skill richieste? Quale è la curva di apprendimento del software?
La computer music (per quanto vago sia il termine) richiede di per sè parecchie competenze: musica (qualsiasi sia la musica che fai), acustica (devi sapere cosa è un’onda), teoria del segnale digitale (devi sapere cosa vuol dire rappresentarla), musica elettronica (l’idea di patching nasce dall’ambito analogico, così come le tecniche di sintesi). In SuperCollider si devono aggiungere competenze di programmazione a oggetti, oltre ad aver chiaro che cosa si intende con architettura di rete. SuperCollider prevede infatti due componenti, l’interprete del linguaggio e il server audio. Si programma nel linguaggio e dall’interprete che interpreta il codice scritto si controlla il server audio. Insomma, le conoscenze non sono poche. Soprattutto, uno deve aver chiaro che non si può ovviare alla questione della programmazione e della scrittura del codice. Tra l’altro c’è anche un falso mito che spesso allontana da SuperCollider, quello che assume che la GUI sia più comprensibile o facile o musicale della scrittura. Ma va sfatato.
In ogni caso, la curva è – tipicamente – piuttosto ripida, soprattutto all’inizio: non è agevole tenere insieme tutti i pezzi e le loro relazioni. Anche perché ci sono molte possibilità diverse per affrontare i problemi compositivi: ad esempio, mi vengono in mente quattro modi differenti per gestire lo scheduling degli eventi nel tempo attraverso SuperCollider.
In più, visto che si programma, non ci sono scorciatoie: o uno è intenzionato a capire quello che fa, o è meglio lasciar stare. È per quello che non amo i tutorial di SuperCollider che lì per lì ti stupiscono con effetti (audio) speciali: è inutile, il passaggio che uno deve fare, quantomeno dalla mia limitata e personale esperienza, è quello che ho descritto nel manuale italiano.
Ma quando uno supera lo scoglio iniziale è un vero piacere lavorare. La documentazione è completa, e sia essa che il codice sorgente sono agevolmente accessibili dall’editor. Diventa estremamente semplice interfacciarsi con il programma e il linguaggio. Inoltre, lo consapevolezza analitica che consegue dall’esercizio con SuperCollider per me è stata molto importante.
Sei impegnato in un’attività di divulgazione di SuperCollider non solo come utente ma anche come docente, hai organizzato workshop e scritto un manuale. A chi consiglieresti di utillizzare SuperCollider e in quali ambiti?
Non amo l’apologetica, e dunque cerco di non fare apostolato. Ci terrei però a dire che consiglio SuperCollider potenzialmente a tutti, nel senso che non credo nella divisione del lavoro: quella cosa per cui ad esempio se sei un musicista non sei un programmatore. Come diceva Jean Tinguely a Niki de Saint Phalle, il sogno è tutto, la tecnica è niente. Detta da Tinguely, è una frase impressionante. Aggiungeva Tinguely: la tecnica si può apprendere. Questo è il punto. Ognuno costruisce la propria tecnica in funzione dei propri problemi e e delle proprie necessità.
Consiglierei SuperCollider a tutti quelli che sono orientati ad una prospettiva macchinale più che strumentale. Lo strumento lavora secondo una logica del tipo stimolo-risposta: premi un pulsante, succede qualcosa. La macchina è un soggetto a cui è delegata una competenza, fa qualcosa con un certo grado di autonomia. Tipicamente i linguaggi a diagrammi (à la Max/MSP, PD, etc.) sono più adatti per la rapida prototipazione di relazioni tra unità di elaborazione e per logiche di tipo strumentale. SuperCollider è un’occasione straordinaria per chi è interessato alla descrizione di processi e alla generalizzazione di sistemi e procedure. In generale, lo consiglierei per installazioni, performance dal vivo, progetti multimediali; non lo consiglierei a chi utilizza una logica di tipo concretistico, ad esempio montando l’audio sul modello del video o a chi utilizza molti software in maniera approssimativa, secondo una logica del basta che funzioni (logica contro la quale non ho proprio nulla da dire, ma che con SuperCollider è soltanto frustrante).
Puoi descrivere alcune delle opere che hai realizzato tramite SuperCollider?
Ho utilizzato SuperCollider per progetti molto diversi.
In primo luogo, mi è servito per implementare GeoGraphy, il mio sistema per la composizione algoritmica, che è sostanzialmente basato su un’idea di sequencing non-lineare. Sequenze di oggetti sonori sono generate a partire da grafi. Questi grafi sono distribuiti in uno spazio esplorabile, e l’esplorazione modifica le sequenze stesse. Inizialmente implementato in Python e usato per il tempo differito, attraverso SuperCollider può operare in tempo reale. Si può controllare attraverso il codice stesso (tipo live coding), attraverso la GUI e attraverso un suo micro-linguaggio di scripting.
Attualmente, insieme a Mattia Schirosa e Vincenzo Lombardo, stiamo estendendo il sistema in modo da utilizzarlo per la simulazione di paesaggi sonori a partire da un database di campioni.

Esempio di GUI di GeoGraphy
Uso SuperCollider anche per progetti non legati alla musica elettronica dal vivo. Uno dei miei problemi con la composizione strumentale radicalmente algoritmica (non mi interessa la composizione computer-assisted) è sempre stato lo scoglio rappresentato dalla notazione. Un sistema integrato per la composizione algoritmica deve includere la generazione di notazione, pena una radicale asimmetria di flusso nel processo composizione: rapidità macchinale nella generazione dei dati, lentezza manuale nella trascrizione in notazione. Ho risolto il problema attraverso l’idea di linguaggio di incollatura: un linguaggio che è in grado di scriptare altre applicazioni e di tenerne insieme i risultati. Dopo Python, ho usato SuperCollider, chiaramente per la sua vocazione audio, come gluing language. Nelle Lamine d’Antigone per 6 voci, SuperCollider prima chiede a Praat di analizzare un file audio contenente una voce che legge in greco un brano dall’Antigone, quindi importa i dati d’analisi, li elabora per ottenere dati di controllo per le sei voci, infine genera un file contenente codice di LilyPond e lo compila con lo stesso programma.
Il risultato è notazione tradizionale. SuperCollider incolla le diverse applicazioni (come potrebbe fare Python) e in più mi permette di sonificare i dati per capire che succede (e, tra l’altro, anche di visualizzarli). Nelle Scialoje per violoncello solo l’idea è stata quella di tenere un log della mia attività di scrittura sulla tastiera, a partire da un insieme di poesie di Toti Scialoja. In sostanza, apro un documento di SuperCollider e scrivo una poesia. Ho definito diversi schemi di mappatura tra caratteri e altezze: la scrittura della poesia sulla tastiera diventa una vera esecuzione musicale dal vivo, e mi permette ovviamente di controllare cosa succede in termini di risultato musicale complessivo. I dati di log sono quindi stati utilizzati per generare la notazione attraverso Nodebox.
Uno dei pezzi delle Lamine è sul mio myspace (per le Scialoje si attendono ancora volontari coraggiosi…). Le due partiture sono qui: http://www.fonurgia.unito.it/andrea/wikka.php?wakka=InstrumentalWorks.
Un paper sull’idea di composizione algoritmica integrata è qui: http://nime2008.casapaganini.org/documents/Proceedings/Posters/253.pdf. Un report interessante rispetto a LilyPond è qui: http://valentin.villenave.info/The-LilyPond-Report-10.
Attualmente sto sviluppando un progetto che prevede di utilizzare SuperCollider per controllare un insieme di percussioni motorizzate. Ogni percussione include un risonatore eccitato in vario modo da un motorino DC. Il progetto a cui sto lavorando si chiama Rumentarium e intuibilmente utilizza materiali di scarto e di riciclo. Una delle idee di partenza è quella di costruire hardware sonoro molto molle, di rapida prototipazione, una sorta di organologia residuale, estendendo l’improvvisazione dall’esecuzione dello strumento alla sua costruzione.

Setup completo di Rumentarium. Super Collider controlla Arduino, che a sua volta controlla gli strumenti.
Il setup prevede 18 percussioni i cui motorini sono controllati da tre microcontroller Arduino. Attraverso una libreria che definisce un’interfaccia tra Arduino e SuperCollider, posso utilizzare un controller MIDI per gestire live la performance. A tal fine ovviamente basterebbero in analogico dei potenziometri direttamente connessi ai motorini, ma attraverso la dimensione computazionale le possibilità di controllo si moltiplicano. Così, passando attraverso SuperCollider posso agevolmente fare un log della mia performance, per poi rieseguirla in un secondo tempo in automatico. Posso definire algoritmi che controllino le percussioni. Posso entrare in SuperCollider con il basso elettrico o con altri segnali (una stessa registrazione di ciò che sta succedendo acusticamente), analizzare il segnale in input, e utilizzare i dati risultanti dall’analisi per controllare il setup percussivo. In questo momento sono in fase di sperimentazione. C’è un po’ di documentazione qui: http://www.flickr.com/photos/vanderaalle/sets/72157612060940724/. Non di buona qualità (soprattutto audio), ma alcuni video sono sul mio canale YouTube.
Ci terrei anche a ricordare il progetto VEP, dedicato alla ricostruzione in realtà virtuale del Poème électronique. È un progetto europeo, al quale ho lavorato con Vincenzo Lombardo (che ne è stato il direttore). Nell’installazione risultante lo spettatore, attraverso visione stereoscopica e audio binaurale, può muoversi nello spazio del Padiglione Philips mentre ascolta le tre tracce del Poème varèsiano muoversi lungo l’insieme degli altoparlanti. Tutta l’implementazione del sistema di audio binaurale in tempo reale è stata realizzata in SuperCollider da Stefan Kersten.