Il V2_Institute for the Unstable Media di Rotterdam è riconosciuto internazionalmente come uno dei principali centri per la ricerca e le pratiche legate alla new media art ed alla sperimentazione tecnologica e artistica, e si avvale di numerose occasioni e laboratori per originare ampie discussioni sui tempi più attuali e proporre gli argomenti più interessanti della scena creativa da tutto il mondo.

Lo scorso 13 dicembre 2007, il centro di ricerca V2_ ha presentato l’evento Test_Lab: Live_Coding. Il codice inteso come interfaccia per l’improvvisazione in tempo reale e le performances tra artisti in rete. Il Live Coding permette cioè un controllo espressivo sul codice del software in tempo reale durante gli eventi e consente l’improvvisazione live attraverso l’uso del codice come interfaccia per l’interazione tra differenti performers, nonchè tra live coders e pubblico.

Test_Lab: Live_Coding è stata l’occasione per proporre alcune performances ed esperienze reali di linguaggi di programmazione Live Coding, dibattiti e presentazioni sulla tecnica e l’estetica del Live Coding, oltre ad un esperimento di Realtà Aumentata live coded. Per capire qualeè l’attività del Test Lab all’interno di V2 e di com’è nato questo evento, e quali siano gli sviluppi di questa tecnica e teoria, relativamente recente, ho avuto l’occasione di parlare con due degli organizzatori: Michel van Dartel, project manager e assistente curatore al V2_, ed Artem Baguinski, che collabora al V2_Lab dal 2000 come ingegnere del software, lavorando con artisti in residenza, curando laboratori ed alcuni progetti personali.

.

Silvia Scaravaggi: Che tipo di attività svolge e supporta il Test_Lab?

Michel van Dartel: L’idea centrale del Test_Lab è quella di creare un’ambientazione informale, una piattaforma, per gli artisti e gli sviluppatori che vogliano testare i loro ultimissimi lavori (aRt&D) di ricerca e sviluppo artistico [artistic Research and Development]. Per ogni edizione invitiamo autori che lavorano su una specifica tematica aRt&D, a portare prototipi al Test_Lab per una dimostrazione live e, preferibilmente, a far sì che il pubblico possa provarli ed interagire. In questo senso, il Test_Lab funziona sempre in due direzioni: da un lato gli artisti utilizzano l’audience come “pannello di prova” per ricevere feedback sulle loro idee e sulle loro opere, prima di portarle nei musei o nei festivals, o prima di sviluppare un nuovo stadio dell’opera stessa; al contempo, il pubblico del Test_Lab si aggiorna sulle ultime novità in campo artistico e si diverte a sperimentare ed interagire.

A proposito del format che usiamo per gli eventi del Test_Lab, ci piace sperimentare molto e far sì che il formato dipenda dal tipo di proposta o da chi desideriamo invitare. In passato, abbiamo portato il pubblico nelle strade a giocare, abbiamo tenuto concerti, performances di Second Life, performances dj, jam-sessions del pubblico; abbiamo portato il Test_Lab all’Erasmus Medical Center, ed incluso nel programma la moda, il teatro e vari mini-workshops.

Per ogni edizione del Test_Lab sviluppiamo un tema diverso, attraverso cui cerchiamo di giungere a quelli che pensiamo siano gli sviluppi e gli argomenti importanti nel panorama aRt&D attuale. Inoltre, i contenuti provengono dai dibattiti che si tengono al V2_Lab; questioni che emergono da progetti su cui stiamo lavorando, tecnologie ed approcci che pensiamo siano interessanti o elementi di cui vorremmo sapere di più in previsione di un futuro evento al V2_. Nelle passate edizioni, ci siamo concentrati su materie ampie come le tecnologie per le arti performative, la tecnologia nella moda, la nozione di gioco nelle arti elettroniche, ma anche su temi specifici come le interfacce audio fisiche e più recentemente sul Live Coding.

.

Silvia Scaravaggi: In che modo vi siete fatti coinvolgere dall’esperienza del Live Coding? Come siete arrivati dal V2_Lab all’evento Test_Lab?

