fbpx
Wikipedia

Live coding

Live coding,[1] sometimes referred to as on-the-fly programming,[2] just in time programming and conversational programming, makes programming an integral part of the running program.[3]

A Study in Keith is a musical live coding performance in Impromptu by Andrew Sorensen.

It is most prominent as a performing arts form and a creativity technique centred upon the writing of source code and the use of interactive programming in an improvised way. Live coding is often used to create sound and image based digital media, as well as light systems, improvised dance and poetry,[4][5] though is particularly prevalent in computer music usually as improvisation, although it could be combined with algorithmic composition.[6] Typically, the process of writing source code is made visible by projecting the computer screen in the audience space, with ways of visualising the code an area of active research.[7] Live coding techniques are also employed outside of performance, such as in producing sound for film[8] or audiovisual work for interactive art installations.[9] Also, the interconnection between computers makes possible to realize this practice networked in group.

The figure of live coder is who performs the act of live coding, usually "artists who want to learn to code, and coders who want to express themselves"[10] or in terms of Wang & Cook the "programmer/performer/composer".[2]

Live coding is also an increasingly popular technique in programming-related lectures and conference presentations, and has been described as a "best practice" for computer science lectures by Mark Guzdial.[11]

Techniques edit

A range of techniques have been developed and appropriated for the purposes of live coding.

Representation and manipulation of time edit

The specific affordances of time-based media and live interaction with code has led to a number of novel developments and uses in programming language design. Through mutual embedding of imperative and declarative subsystems, the programming language SuperCollider[12] permitted to build a library that allows incomplete and provisional specifications which can be rewritten at runtime.[13]

The ChucK language introduced an approach to "strongly timed" programming in 2002, embedding precision timing into control flow through a concise syntax.

"Temporal recursion" was a term initially coined in relation to the Impromptu programming environment. Technical elements within a programming environment continue to locate compressors and recursion solutions, but timing had been a major issue. While the general form of a temporal recursion, being any asynchronous function recursion through time, is available to any event driven system, Impromptu has placed a special emphasis on this particular design pattern,[14] making it the centre piece of the concurrency architecture on that platform. Temporal recursion had repeatedly been used in SuperCollider and has since been implemented in the Fluxus environment.

Another functional approach to the representation of time is shown in the Tidal pattern DSL,[15] which represents patterns as combinators operating over functions of time, similar to techniques in functional reactive programming.[16]

Multi-user programming and shared memory edit

Multi-user programming has developed in the context of group music-making, through the long development of the Republic system developed and employed by members of the network band PowerBooks Unplugged.[17] Republic is built into the SuperCollider language, and allows participants to collaboratively write live code that is distributed across the network of computers. There are similar efforts in other languages, such as the distributed tuple space used in the Impromptu language.[18] Additionally Overtone, Impromptu and Extempore support multi-user sessions, in which any number of programmers can intervene across the network in a given runtime process.[19] The practice of writing code in group can be done in the same room through a local network or from remote places accessing a common server. Terms like laptop band, laptop orchestra, collaborative live coding or collective live coding are used to frame a networked live coding practice both in a local or remote way.

Organizations edit

TOPLAP (The (Temporary|Transnational|Terrestrial|Transdimensional) Organisation for the (Promotion|Proliferation|Permanence|Purity) of Live (Algorithm|Audio|Art|Artistic) Programming) is an informal organization formed in February 2004 to bring together the various communities that had formed around live coding environments.[20] The TOPLAP manifesto asserts several requirements for a TOPLAP compliant performance, in particular that performers' screens should be projected and not hidden.[21]

On-the-fly promotes live coding practice since 2020. This is a project co-funded by the Creative European program and run in Hangar, ZKM, Ljudmila and Creative Code Utrecht.[22]

Research edit

A number of research projects and research groups have been created to explore live coding, often taking interdisciplinary approaches bridging the humanities and sciences. First efforts to both develop live coding systems and embed the emerging field in the broader theoretical context happened in the research project Artistic Interactivity in Hybrid Networks from 2005 to 2008, funded by the German Research Foundation.[23]

Further, the Live Coding Research Network was funded by the UK Arts and Humanities Research Council for two years from February 2014, supporting a range of activities including symposia, workshops and an annual international conference called International Conference on Live Coding (ICLC).[24]

Examples of live coding environments edit

See also edit

  • Algorave—event where music and/or visuals are generated from algorithms, generally live coded
  • Demoscene—subculture around coding audiovisual presentations (demos)
  • Exploratory programming—the practice of building software as a way to understand its requirements and structure
  • Interactive programming—programming practice of using live coding in software development
  • NIME—academic and artistic conference on advances in music technology, sometimes featuring live coding performances and research presentations

