Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Live coding
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 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]]<ref>James McCartney (1996), SuperCollider: a new real time synthesis language, ICMC Proceedings, 1996. </ref> permitted to build a library that allows incomplete and provisional specifications which can be rewritten at runtime.<ref>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.</ref> 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)|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,<ref>Sorensen, A & Gardner, H (2010) "[http://eprints.qut.edu.au/55712/1/sorensen_ow_2010.pdf Programming With Time: Cyberphysical Programming In Impromptu, In proceedings of the ACM Splash Conference 2010]"</ref> 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 (programming environment)|Fluxus]] environment. Another functional approach to the representation of time is shown in the [[Tidal (livecoding)|Tidal]] pattern [[Domain-specific language|DSL]],<ref>{{cite book|last=McLean|first=Alex|chapter=Making programming languages to dance to: Live Coding with Tidal|url=https://github.com/yaxu/Tidal/blob/master/doc/farm/farm.pdf?raw=true|title=In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design|year=2014|location=Gothenburg}}</ref> which represents patterns as combinators operating over functions of time, similar to techniques in [[functional reactive programming]].<ref>{{cite web|last=McLean|first=Alex|title=Tidal homepage|work=Alex McLean |url=https://yaxu.org/tidal/|date=2013-08-02}}</ref> === 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''.<ref>Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho, and H. Hรถlzl (2007). [http://www.wertlos.org/articles/Purloined_letters.pdf Purloined letters and distributed persons] {{Webarchive|url=https://web.archive.org/web/20160303192832/http://www.wertlos.org/articles/Purloined_letters.pdf |date=2016-03-03 }}. In Music in the Global Village Conference 2007.</ref> 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.<ref>Sorensen, A. (2010). [http://impromptu.moso.com.au/extras/icmc2010.pdf A distributed memory for networked livecoding performance]. In Proceedings of International Computer Music Conference 2010.</ref> 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.<ref>Sorensen, A. (2005). [http://eprints.qut.edu.au/31056/ Impromptu : an interactive programming environment for composition and performance, In proceedings of the Australasian Computer Music Conference 2005]</ref> 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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)