Michel van Dartel: Test_Lab: Live_Coding è un tipico esempio di come un tema del Test_Lab si sia evoluto dalle discussioni del V2_Lab. Per anni Artem è stato coinvolto nel Live Coding ed ha tenuto aggiornati gli altri membri del Lab con informazioni sul paradigma del software e su quanto esso sia rivoluzionario nel suo approccio. Ma solo recentemente abbiamo incontrato alcune difficoltà nello sviluppo di uno dei nostri progetti, una collaborazione tra Rnul , Carla Mulder e V2_: così che abbiamo deciso di trasformarlo in un argomento per il Test_Lab. Il problema che il team progettuale aveva incontrato riguardava la realizzazione di un ambiente di Realtà Aumentata che fosse più dinamico, che potesse così essere applicato alle performances teatrali d’improvvisazione. Artem, logicamente, indicò le tecniche del Live Coding come una possibile soluzione al problema. Così decidemmo di presentare il progetto, ed il primo stadio verso l’utilizzo del Live Coding, al pubblico del Test_Lab, all’interno di un contesto che presentasse altri progetti e performances Live Coding. In questo modo speravamo di ottenere una risposta che fosse a beneficio del futuro sviluppo dell’idea progettuale ed, allo stesso tempo, intendevamo presentare al pubblico il paradigma del software Live Coding.

Silvia Scaravaggi: Come si è sviluppato l’evento? Che tipo di progetti e performances avete presentato durante “Test_Lab: Live_Coding” ?

Michel van Dartel: La serata è stata inaugurata da Florian Cramer del Piet Zwart Institute, con una presentazione molto chiara e divertente sulla storia del Live Coding. Oltre ad introdurre, nello specifico, questa pratica, egli ha fatto riferimento alla filosofia del primo free jazz , per parlare poi dei primi compositori di musica elettronica, fino all’eccezionale lavoro in Live Coding di TOPLAP. A seguire un’audio performance Live Coding del collettivo Powerbooks Unplugged che ha introdotto prima il loro approccio e si è esibito poi in una bellissima performance unplugged dei loro Powerbooks, posizionati in ordine sparso tra il pubblico.

.

Dopo questa esibizione lo spazio è stato svuotato, per creare l’ambiente adatto ad una presentazione combinata degli interaction developers Rnul , dell’artista di teatro Carla Mulder e di Jan Misker e Jelle van der Ster del V2_Lab . Insieme hanno dimostrato il risultato di una settimana di prove e tentativi per applicare le tecniche Live Coding ad un ambiente di Realtà Aumentata. Il pubblico ha utilizzato occhiali 3D per vedere in tre dimensioni le proiezioni dell’istallazione AR, mentre Carla Mulder ha spiegato in che modo si è sviluppato il loro lavoro e come si era pensato di applicare queste tecniche nelle sue performance teatrali. In effetti, questa presentazione ha comportato in sé una performance teatrale, rendendo possibile un test efficace di quello che era stato sviluppato nella settimana precedente.

A seguire, abbiamo proposto una sessione parallela in cui il pubblico poteva scegliere se seguire dei mini-workshops sui linguaggi di programmazione Live Coding, SuperCollider tenuto dal PBUP, e Fluxus da Artem Baguinski, oppure se dedicarsi all’interazione con l’istallazione AR. La serata si è chiusa con qualche drinks e con l’audio performance molto ballabile, basata sull’ambiente Live Coding MAX/MSP, a cura di Susie Jae, aka Jean van Sloan .

Silvia Scaravaggi: In che modo tu, Michel, ed Artem avete collaborato alla realizzazione dell’evento? Come sono entrati in relazione i vostri diversi profili professionali e creativi?

Michel van Dartel: Sebbene io abbia curato il programma, Artem è stata la fonte principale delle informazioni durante la preparazione dell’evento. Innanzitutto mi ha dedicato un corso personale introduttivo sul linguaggio Fluxus e mi ha indirizzato ad un elenco di testi e siti fondamentali sul Live Coding. Artem si è poi focalizzato sul suo contributo per il Test_Lab, il mini-workshop sul Fluxus, ed io ho tenuto i contatti con Florian Cramer ed alcuni membri di TOPLAP (Alex McLean, Dave Griffiths, Adrian Ward e Julian Rohrhuber), per sviluppare un programma. Non tutti hanno partecipato all’evento, ma hanno contributo notevolmente alla realizzazione, fornendomi i giusti contatti. Per ogni decisione mi sono ovviamente consultato con Artem, in qualità di esperto della materia.

.

Silvia Scaravaggi: Quali sono stati i temi emergenti delle presentazioni e dei dibattiti?

