Live coding
   HOME

TheInfoList



OR:

Live coding, sometimes referred to as on-the-fly programming,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).
just in time programming and conversational programming, makes programming an integral part of the running program. It is most prominent as a
performing arts The performing arts are arts such as music, dance, and drama which are performed for an audience. They are different from the visual arts, which are the use of paint, canvas or various materials to create physical or static art objects. Perform ...
form and a creativity technique centred upon the writing of
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
and the use of
interactive programming Interactive programming is the procedure of writing parts of a program while it is already active. This focuses on the program text as the main interface for a running process, rather than an interactive application, where the program is design ...
in an
improvised Improvisation is the activity of making or doing something not planned beforehand, using whatever can be found. Improvisation in the performing arts is a very spontaneous performance without specific or scripted preparation. The skills of impr ...
way. Live coding is often used to create sound and image based
digital media Digital media is any communication media that operate in conjunction with various encoded machine-readable data formats. Digital media can be created, viewed, distributed, modified, listened to, and preserved on a digital electronics device. ' ...
, as well as light systems, improvised
dance Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected. This movement has aesthetic and often symbolic value. Dance can be categorized and described by its choreography, by its repertoir ...
and poetry, though is particularly prevalent in
computer music Computer music is the application of computing technology in music composition, to help human composers create new music or to have computers independently create music, such as with algorithmic composition programs. It includes the theory and ap ...
usually as improvisation, although it could be combined with
algorithmic composition Algorithmic composition is the technique of using algorithms to create music. Algorithms (or, at the very least, formal sets of rules) have been used to compose music for centuries; the procedures used to plot voice-leading in Western counterpoin ...
. 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. Live coding techniques are also employed outside of performance, such as in producing sound for film or audiovisual work for interactive art installations. 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" or in terms of Wang & Cook the "programmer/performer/composer". 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 Mark Joseph Guzdial (born September 7, 1962) is a Professor in the College of Engineering at the University of Michigan. He was formerly a professor in the School of Interactive Computing at the Georgia Institute of Technology affiliated with the ...
.


Techniques

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


Representation and manipulation of time

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 permitted to build a library that allows incomplete and provisional specifications which can be rewritten at runtime. The
ChucK Chuck is a masculine given name or a nickname for Charles or Charlie. It may refer to: People Arts and entertainment * Chuck Alaimo, American saxophonist, leader of the Chuck Alaimo Quartet * Chuck Barris (1929–2017), American TV producer * C ...
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 An impromptu (, , loosely meaning "offhand") is a free-form musical composition with the character of an ''ex tempore'' improvisation as if prompted by the spirit of the moment, usually for a solo instrument, such as piano. According to ''Allgeme ...
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, 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 Fluxus was an international, interdisciplinary community of artists, composers, designers and poets during the 1960s and 1970s who engaged in experimental art performances which emphasized the artistic process over the finished product. Fluxus ...
environment. Another functional approach to the representation of time is shown in the
Tidal Tidal is the adjectival form of tide. Tidal may also refer to: * ''Tidal'' (album), a 1996 album by Fiona Apple * Tidal (king), a king involved in the Battle of the Vale of Siddim * TidalCycles, a live coding environment for music * Tidal (servic ...
pattern
DSL Digital subscriber line (DSL; originally digital subscriber loop) is a family of technologies that are used to transmit digital data over telephone lines. In telecommunications marketing, the term DSL is widely understood to mean asymmetric dig ...
, which represents patterns as combinators operating over functions of time, similar to techniques in
functional reactive programming Functional reactive programming (FRP) is a programming paradigm for reactive programming ( asynchronous dataflow programming) using the building blocks of functional programming (e.g. map, reduce, filter). FRP has been used for programming graphi ...
.


Multi-user programming and shared memory

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''. 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. 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. 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

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. The TOPLAP manifesto asserts several requirements for a TOPLAP compliant performance, in particular that performers' screens should be projected and not hidden. 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.


Research

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 The German Research Foundation (german: Deutsche Forschungsgemeinschaft ; DFG ) is a German research funding organization, which functions as a self-governing institution for the promotion of science and research in the Federal Republic of Germ ...
. Further, the Live Coding Research Network was funded by the UK
Arts and Humanities Research Council The Arts and Humanities Research Council (AHRC), formerly Arts and Humanities Research Board (AHRB), is a British research council, established in 1998, supporting research and postgraduate study in the arts and humanities. History The Arts an ...
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).


