# Live coding

La codificació en directe (live coding en anglès), a vegades anomenada programació instantània o programació conversacional, fa que la programació sigui una part integral del programa en execució.
És més destacat com a forma d'arts escèniques i com a tècnica de creativitat centrada en l'escriptura de codi font i l'ús de programació interactiva d'una manera improvisada. La codificació en viu s'utilitza sovint per crear mitjans digitals basats en el so i la imatge, així com sistemes de llum, dansa improvisada i poesia, encara que és particularment freqüent en la música per ordinador generalment com a improvisació, tot i que es pot combinar amb la composició algorítmica. Normalment, el procés d'escriptura del codi font es fa visible projectant la pantalla de l'ordinador a l'espai de públic, amb formes de visualitzar el codi en una àrea d'investigació activa. Les tècniques de codificació en directe també s'utilitzen fora de la performance, com per exemple en la producció de so per a pel·lícules o treballs audiovisuals per a instal·lacions artístiques interactives. A més, la interconnexió entre ordinadors permet realitzar aquesta pràctica en xarxa en grup.
La figura del codificador en viu és qui realitza l'acte de codificació en directe, generalment "artistes que volen aprendre a codificar i codificadors que volen expressar-se" o en termes de Wang & Cook el "programador / intèrpret / compositor".
La codificació viva és també una tècnica cada cop més popular dins programació-va relacionar conferències i presentacions de conferència, i ha estat descrit com a "pràctica millor" per conferències d'informàtica per Mark Guzdial.

## Tècniques

S'han desenvolupat i apropiat una sèrie de tècniques per a la codificació en viu.

### Representació i manipulació de temps

Les possibilitats específiques dels mitjans basats en el temps i la interacció en directe amb el codi han conduït a una sèrie de novetats i usos en el disseny del llenguatge de programació. Mitjançant la inserció mútua de subsistemes imperatius i declaratius, el llenguatge de programació SuperCollider permetre construir una biblioteca que permeti especificacions incompletes i provisionals que es puguin reescriure en temps d'execució.
El llenguatge ChucK va introduir un enfocament a la programació "fortament temporitzada" el 2002, incorporant el temps de precisió al flux de control a través d'una sintaxi concisa.
"Recursió temporal" va ser un terme inicialment encunyat en relació amb l'entorn de programació Impromptu. Els elements tècnics d'un entorn de programació continuen localitzant compressors i solucions de recursivitat, però el temps havia estat un problema important. Tot i que la forma general d'una recursió temporal, sent qualsevol recursió de funció asíncrona a través del temps, està disponible per a qualsevol sistema basat en esdeveniments, Impromptu ha posat un èmfasi especial en aquest patró de disseny particular, convertint-lo en la peça central de l'arquitectura de simultaneïtat a aquesta plataforma. La recursivitat temporal s'havia utilitzat repetidament a SuperCollider i des de llavors s'ha implementat a l'entorn Fluxus .
Un altre enfocament funcional de la representació del temps es mostra al patró de Tidal DSL, que representa els patrons com a combinadors que operen en funcions del temps, de manera similar a les tècniques de programació reactiva funcional.

### Multi-Programació d'usuari i memòria compartida

La programació multiusuari s'ha desenvolupat en el context de la creació de música en grup, a través del llarg desenvolupament del sistema Republic desenvolupat i emprat per membres de la banda de xarxa PowerBooks Unplugged. Republic està integrat en el llenguatge SuperCollider i permet als participants escriure de forma col·laborativa codi en viu que es distribueix per la xarxa d'ordinadors. Hi ha esforços similars en altres idiomes, com ara l'espai de tupla distribuït que s'utilitza en l'idioma Impromptu. A més, Overtone, Impromptu i Extempore admeten sessions multiusuari, en què qualsevol programador pot intervenir a través de la xarxa en un procés d'execució determinat. La pràctica d'escriure codi en grup es pot fer a la mateixa sala a través d'una xarxa local o des de llocs remots que accedeixen a un servidor comú. Termes com a banda de portàtils, orquestra de portàtils, codificació en viu col·laborativa o codificació en directe col·lectiva s'utilitzen per emmarcar una pràctica de codificació en directe en xarxa, de manera local o remota.

## Organitzacions

TOPLAP (Organització (Temporal | Transnacional | Terrestre | Transdimensional) per a la (Promoció | Proliferació | Permanència | Puresa) de la programació en viu (algorisme | Àudio | Art | Artístic)) és una organització informal creada el febrer del 2004 per reunir els diversos comunitats que s'havien format al voltant d'entorns de codificació en viu, basat a Barcelona. El manifest TOPLAP afirma diversos requisits per a un rendiment compatible amb TOPLAP, en particular que les pantalles dels intèrprets s'hagin de projectar i no amagar.

## Recerca

S'han creat diversos projectes de recerca i grups de recerca per explorar la codificació en viu, sovint adoptant enfocaments interdisciplinaris que relacionen les ciències i les humanitats. Els primers esforços tant per desenvolupar sistemes de codificació en viu com per incorporar el camp emergent en el context teòric més ampli es van produir en el projecte de recerca Artistic Interactivity in Hybrid Networks del 2005 al 2008, finançat per la German Research Foundation.
Més enllà, la Xarxa de Recerca de Codificació Viva va ser finançada pels Arts de Regne Unit i Humanities Consell de Recerca per dos anys de febrer 2014, donant suport una gamma d'activitats incloent-hi symposia, els tallers i una conferència internacional anual van cridar Conferència Internacional en Codificació Viva (ICLC).