Michel van Dartel: È curioso che tu li definisca emergenti, perché, in effetti, gli argomenti che sono emersi ci hanno sorpresi. Avevamo basato la serata sugli aspetti dell’improvvisazione live del Live Coding, e mi sarei aspettato un’ampia discussione sugli elementi legati a questo (ad esempio su quanto fosse essenziale l’utilizzo di “codice grezzo” durante le performances Live Coding). Invece, il dibattito si è fatto molto più serrato sulla definizione stessa di Live Coding. A detta di alcuni, le tecniche utilizzate per rendere dinamica l’esperienza di Realtà Aumentata nel demo di Rnul, Carla Mulder e V2_Lab, non possono essere definite Live Coding, perché gli elementi visivi sono performati live ma non generati dal vivo. Per altri, invece, questa esperienza è definibile come Live Coding, perché non c’è necessità di compilazione o rendering per rendere i cambiamenti dinamici nell’output del software.

Artem Baguinski: Il Live Coding non riguarda sempre la creazione di codice e media dallo zero assoluto: sebbene sia in ogni caso possibile partire da zero, spesso è possibile usare scripts prescritti così come altre risorse – textures, fonts, campionamenti ecc… La parte cruciale sta nel modo in cui si manipolano: una volta che hai iniziato ad editare il codice che utilizza queste risorse e ad eseguire la nuova versione del codice on-the-fly e on-stage, allora stai facendo coding live. In questo caso, ciò che è soggetto al live coding è più uno stato, un comportamento e non l’apparenza di taluni oggetti, ed è forse per questo che non è così immediato.

Michel van Dartel: Devo aggiungere che c’è stata un’ampia riflessione sulle differenze tra l’utilizzo di GUI e del Live Coding, ma forse Artem può chiarire meglio questo aspetto…

.

Artem Baguinski: Credo che dalla mia angolazione la discussione sia andata diversamente: mi sono ritrovato a parlare di alcuni strumenti frequentemente utilizzati nel Live Coding – ChucK , Fluxus e Supercollider – e dei vari aspetti di questi linguaggi e di GUI come aiuto per fare codice (sia esso live o no). Né l’uso di GUI, né della programmazione visiva (come in PureData, in Max/MSP o in StarLogo TNG [1]) è qualcosa di alieno dal Live Coding; è l’atteggiamento, il desiderio di rendere pubblico il processo del pensiero attraverso la disposizione del codice dietro i media, quello che conta.

Alcuni praticanti del Live Coding sono costantemente alla ricerca di modalità più tangibili per rappresentare, creare ed inserire algoritmi e poi linguaggi/editors di programmazione tradizionali basati sul testo. Alcuni esempi sono BetaBlocker [2] e Al-Jazari [3] di David Griffiths , e Rubik’s Cube DJ [4] di Douglas Edric Stanley .

[2]: (BetaBlocker): http://www.youtube.com/watch?v=-G8qDTYuhOM  

[3]: (Al-Jazari): http://www.youtube.com/watch?v=Uve4qStSJq4

[4]: (Rubik’s Cube DJ): http://www.youtube.com/watch?v=4_Ta6TIJTQQ

Potrebbero non essere approvati da TOPLAP come strumenti “ufficiali” di Live Coding, ma mostrano un esistente interesse per le alternative al testo semplice.

.

Silvia Scaravaggi: Mi piacerebbe approfondire l’argomento dell’esperienza Live Coding, parlando della sua filosofia e delle sue radici. Come funziona il Live Coding? Da dove viene?

Artem Baguinski: Il Live Coding consiste nello scrivere un programma di fronte al pubblico, mentre il programma che viene scritto è al contempo in esecuzione. Molto spesso il programma (ri)scritto genera o processa suoni o immagini – ” rich media“. Così quello che succede è che il performer ha una sorta di sistema che può generare o processare “media ricchi”, ed il modo in cui lo fa può essere specificato attraverso un certo programma. Il performer avvia, dunque, il sistema ed apre un programma per esso, o può iniziare da zero, attraverso un editor. “OK”, pensa, “voglio che questo o quello accada e lo voglio programmare così”; dunque egli lo scrive nel programma o modifica quello già esistente e lo fa partire. A questo punto l’audience ed il performer possono vedere o udire il risultato del programma che è appena stato scritto.

Può accadere che il programma non faccia esattamente quello che si voleva – a causa di un errore o di qualche incomprensione; oppure che il programma faccia esattamente quello, ma che il performer voglia immediatamente qualcosa di diverso, forse più complesso, ma sempre basato sull’idea originale. Così egli torna indietro all’editor e modifica il programma e lo fa ripartire e ripete il processo nel corso della performance, ancora e ancora…