References edit

  1. ^ Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), "Live Coding in Laptop Performance", Organised Sound 8(3): 321–30. doi:10.1017/S135577180300030X
  2. ^ a b 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) (New York: NIME, 2004).
  3. ^ 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.
  4. ^ Magnusson, T. (2013). The Threnoscope. A Musical Work for Live Coding Performance. In Live 2013. First International Workshop on Live Programming.
  5. ^ "Tech Know: Programming, meet music". BBC News. 2009-08-28. Retrieved 2010-03-25.
  6. ^ Collins, N. (2003) "Generative Music and Laptop Performance 2014-05-14 at the Wayback Machine", Contemporary Music Review 22(4):67–79.
  7. ^ McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). Visualisation of live code. In Electronic Visualisation and the Arts London 2010.
  8. ^ Rohrhuber, Julian (2008). Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen (PDF). Springer Berlin Heidelberg. pp. 60–70.
  9. ^ "Communion by Universal Everything and Field.io: interview". Retrieved 5 February 2013.
  10. ^ Bell, Sarah. "Live coding brings programming to life - an interview with Alex McLean". Retrieved 2 March 2016.
  11. ^ Guzdial, Mark (August 2011). "What students get wrong when building computational physics models in Python: Cabellero thesis part 2". Retrieved 5 February 2013.
  12. ^ James McCartney (1996), SuperCollider: a new real time synthesis language, ICMC Proceedings, 1996.
  13. ^ 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.
  14. ^ Sorensen, A & Gardner, H (2010) "Programming With Time: Cyberphysical Programming In Impromptu, In proceedings of the ACM Splash Conference 2010"
  15. ^ McLean, Alex (2014). "Making programming languages to dance to: Live Coding with Tidal". In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design (PDF). Gothenburg.{{cite book}}: CS1 maint: location missing publisher (link)
  16. ^ McLean, Alex (2013-08-02). "Tidal homepage".
  17. ^ Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho, and H. Hölzl (2007). Purloined letters and distributed persons 2016-03-03 at the Wayback Machine. In Music in the Global Village Conference 2007.
  18. ^ Sorensen, A. (2010). A distributed memory for networked livecoding performance. In Proceedings of International Computer Music Conference 2010.
  19. ^ Sorensen, A. (2005). Impromptu : an interactive programming environment for composition and performance, In proceedings of the Australasian Computer Music Conference 2005
  20. ^ 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.
  21. ^ "ManifestoDraft". Toplap.org.
  22. ^ "On-the-flly project". onthefly.space.
  23. ^ "Artistic Interactivity in Hybrid Networks" (2016) --- Wayback Machine archive
  24. ^ "Live Coding Network". Gtr.ukri.org.

Further reading edit

  • Andrews, Robert. “Real DJs Code Live.” Wired (online), 7 March 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, March 2010. A short film on live coding and the TOPLAP manifesto.
  • Sorensen, Andrew and Henry Gardner. “Programming With Time: Cyber-physical programming with Impromptu.” 22 September 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.

External links edit

  • Official TOPLAP website
  • International Conference on Live Coding

