Codificación en vivo


La codificación en vivo , [1] a veces denominada programación sobre la marcha , [2] programación en tiempo real y programación conversacional , hace que la programación sea una parte integral del programa en ejecución. [3]

A Study in Keith es una actuación de codificación musical en vivo en Impromptu por Andrew Sorensen.

Es más prominente como artes escénicas forman y una técnica de creatividad centrada en la escritura de código fuente y el uso de programación interactiva en un improvisado camino. La codificación en vivo se usa a menudo para crear medios digitales basados ​​en sonido e imagen , así como sistemas de luz, danza improvisada y poesía, [4] [5] aunque es particularmente frecuente en la música por computadora, generalmente como improvisación, aunque podría combinarse con composición algorítmica. . [6]Normalmente, el proceso de escritura del código fuente se hace visible proyectando la pantalla de la computadora en el espacio de la audiencia, con formas de visualizar el código como un área de investigación activa. [7] Las técnicas de codificación en vivo también se emplean fuera de la actuación, como en la producción de sonido para películas [8] o trabajos audiovisuales para instalaciones artísticas interactivas. [9] Asimismo, la interconexión entre ordenadores posibilita realizar esta práctica en red en grupo.

La figura del codificador en vivo es quien realiza el acto de codificar en vivo, generalmente "artistas que quieren aprender a codificar y codificadores que quieren expresarse" [10] o, en términos de Wang & Cook, el "programador / intérprete / compositor". . [2]

La codificación en vivo es también una técnica cada vez más popular en conferencias y presentaciones de conferencias relacionadas con la programación, y Mark Guzdial la ha descrito como una "mejor práctica" para las conferencias de informática . [11]

Se ha desarrollado y adaptado una variedad de técnicas para los propósitos de la codificación en vivo.

Representación y manipulación del tiempo

Las posibilidades específicas de los medios basados ​​en el tiempo y la interacción en vivo con el código han llevado a una serie de desarrollos y usos novedosos en el diseño de lenguajes de programación. Mediante la incrustación mutua de subsistemas imperativos y declarativos, el lenguaje de programación SuperCollider [12] permitió construir una biblioteca que permite especificaciones incompletas y provisionales que se pueden reescribir en tiempo de ejecución. [13]

El lenguaje ChucK introdujo un enfoque para la programación "fuertemente sincronizada" en 2002, incorporando la sincronización de precisión en el flujo de control a través de una sintaxis concisa.

La "recursividad temporal" fue un término acuñado inicialmente en relación con el entorno de programación de Impromptu . Los elementos técnicos dentro de un entorno de programación continúan ubicando compresores y soluciones de recursividad, pero la sincronización había sido un problema importante. Si bien la forma general de una recursividad temporal, que es cualquier recursión de función asincrónica a través del tiempo, está disponible para cualquier sistema impulsado por eventos, Impromptu ha puesto un énfasis especial en este patrón de diseño en particular, [14] convirtiéndolo en la pieza central de la arquitectura de concurrencia en esa plataforma. La recursividad temporal se ha utilizado repetidamente en SuperCollider y desde entonces se ha implementado en el entorno Fluxus .

Otro enfoque funcional para la representación del tiempo se muestra en el patrón de mareas DSL , [15] que representa patrones como combinadores que operan sobre funciones de tiempo, similar a las técnicas de programación reactiva funcional . [dieciséis]

Programación multiusuario y memoria compartida

La programación multiusuario se ha desarrollado en el contexto de la creación de música en grupo, a través del largo desarrollo del sistema Republic desarrollado y empleado por miembros de la banda de red PowerBooks Unplugged . [17] Republic está integrado en el lenguaje SuperCollider y permite a los participantes escribir en colaboración código en vivo que se distribuye a través de la red de computadoras. Hay esfuerzos similares en otros lenguajes, como el espacio de tuplas distribuido que se utiliza en el lenguaje Impromptu. [18] Además, Overtone, Impromptu y Extempore admiten sesiones multiusuario, en las que cualquier número de programadores puede intervenir a través de la red en un proceso de tiempo de ejecución determinado. [19] La práctica de escribir código en grupo se puede realizar en la misma habitación a través de una red local o desde lugares remotos accediendo a un servidor común. Términos como banda de portátiles, orquesta de portátiles, codificación colaborativa en directo o codificación colectiva en directo se utilizan para enmarcar una práctica de codificación en directo en red tanto de forma local como remota.