Ora, per rendere questo più interessante per il pubblico, di solito si dedica attenzione affinché le transizioni tra la vecchia e la nuova versione siano graduali, oppure affinché il programma originale non si fermi mai veramente, ma solo si modifichi nel tempo. Diversi artisti usano vari strumenti per far sì che il Live Coding appaia una continua e coerente performance e non una serie di esperimenti. In pratica spesso non si parte proprio da niente, si usano frammenti di codice preparati, alcune idee provate, talvolta qualche library (codice che si utilizza senza che appaia nell’editor).

.

Michel van Dartel: Nei mini-workshops Jan-Kees van Kampen (dei Powerbooks Unplugged) ha illustrato questo chiaramente, partendo da un semplice tono puro (sinusoide) in SuperCollider, scrivendo il comando per il tono puro e qualche parametro tra parentesi per definire le sue variabili, ampiezza ecc… Dopo aver giocato un po’ con i parametri, cambiando l’altezza della tonalità e così via, ed aggiungendo altri comandi alla linea, introducendo manipolazioni temporali, il tono stesso si modifica in un’interessante sequenza ripetitiva. Jan-Kees ha spiegato che è questo che egli prepara per una performance; durante l’esibizione non scrive ogni suono da zero, ma prepara alcune linee di codice, copiandole semplicemente nell’editor avviato. Il passaggio di questi frammenti di codice già predisposti e la manipolazione dei parametri nei frammenti sono azioni per improvvisare con gli altri Live Coders o con chiunque stia interagendo.

Silvia Scaravaggi: Come si posiziona il Live Coding nella scena artistica contemporanea?

Artem Baguinski: Dal punto di vista teorico si posizione verso l’auto-critica, l’auto-definizione, l’auto-ricerca. C’è molta riflessione al momento: che cosa costituisce il Live Coding? È una forma d’arte autonoma, oppure è un’aggiunta stilistica alla tradizionale performance audio-video? Qual è l’importanza di rendere il codice visibile, ed ancora, è importante la forma che il codice assume sullo schermo? Che cosa significa per l’artista e per il pubblico?

Dal punto di vista praticoè qualcosa a cavallo tra sperimentazione e audacia. La discussione teorica proviene dalla pratica e dalla rivalutazione dell’esperienza stessa e dalle sue motivazioni, ma non limita quello che le persone attualmente fanno. Si può dire che la teoria del Live Coding – se ne esiste una – sia descrittiva più che prescrittiva; essa analizza quello che avviene e i tentativi di reinventare se stessa di conseguenza, piuttosto che dare delle linee guida su come dovrebbe essere esercitato il Live Coding.

.

Silvia Scaravaggi: In che modo il Live Coding modifica il ruolo del programmatore nell’approccio creativo?

Artem Baguinski: Nel contesto della performance non sono certo che questo accada. Ci sono artisti che possono scrivere codice e praticare arti performative; entrambe le attività sono tentativi creativi ed alla fine alcuni di questi artisti finiscono con il combinare le due cose, creando i loro strumenti o facendo coding durante le performance, o entrambe le cose. Quindi, più che “cambiare” il loro ruolo, il Live Coding consente loro di demistificarlo: “Guarda, sto programmando in questo momento. Ed è così che lo faccio, ed è così che appare il mio codice, ed è così che funziona”. Il tutto allo stesso tempo, in una completa e coerente performance aperta.

In ogni caso, quando al V2_Lab usiamo le pratiche di Live Coding in un processo artistico di produzione di realtà aumentata, credo che il nostro approccio, lo spirito degli ingegneri, si modifichi, diventi più diretto, immediato, grazie al feedback molto più rapido che sia noi che gli artisti otteniamo. La produzione di complesse installazioni elettroniche è sempre un processo iterativo di prova-errore-rivalutazione, e l’abilità di provare varie idee sul momento, così come appaiono nella sessione di brainstorming/improvvisazione; questo trasforma l’ingegnere in una sorta di interfaccia organica per la tecnologia o “attore aumentato”, a seconda della prospettiva.

Silvia Scaravaggi: Come descrivereste il tipo di interazione-interattività che il Live Coding è in grado di realizzare?

Artem Baguinski: Idealmente, quello a cui tendiamo è l’interazione tra l’ambiente fisico che circonda l’artista e il sistema del software, al livello molto profondo del codice che costituisce il sistema stesso. Ci sono segnali multipli di risposta in questo, perché l’input/output del sistema software lo connette all’ambiente, così come fa lo stesso sistema sensoriale dell’artista.

.

Silvia Scaravaggi: Che significato hanno nel Live Coding termini come improvvisazione, live performance ed interfaccia?