live, coding, confused, with, interactive, programming, sometimes, referred, programming, just, time, programming, conversational, programming, makes, programming, integral, part, running, program, source, source, source, source, source, source, study, keith, . Not to be confused with Interactive programming Live coding 1 sometimes referred to as on the fly programming 2 just in time programming and conversational programming makes programming an integral part of the running program 3 source source source source source source A Study in Keith is a musical live coding performance in Impromptu by Andrew Sorensen It is most prominent as a performing arts form and a creativity technique centred upon the writing of source code and the use of interactive programming in an improvised way Live coding is often used to create sound and image based digital media as well as light systems improvised dance and poetry 4 5 though is particularly prevalent in computer music usually as improvisation although it could be combined with algorithmic composition 6 Typically the process of writing source code is made visible by projecting the computer screen in the audience space with ways of visualising the code an area of active research 7 Live coding techniques are also employed outside of performance such as in producing sound for film 8 or audiovisual work for interactive art installations 9 Also the interconnection between computers makes possible to realize this practice networked in group The figure of live coder is who performs the act of live coding usually artists who want to learn to code and coders who want to express themselves 10 or in terms of Wang amp Cook the programmer performer composer 2 Live coding is also an increasingly popular technique in programming related lectures and conference presentations and has been described as a best practice for computer science lectures by Mark Guzdial 11 Contents 1 Techniques 1 1 Representation and manipulation of time 1 2 Multi user programming and shared memory 2 Organizations 3 Research 4 Examples of live coding environments 5 See also 6 References 7 Further reading 8 External linksTechniques editA range of techniques have been developed and appropriated for the purposes of live coding Representation and manipulation of time edit The specific affordances of time based media and live interaction with code has led to a number of novel developments and uses in programming language design Through mutual embedding of imperative and declarative subsystems the programming language SuperCollider 12 permitted to build a library that allows incomplete and provisional specifications which can be rewritten at runtime 13 The ChucK language introduced an approach to strongly timed programming in 2002 embedding precision timing into control flow through a concise syntax Temporal recursion was a term initially coined in relation to the Impromptu programming environment Technical elements within a programming environment continue to locate compressors and recursion solutions but timing had been a major issue While the general form of a temporal recursion being any asynchronous function recursion through time is available to any event driven system Impromptu has placed a special emphasis on this particular design pattern 14 making it the centre piece of the concurrency architecture on that platform Temporal recursion had repeatedly been used in SuperCollider and has since been implemented in the Fluxus environment Another functional approach to the representation of time is shown in the Tidal pattern DSL 15 which represents patterns as combinators operating over functions of time similar to techniques in functional reactive programming 16 Multi user programming and shared memory edit Multi user programming has developed in the context of group music making through the long development of the Republic system developed and employed by members of the network band PowerBooks Unplugged 17 Republic is built into the SuperCollider language and allows participants to collaboratively write live code that is distributed across the network of computers There are similar efforts in other languages such as the distributed tuple space used in the Impromptu language 18 Additionally Overtone Impromptu and Extempore support multi user sessions in which any number of programmers can intervene across the network in a given runtime process 19 The practice of writing code in group can be done in the same room through a local network or from remote places accessing a common server Terms like laptop band laptop orchestra collaborative live coding or collective live coding are used to frame a networked live coding practice both in a local or remote way Organizations editTOPLAP The Temporary Transnational Terrestrial Transdimensional Organisation for the Promotion Proliferation Permanence Purity of Live Algorithm Audio Art Artistic Programming is an informal organization formed in February 2004 to bring together the various communities that had formed around live coding environments 20 The TOPLAP manifesto asserts several requirements for a TOPLAP compliant performance in particular that performers screens should be projected and not hidden 21 On the fly promotes live coding practice since 2020 This is a project co funded by the Creative European program and run in Hangar ZKM Ljudmila and Creative Code Utrecht 22 Research editA number of research projects and research groups have been created to explore live coding often taking interdisciplinary approaches bridging the humanities and sciences First efforts to both develop live coding systems and embed the emerging field in the broader theoretical context happened in the research project Artistic Interactivity in Hybrid Networks from 2005 to 2008 funded by the German Research Foundation 23 Further the Live Coding Research Network was funded by the UK Arts and Humanities Research Council for two years from February 2014 supporting a range of activities including symposia workshops and an annual international conference called International Conference on Live Coding ICLC 24 Examples of live coding environments editChucK Csound Extempore Fluxus Glicol Impromptu ixi lang Max Pharo Pure Data Scratch Sonic Pi SuperCollider TidalCycles Sardine 2 See also editAlgorave event where music and or visuals are generated from algorithms generally live coded Demoscene subculture around coding audiovisual presentations demos Exploratory programming the practice of building software as a way to understand its requirements and structure Interactive programming programming practice of using live coding in software development NIME academic and artistic conference on advances in music technology sometimes featuring live coding performances and research presentationsReferences edit Collins N McLean A Rohrhuber J amp Ward A 2003 Live Coding in Laptop Performance Organised Sound 8 3 321 30 doi 10 1017 S135577180300030X a b Wang G amp 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 New 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 Tech Know Programming meet music BBC News 2009 08 28 Retrieved 2010 03 25 Collins N 2003 Generative Music and Laptop Performance Archived 2014 05 14 at the Wayback Machine Contemporary Music Review 22 4 67 79 McLean A Griffiths D Collins N and Wiggins G 2010 Visualisation of live code In Electronic Visualisation and the Arts London 2010 Rohrhuber Julian 2008 Artificial Natural Historical in Transdisciplinary Digital Art Sound Vision and the New Screen PDF Springer Berlin Heidelberg pp 60 70 Communion by Universal Everything and Field io interview Retrieved 5 February 2013 Bell Sarah Live coding brings programming to life an interview with Alex McLean Retrieved 2 March 2016 Guzdial Mark August 2011 What students get wrong when building computational physics models in Python Cabellero thesis part 2 Retrieved 5 February 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 amp Gardner H 2010 Programming With Time Cyberphysical Programming In Impromptu In proceedings of the ACM Splash Conference 2010 McLean Alex 2014 Making programming languages to dance to Live Coding with Tidal In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art Music Modelling and Design PDF Gothenburg a href Template Cite book html title Template Cite book cite book a CS1 maint location missing publisher link McLean Alex 2013 08 02 Tidal homepage Rohrhuber J A de Campo R Wieser J K van Kampen E Ho and H Holzl 2007 Purloined letters and distributed persons Archived 2016 03 03 at the Wayback Machine In Music in the Global Village Conference 2007 Sorensen A 2010 A distributed memory for networked livecoding performance 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 On the flly project onthefly space Artistic Interactivity in Hybrid Networks 2016 1 Wayback Machine archive Live Coding Network Gtr ukri org Further reading editAndrews Robert Real DJs Code Live Wired online 7 March 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 March 2010 A short film on live coding and the TOPLAP manifesto Sorensen Andrew and Henry Gardner Programming With Time Cyber physical programming with Impromptu 22 September 2010 Di Prospero 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 External links editOfficial TOPLAP website vivo symposium on live coding Live Code Research Network International Conference on Live Coding Retrieved from https en wikipedia org w index php title Live coding amp oldid 1214642386, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.