TOPLAP (La Organización (Temporal | Transnacional | Terrestre | Transdimensional) para la (Promoción | Proliferación | Permanencia | Pureza) de la Programación (Algoritmo | Audio | Arte | Artístico) en Vivo) es una organización informal formada en febrero de 2004 para reunir a los diversos comunidades que se habían formado alrededor de entornos de codificación en vivo. [20] El manifiesto TOPLAP establece varios requisitos para una actuación compatible con TOPLAP, en particular que las pantallas de los artistas intérpretes o ejecutantes deben proyectarse y no ocultarse. [21]

Se han creado varios proyectos de investigación y grupos de investigación para explorar la codificación en vivo, a menudo adoptando enfoques interdisciplinarios que unen las humanidades y las ciencias. Los primeros esfuerzos para desarrollar sistemas de codificación en vivo e integrar el campo emergente en el contexto teórico más amplio ocurrieron en el proyecto de investigación Artistic Interactivity in Hybrid Networks de 2005 a 2008, financiado por la German Research Foundation . [22]

Además, la Red de Investigación de Codificación en Vivo fue financiada por el Consejo de Investigación de Artes y Humanidades del Reino Unido durante dos años a partir de febrero de 2014, apoyando una variedad de actividades que incluyen simposios, talleres y una conferencia internacional anual llamada Conferencia Internacional sobre Codificación en Vivo (ICLC). [23]

  • Arrojar
  • Improvisado
  • Fluxus
  • Improvisado
  • ixi lang
  • LiveCode
  • Lua
  • Max
  • Pharo
  • Datos puros
  • Rasga
  • Sonic Pi
  • Súper colisionador
  • Ciclos de mareas
  • Wolfram Language

  • Joanne Armitage
  • Renick Bell
  • Benoît y los Mandelbrots
  • Alexandra Cardenas
  • Nick Collins
  • Shelly Knotts
  • Ron Kuivila
  • Alex McLean
  • Kate Sicchio
  • Slub
  • Ge Wang
  • Adrian Ward
  • Matthew Yee-King
  • Libertad Figueroa
  • Antonio Roberts

  • Algorave: evento en el que la música o las imágenes se generan a partir de algoritmos, generalmente codificados en vivo.
  • Demoscene: subcultura en torno a la codificación de presentaciones audiovisuales (demostraciones)
  • Programación exploratoria: la práctica de crear software como una forma de comprender sus requisitos y estructura.
  • Programación interactiva : práctica de programación del uso de codificación en vivo en el desarrollo de software.
  • NIME : conferencia académica y artística sobre los avances en la tecnología musical, que a veces presenta actuaciones de codificación en vivo y presentaciones de investigación.

  1. ^ Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), " Codificación en vivo en el rendimiento del portátil ", Organized Sound 8 (3): 321-30. doi : 10.1017 / S135577180300030X
  2. ^ a b Wang G. & Cook P. (2004) "Programación sobre la marcha: uso del código como instrumento musical expresivo" , en las actas de la Conferencia internacional de 2004 sobre nuevas interfaces para la expresión musical (NIME) (Nueva York: NIME, 2004).
  3. ^ Alan Blackwell, Alex McLean, James Noble, Jochen Otto y Julian Rohrhuber, "Colaboración y aprendizaje a través de la codificación en vivo (Seminario Dagstuhl 13382)", Dagstuhl Reports 3 (2014), no. 9, 130-168.
  4. ^ Magnusson, T. (2013). El Threnoscope. Una obra musical para interpretación de codificación en vivo . In Live 2013. Primer Taller Internacional de Programación en Vivo.
  5. ^ "Tech Know: Programación, encuentro con la música" . Noticias de la BBC. 2009-08-28 . Consultado el 25 de marzo de 2010 .
  6. ^ Collins, N. (2003) " Música generativa y rendimiento portátil archivado el 14 de mayo de 2014 en la Wayback Machine ", Revista de música contemporánea 22 (4): 67-79.
  7. ^ McLean, A., Griffiths, D., Collins, N. y Wiggins, G. (2010). Visualización de código en vivo . En Visualización Electrónica y las Artes de Londres 2010.
  8. ^ Rohrhuber, Julian (2008). Artificial, natural, histórico en el arte digital transdisciplinario. Sonido, visión y la nueva pantalla (PDF) . Springer Berlín Heidelberg. págs. 60–70.
  9. ^ "Comunión por Universal Everything y Field.io: entrevista" . Consultado el 5 de febrero de 2013 .
  10. ^ Bell, Sarah. "La codificación en vivo da vida a la programación: una entrevista con Alex McLean" . Consultado el 2 de marzo de 2016 .
  11. ^ Guzdial, Mark (agosto de 2011). "En qué se equivocan los estudiantes al construir modelos de física computacional en Python: tesis Cabellero parte 2" . Consultado el 5 de febrero de 2013 .
  12. ^ James McCartney (1996), SuperCollider: un nuevo lenguaje de síntesis en tiempo real, Actas de ICMC, 1996.
  13. Julian Rohrhuber, Alberto de Campo y 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.
  14. ^ Sorensen, A & Gardner, H (2010) " Programación con el tiempo: programación ciberfísica en improviso, en las actas de la Conferencia ACM Splash 2010 "
  15. ^ McLean, Alex (2014). "Haciendo lenguajes de programación para bailar: Live Coding con Tidal". En actas del II Taller Internacional ACM SIGPLAN de Arte Funcional, Música, Modelado y Diseño (PDF) . Gotemburgo.
  16. ^ McLean, Alex (2 de agosto de 2013). "Página de inicio de Tidal" .
  17. ^ Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho y H. Hölzl (2007). Cartas robadas y personas distribuidas Archivado el 3 de marzo de 2016 en la Wayback Machine . En Music in the Global Village Conference 2007.
  18. ^ Sorensen, A. (2010). Una memoria distribuida para el rendimiento de codificación en vivo en red . En Actas de la Conferencia Internacional de Música por Computadora 2010.
  19. ^ Sorensen, A. (2005). Impromptu: un entorno de programación interactivo para la composición y la interpretación, en las actas de la Australasian Computer Music Conference 2005
  20. ^ Ward, A., Rohrhuber, J., Olofsson, F., McLean, A., Griffiths, D., Collins, N. y Alexander, A. (2004). Programación de algoritmos en vivo y organización temporal para su promoción . En Goriunova, O. y Shulgin, A., editores, read_me - Software Art and Cultures.
  21. ^ "ManifestoDraft" . Toplap.org .
  22. ^ [1] [ enlace muerto ]
  23. ^ "Red de codificación en vivo" . Gtr.ukri.org .

  • Andrews, Robert. " Real DJs Code Live ". Wired (en línea), 7 de marzo de 2006.
  • Brown, Andrew R. " Code Jamming ". M / C Journal 9/6 (diciembre de 2006).
  • Magnusson, Thor. " Pastoreando gatos: Observando la codificación en vivo en la naturaleza ". "Computer Music Journal" Primavera de 2014, vol. 38, núm. 1, págs. 8-16.
  • Ramsay, Stephen. "Los algoritmos son pensamientos, las motosierras son herramientas ". Taller de Estudios Críticos de Código, marzo de 2010. Un cortometraje sobre codificación en vivo y el manifiesto TOPLAP.
  • Sorensen, Andrew y Henry Gardner. " Programación con tiempo: programación ciberfísica con Impromptu ". 22 de septiembre de 2010.
  • Di Próspero, Carolina. " Codificación en vivo. Arte computacional en proceso ". Contenido. Arte, Cultura y Ciencias Sociales 2015, Vol. 5, págs. 5-19.
  • ICLC 2015. " Actas de la Primera Conferencia Internacional sobre Codificación en Vivo ". Leeds, Reino Unido.

  • Sitio web oficial de TOPLAP
  • / * vivo * / simposio sobre codificación en vivo
  • Red de investigación de código en vivo
  • Conferencia internacional sobre codificación en vivo