Artem Baguinski: Molti artisti o programmatori fanno arte con il codice del computer – basta guardare a runme.org o all’oscuro contesto dell’ obfuscated Ccode (un codice sorgente molto difficile da leggere e capire). Considero alcune di quelle forme artistiche una sorta di codice-poesia. L’arte basata sul codice è propriamente olistica: spesso la sua bellezza è soltanto apparente se vista a confronto con il panorama di un certo linguaggio o di sottocultura informatica. L’obfuscated Ccode può usare formati non convenzionali per rappresentare la struttura o alcune proprietà dell’algoritmo che lo stesso codice implementa, proprio come nella storia di “Alice nel Paese delle Meraviglie”. È necessario, dunque, capire il codice e spesso essere familiari con la cultura della programmazione, il suo folklore e i suoi miti, per vedere tutti i giochi nascosti in esso, i riferimenti e le analogie.

Creando il codice al momento e modificandolo mentre è avviato, il live coder dà al pubblico un’occasione per capire un’emozione e il suo significato, sebbene il linguaggio non sia familiare o il testo scarsamente leggibile. Seguendo le azioni di editing, la risoluzione dei problemi, le esitazioni e i passaggi attraverso il codice, e udendo/vedendo il risultato del codice al contempo, l’audience si avvicina sempre più al godimento olistico di quello che avviene – proprio perché non sperimenta solo l’output media, o non vede solo il codice che sta dietro – ma prova contemporaneamente come nascono e si evolvono entrambi.

L’improvvisazione è l’obiettivo del Live Coding, è per questo che tutto avviene live, è per questo che si creano e si perfezionano strumenti per ottenere il massimo con la stessa agilità e potenza. Infatti, l’interfaccia ha una doppia funzione: per il performer l’editor è l’interfaccia allo strumento, lo può limitare o arricchire; per il pubblico l’editor è invece un’interfaccia sulla mente dell’artista, compensativa del fatto che spesso il corpo sia nascosto dietro il portatile.

.

Silvia Scaravaggi: Cosa accade, quindi, tra il live coder e chi interagisce con lui, artista o pubblico, dj o performer?

Artem Baguinski: Tecnicamente la più semplice, ma più importante, connessione con gli altri performers è quella che attraversa i cervelli, proprio come in ogni improvvisazione collaborativa in cui si guardano/ascoltano i propri co-performers, lasciando che si influenzino le idee per passare oltre, alla fase successiva. Spesso sapere in anticipo cosa aspettarsi dai collaboratori, aiuta a preparare il materiale che può funzionare meglio. Ma è possibile in ogni caso partire da zero e lavorare verso una coerenza all’istante. Da quando ci sono i computers, possiamo permetterci di evitare le operazioni noiose, liberare noi stessi per collegamenti più astratti e di più alto livello. Così, lavorando con un musicista, si può analizzare l’input del microfono attraverso il computer, trasformando il suono in input per il codice. Collaborando con altri computer performers, si possono inviare a vicenda segnali o frammenti di codice attraverso la rete locale elettrica o wireless.

Michel van Dartel: Penso che in termini di interazione tra un Live Coder e altri artisti e/o il pubblico, la forza del Live Coding non consista tanto nel fatto che produca suoni o immagini completamente differenti da quelli che si possono ottenere utilizzando il tradizionale software e hardware… La vera forza del Live Coding sta nella capacità di dare assoluta libertà alla manipolazione, che può essere effettuata ovunque sul momento, e dunque, nel grande impatto sulle possibilità di improvvisazione live, che rendono il risultato un processo di improvvisazione (interattiva) completamente differente da quella possibile usando software e hardware standard. In altre parole, amplia in modo basilare lo spazio creativo mineralizzando i parametri che definiscono quello spazio.

.

Usando un sequencer per manipolare un tono, si è limitati alle funzioni dei canali, dei pulsanti e delle procedure predefinite; con il Live Coding, in pratica, non ci sono restrizioni, ed ogni manipolazione può essere realizzata con il codice al momento, con una libertà di improvvisazione molto più ampia. Come musicista penso che sia molto interessante, sebbene sia necessario del tempo per sviluppare le abilità richieste (…ed in effetti io sto ancora giocando con i parametri dei semplici toni puri…); d’altra parte se la gente impiega una vita ad imparare a suonare il piano, perché non dedicare altrettanto tempo a suonare il proprio portatile?. 


www.v2.nl

live.v2.nl/livecoding.ram

www.toplap.org/index.php/Main_Page

SHARE ONShare on FacebookGoogle+Tweet about this on TwitterShare on LinkedIn