Examples of live coding environments

*
ChucK Chuck is a masculine given name or a nickname for Charles or Charlie. It may refer to: People Arts and entertainment * Chuck Alaimo, American saxophonist, leader of the Chuck Alaimo Quartet * Chuck Barris (1929–2017), American TV producer * C ...
*
Extempore ''Ex tempore'' (Latin for "out of the moment“) is a legal term that means 'at the time'. A judge who hands down a decision in a case soon or straight after hearing it is delivering a decision ''ex tempore''. Another way a judge may deliver a de ...
*
Fluxus Fluxus was an international, interdisciplinary community of artists, composers, designers and poets during the 1960s and 1970s who engaged in experimental art performances which emphasized the artistic process over the finished product. Fluxus ...
* Glicol *
Impromptu An impromptu (, , loosely meaning "offhand") is a free-form musical composition with the character of an ''ex tempore'' improvisation as if prompted by the spirit of the moment, usually for a solo instrument, such as piano. According to ''Allgeme ...
*
ixi lang Ixi lang is a programming language for live coding musical expression. It is taught at diverse levels of musical education and used in Algorave performances. Like many other live coding languages, such TidalCycles, ixi lang is a domain-specifi ...
* Max *
Pharo Pharo is an open source, cross-platform implementation of the classic Smalltalk-80 programming language and runtime. It's based on the OpenSmalltalk virtual machine called Cog (VM), which evaluates a dynamic, Reflective programming, reflectiv ...
*
Pure Data Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open-source project with a large d ...
* Scratch *
Sonic Pi Sonic or Sonics may refer to: Companies *Sonic Drive-In, an American drive-in fast-food restaurant chain *Sonic (ISP), an Internet provider and CLEC, serving more than 100 California communities *Sonic Foundry, a computer software company whic ...
* SuperCollider *
TidalCycles TidalCycles (also known as "Tidal") is a live coding environment designed for musical improvisation and composition. In particular, it is a domain-specific language embedded in Haskell, focused on the generation and manipulation of audible or visu ...


See also

*
Algorave An algorave (from an algorithm and rave) is an event where people dance to music generated from algorithms, often using live coding techniques. Alex McLean of Slub and Nick Collins coined the word "algorave" in 2011, and the first event under su ...
—event where music and/or visuals are generated from algorithms, generally live coded *
Demoscene The demoscene is an international computer art subculture focused on producing demos: self-contained, sometimes extremely small, computer programs that produce audiovisual presentations. The purpose of a demo is to show off programming, visual ...
—subculture around coding audiovisual presentations (demos) *
Exploratory programming Exploratory programming, as opposed to implementation (programming), is an important part of the software engineering cycle: when a domain is not very well understood or open-ended, or it's not clear what algorithms and data structures might be nee ...
—the practice of building software as a way to understand its requirements and structure *
Interactive programming Interactive programming is the procedure of writing parts of a program while it is already active. This focuses on the program text as the main interface for a running process, rather than an interactive application, where the program is design ...
—programming practice of using live coding in software development *
NIME New Interfaces for Musical Expression, also known as NIME, is an international conference dedicated to scientific research on the development of new technologies and their role in musical expression and artistic performance. History The confer ...
—academic and artistic conference on advances in music technology, sometimes featuring live coding performances and research presentations


References

{{Reflist


Further reading

* 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


Official TOPLAP website



Live Code Research Network

International Conference on Live Coding
Algorave Experimental music Live music Computer music Computer programming Digital art User interface techniques