## Entorns de codificació en viu

* ChucK
* Extempore
* Fluxus
* Impromptu
* ixi lang
* LiveCode
* Lua
* Max
* Pharo
* Pure Data
* Scratch
* Sonic Pi
* SuperCollider
* TidalCycles
* Wolfram Language

## Live coders

* Joanne Armitage
* Renick Bell
* Benoît and the Mandelbrots
* Alexandra Cardenas
* Nick Collins
* Shelly Knotts
* Ron Kuivila
* Alex McLean
* Kate Sicchio
* Slub
* Ge Wang
* Adrian Ward
* Matthew Yee-King
* Libertad Figueroa

## Vegeu també

* Algorave

## Referències

* ↑ Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), "Live Coding in Laptop Performance Arxivat 2011-08-11 a Wayback Machine.", Organised Sound 8(3): 321–30. doi:10.1017/S135577180300030X
* 1 2 Wang G. & Cook P. (2004) "On-the-fly Programming: Using Code as an Expressive Musical Instrument", In Proceedings of the 2004 International Conference on New Interfaces for Musical Expression (NIME) (Nova York: NIME, 2004).
* ↑ Alan Blackwell, Alex McLean, James Noble, Jochen Otto, and Julian Rohrhuber, "Collaboration and learning through live coding (Dagstuhl Seminar 13382)", Dagstuhl Reports 3 (2014), no. 9, 130–168.
* ↑ Magnusson, T. (2013). The Threnoscope. A Musical Work for Live Coding Performance. In Live 2013. First International Workshop on Live Programming.
* ↑ , 28-08-2009.
* ↑ Collins, N. (2003) "Generative Music and Laptop Performance Arxivat 2014-05-14 a Wayback Machine.", Contemporary Music Review 22(4):67–79.
* ↑ McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). Visualisation of live code Arxivat 2011-03-21 a Wayback Machine.. In Electronic Visualisation and the Arts London 2010.
* ↑ Rohrhuber, Julian. Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen. Springer Berlin Heidelberg, 2008, p. 60–70 [Consulta: 20 febrer 2021]. Arxivat 2011-08-11 a Wayback Machine.
* ↑ «Communion by Universal Everything and Field.io: interview». [Consulta: 5 febrer 2013].
* ↑ Bell, Sarah. «Live coding brings programming to life - an interview with Alex McLean». Arxivat de l'original el 4 de març 2016. [Consulta: 2 març 2016].
* ↑ Guzdial, Mark. «What students get wrong when building computational physics models in Python: Cabellero thesis part 2», 01-08-2011. [Consulta: 5 febrer 2013].
* ↑ James McCartney (1996), SuperCollider: a new real time synthesis language, ICMC Proceedings, 1996.
* ↑ Julian Rohrhuber, Alberto de Campo, and Renate Wieser (2005), Algorithms today - Notes on Language Design for Just In Time Programming, Proceedings of International Computer Music Conference (Barcelona), ICMC, 2005, pp. 455–458.
* ↑ Sorensen, A & Gardner, H (2010) "Programming With Time: Cyberphysical Programming In Impromptu, In proceedings of the ACM Splash Conference 2010"
* ↑ McLean, Alex. «Making programming languages to dance to: Live Coding with Tidal». A: In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design, 2014.
* ↑ McLean, Alex. «Tidal homepage», 02-08-2013. Arxivat de l'original el 2015-11-21. [Consulta: 20 febrer 2021].
* ↑ Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho, and H. Hölzl (2007). Purloined letters and distributed persons Arxivat 2016-03-03 a Wayback Machine.. In Music in the Global Village Conference 2007.
* ↑ Sorensen, A. (2010). A distributed memory for networked livecoding performance Arxivat 2021-02-26 a Wayback Machine.. In Proceedings of International Computer Music Conference 2010.
* ↑ Sorensen, A. (2005). Impromptu : an interactive programming environment for composition and performance, In proceedings of the Australasian Computer Music Conference 2005
* ↑ Ward, A., Rohrhuber, J., Olofsson, F., McLean, A., Griffiths, D., Collins, N., and Alexander, A. (2004). Live algorithm programming and a temporary organisation for its promotion. In Goriunova, O. and Shulgin, A., editors, read_me - Software Art and Cultures.
* ↑ «ManifestoDraft». Toplap.org.
* ↑ «Live Coding Network». Gtr.ukri.org.

## Bibliografia

* Andrews, Robert. “Real DJs Code Live.” Wired (online), 7 març 2006.
* Brown, Andrew R. “Code Jamming.” M/C Journal 9/6 (December 2006).
* Magnusson, Thor. "Herding Cats: Observing Live Coding in the Wild." "Computer Music Journal" Spring 2014, Vol. 38, No. 1, pp. 8–16.
* Ramsay, Stephen. “Algorithms are Thoughts, Chainsaws are Tools.” Critical Code Studies Workshop, març 2010. A short film on live coding and the TOPLAP manifesto.
* Sorensen, Andrew and Henry Gardner. “Programming With Time: Cyber-physical programming with Impromptu Arxivat 2021-02-26 a Wayback Machine..” 22 setembre 2010.
* Di Próspero, Carolina. "Live coding. Arte computacional en proceso." Contenido. Arte, Cultura y Ciencias Sociales 2015, Vol. 5, pp. 5–19.
* ICLC 2015. "Proceedings of the First International Conference on Live Coding." Leeds, UK.

## Enllaços externs

* Web oficial de TOPLAP