Thor Magnusson
Department of Music
University of Sussex
Falmer, Brighton, BN1 9QJ, Vereinigtes Königreich
T.Magnusson@sussex.ac.uk
Herding Cats: Observing
Live Coding in the Wild
Abstrakt: After an eventful decade of live-coding activities, this article seeks to explore the practice with the aim of
situating it in the history of contemporary arts and music. The article introduces several key points of investigation
in live-coding research and discusses some examples of how live-coding practitioners engage with these points in
their system design and performances. In light of the extremely diverse manifestations of live-coding activities, Die
problem of defining the practice is discussed, and the question is raised whether live coding is actually necessary as an
independent category.
This journal issue celebrates the tenth anniversary
of organized live coding (see www.toplap.org).
Numerous live-coding systems, Feste, Konferenz
tracks, journal issues, research projects, and club
nights have appeared and introduced the practice
to diverse fields of art, Musik, and science (In
besondere, computer science). As an arts practice,
it has its roots in musical performance, but live
coding has become common in visual arts, light
Systeme, robotics, tanzen, poetry, and other art
forms that operate with algorithmic instructions.
In the context of this journal issue, es scheint
appropriate to stress the origin of live-coding practice
in the arts, without failing to mention that the
related term of “live programming” has been used
for a considerably longer time in certain research
tracks of computer science, particularly in the
field of programming-language design. Researchers
like Ungar and Smith explored live-programming
practice as early as 1969 (Ungar and Smith 2013) Und,
in an article on the visual programming language
VIVA, Tanimoto (1990) defined “liveness” as an
attribute of programming. Live programming is thus
perceived to be a useful method in activities ranging
from re-programming factory production lines (Swift
et al. 2013) to making music in nightclubs. Das
article will describe live coding as a unique practice
in a strong relationship with live programming but
stress its origins in live performance.
Journal articles and conference papers on live
coding, typically written by the protagonists them-
sich selbst, have introduced the practice (Collins et al.
2003; Ward et al. 2004; McLean 2008), explored it in
a computer science context (Blackwell and Collins
2005; Rohrhuber, de Campo, and Wieser 2005;
Computermusikjournal, 38:1, S. 8–16, Frühling 2014
doi:10.1162/COMJ a 00216
C(cid:2) 2014 Massachusetts Institute of Technology.
McLean and Wiggins 2010; Sorensen and Gardner
2010), described particular systems and solutions
(Sorensen 2005; Wakefield, Schmied, and Roberts 2010;
Freeman and Van Troyer 2011; Magnusson 2011a;
McLean and Wiggins 2011; Roberts, Wakefield, Und
Wright 2013), explored live coding as musical scores
(Blackwell and Collins 2005; Magnusson 2011b),
and contextualized it as an embodied musical prac-
tice that requires practicing on a par with acoustic
Instrumente (Sorensen and Brown 2007; Aaron
et al. 2011; Collins 2011). After a decade of fruitful
experiments, it is perhaps time to reflect on how
live coding has operated within the performing arts.
Discussing a selection of highly diverse live-coding
Systeme, this article seeks to establish what they
may have in common, resulting in a discussion of
the problems of defining live coding, Und, im
Verfahren, to introduce weak and strong criteria for
the practice.
On Naturalizing Live Coding
Live coding does not have a particular unified
aesthetic in terms of musical or visual style. Nev-
ertheless, the practice has at times been perceived
as a movement, akin to movements found in 20th
century modernism. We find a strong emphasis on
formal experiments, reductionism, und funktional-
ism. There are manifestos, key texts, and custom
coding platforms. A visit to a nightclub hosting a
live-coding event might even conjure up images of
exclusive avant-garde practices, where live coders
perform for other coders already initiated into the
wicked “sourcery” of programming computers. Das
art of writing algorithms for binary machines can
be so alien and obscure to the audience that the
situation almost recalls the difficulty people had
understanding postwar European avant-garde music.
8
Computermusikjournal
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
This image is as familiar as it is misleading. Es
is true that the birth of live coding draws from
modernist practices (with its manifestos, rules, Und
imperatives) but this is inevitable, as formalism
is—and formal experiments are—a necessary aspect
in the exploration of a new medium; suffice it
to mention video art experiments by Nam June
Paik and the Vasulkas in the 1960s, or net.art
work by artists such as Alexei Shulgin and Jodi in
Ende der 1990er Jahre. Such a formalism involves a deep
exploration of the properties of the medium at hand,
and we find an analogy in the way live coders have
designed and performed with their systems. In live
coding, Jedoch, the investigation tends to be a
formalism of thought and the language or system of
encoding it, as opposed to artistic content, welche
may appear formalist or not. Perhaps the situation
is better described by the modernist critic Clement
Greenberg, who defines it as one in which the two
aspects become inseparable:
Content is to be dissolved so completely into
form that the work of art or literature cannot
be reduced in whole or in part to anything not
selbst [. . .] In turning his attention away from
subject matter of common experience, the poet
or artist turns it in upon the medium of his own
craft (Greenberg 1961, P. 6).
The performance-art elements of live coding
differentiate it from the pure self-referentiality
of formalist modernism, however—although there
could, Natürlich, exist a purely conceptual live coding
without any other output than the code itself. Ich bin
not aware of such an approach in the area of live
coding, although it exists in off-line coding, vielleicht
best exemplified by Pall Thayer’s Microcodes (Myers
2009). The live-coding activities that resemble
the aforementioned modernist tendencies can
be explained with a common trajectory that takes
place when a new artistic format develops. Der
initial focus is on the formal part of the practice, An
the medium or the tool, and it is only later, when the
technology undergoes a process of “naturalization,”
that the focus shifts elsewhere:
The more naturalized the object becomes,
the more unquestioning the relationship
of the community to it; the more invisible
the contingent and historical circumstances of
its birth, the more it sinks into the community’s
routinely forgotten memory (Bowker and Star
2000, P. 299).
Live-coding practice has consciously put effort
into expediting this naturalization process. It delib-
erately engages with the audience through various
Kanäle, such as sitting among them while per-
forming (as with the band PowerBooks UnPlugged),
allowing people to contribute to the coding of dance
performers (z.B., Kate Sicchio’s work), or submitting
code through Twitter (as in my own work with
the live-coding environment “ixi lang”). One of
the fundamental tenets of the TOPLAP manifesto
(available online at toplap.org/wiki/ManifestoDraft)
is “Show us your screens.” It is an explicit act
of audience inclusion, responding to the common
laptop-performance format where relatively simple
interfaces are used but not shown, wenngleich
many are commonly known to the audience. Das
is taking the etymology of the word “program”
seriously, as the Greek root, progr ´aphein, signifies
the activity of public writing (Hoad 1996). Live
coders have also been prolific in explaining their
practice and systems of writing code, with journal
articles, online discussions, and similar activities
(dieser Artikel [and this paragraph] being an example of
such recursion).
Live Coding in the Wild
Live coding is a heterogeneous practice and thus
somewhat hard to define. It involves a multiplicity
of approaches that have one thing in common:
Algorithmic instructions are written in real time.
Collins (2011, P. 209) states that “the more profound
the live coding, the more a performer must confront
the running algorithm, and the more significant the
intervention in the works, the deeper the coding
act.” For Collins, most performances fail to “live
up to this promise.” The argument, also expressed
by McLean (2008), is that a true “liveness” requires
that the performer is not simply manipulating pre-
written code in real time, but is actually writing and
Magnusson
9
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
Figur 1. Kate Sicchio
dancing with code.
(Photograph by Bill Best,
Sheffield, Vereinigtes Königreich, Creative
Commons BY-NC-ND 3.0.)
modifying algorithms during the execution of the
Programm. This is arguably a prerequisite of live cod-
ing, as simply running code and changing parameters
in prewritten code is more comparable to operating
Tasten, Schieberegler, and knobs on a screen interface or
a MIDI controller. We could talk about weak and
strong definitions of live coding, with the weak
one allowing trivial code manipulations and
strong one adhering to Collins’s and McLean’s
Position. The strong definition would result in the
conclusion that some so-called live-coding perfor-
mances do not really include any live coding at all.
In the absence of any clear definitions of live
coding, apart from the requirement that algorithms
are written in real time, it may be appropriate to
take a sample of some prolific live coders and their
Systeme, and ask whether we can detect an aesthetic
Stil, or any specific performance contexts or tech-
nological foundations. The examples here are chosen
with the aim of demonstrating the variety of the
üben, leaving out other significant contributors
to live coding whose performance setup might be
ähnlich. The aim is to study how live coding oper-
ates in a live context, and to outline the problems
practitioners are trying to address in their work.
PowerBooks UnPlugged is an ensemble of six
performers who make use of wireless networks
to communicate and share code in a networked
live-coding performance. As the name indicates, Die
laptops are unplugged, and the only sound output
is from the built-in laptop speakers. Members of
the collective sit among the audience, blurring the
traditional performer–audience spatial divide, while
sending code snippets to each other for collaborative
coding (Rohrhuber et al. 2007). The ensemble
describes itself as “the first acoustic computer
music folk band” (zum Beispiel, on the band Web
site at pbup.goto10.org) with a reference to the de-
mystification of the laptop as a musical instrument.
One of the early live-coding collectives is a
group called Slub, consisting of three members
who perform with different live-coding systems
of their own creation and who collaborate over a
network using a shared musical time clock. Ihre
systems are well known for their experimental and
innovative aspects, focusing on language design
and human–computer interaction. Slub regularly
uses multiple projectors to overlay the performers’
desktop images, an act of obfuscation where the
rendered image on the wall becomes a visual
montage of an aesthetic dimension. The collective
often collaborates with other artists, recently with
performance artist Hester Reeves.
Nick Collins has explored live coding in various
forms and projects. Together with Frederik Olofsson,
he once set aside a month to practice live coding
on a daily basis, exploring the topics of practice
and coding virtuosity. This was documented in
A 2007 Papier (Nilson 2007). Collins, Manchmal
encrypted as “Click Nilson” (although rumor has
it that Nilson is retired), has written work for
the live coding of human improvising musicians
(Collins 2011), composed live coding scores (Collins
2012), and engaged in duels with other live-coding
heavyweights such as Alex McLean and Ge Wang
(Nilson 2007), as well as with the master of live
electronics and hardware hacking, Nic Collins (nicht
to be confused with Nick Collins).
Kate Sicchio (siehe Abbildung 1) is a choreographer and
dancer who uses live coding in the context of dance.
In her performances, Sicchio works with algorithmic
choreographic instructions, a kinetographic encod-
ing of human movements, which can be explored in
a real-time performance. Sicchio finds that, nicht wie
other choreographic languages, textual program-
ming can provide an expressive syntax for describing
algorithms that afford generative interpretations for
human interpreters (www.sicchio.com).
10
Computermusikjournal
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
Figur 2. Wrongheaded
preaching code at the
Arnolfini in Bristol.
(Photograph by Megan
Farrow, Bristol.)
Figur 3. Benoˆıt and the
Mandelbrots playing their
greatest hits. (Photograph
by Daniel Bollinger,
www.danielbollinger.de.)
performative aspects and are typically humorous,
sometimes to the degree that the music is all but
forgotten among tactics that might involve expres-
sive dance, the autopsy of teddy bears, or a religious
exegesis of existential algorithms. This takes place
concurrently with the writing of SuperCollider syn-
thesizer definitions and the configuration of sound
card drivers for the Linux-based Raspberry Pi.
There is also a boy-band dimension in live
coding, most notably present in the collective
Benoˆıt and the Mandelbrots (siehe Abbildung 3). Das
multilingual (both in terms of human and machine
languages) supergroup continually surprises with
their advanced systems, coding expertise, Und
solutions to the problems of networked computer
music and collaborative audiovisual performance.
Andrew Sorensen and Andrew Brown perform
under the name aa-cell (Sorensen and Brown 2007).
They use a Scheme-based environment called
Impromptu, written by Sorensen (2005). Ihre
performances have impressed audiences around the
world through their range of expression, coding
eloquence, and compositional structures. If one
were to name virtuoso live coders, algorithmic
equivalents to Paganini and Liszt, the names of these
performers are bound to be included. Sorensen is
currently working on a new live-coding environment
called Extempore for “cyber-physical programming”
(Sorensen and Gardner 2010).
Jason Freeman and Akito Van Troyer (2011) have
created a live-coding environment called LOLC.
Magnusson
11
Dave Griffiths, a member of aforementioned
collective Slub, has created various live-coding
Systeme, notably the Scheme-based Fluxus for
graphical live coding, Al-Jazari (where he uses a
gamepad to program robots that make music), Und
Scheme Bricks (a graphical block-type interface for
programming music and visuals). Griffiths’s work
tends to contain a strong visual element, inspired
by computer games and agent-based programming
(Griffiths 2007), and is thus ideally suited as a first
step in coding for novices and children.
The group Wrongheaded (siehe Abbildung 2) is a col-
laboration between live coders Click Nilson and
Matt Yee-King. Their performances include strong
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
Figur 4. IOhannes m
zm ¨olnig live coding with
Pure Data. (Photograph by
David Griffiths, Falmouth,
UK.)
known for his “pointillistic” live coding of Morse
code with a Braille font.
Gibber (Roberts and Kuchera-Morin 2012) Ist
a system that takes live coding into the realm
of the Web browser. Using the new Web Audio
technologies for JavaScript, the system enables
people to visit a Web page and start creating
synthesizers or composing music, without needing
to download and install any additional software.
Multiple users can contribute in the same session in
a networked performance manner.
Till Bovermann and Sara Hildebrand Marques
Lopes have devised a piece called Oulipop, Wo
they perform “meta-level” live coding by manipulat-
ing text according to the algorithmic rules specified
by the Ouvroir de literature potentielle (“workshop
for potential literature,” abbreviated as Oulipo). Der
Oulipop system runs a low-level synthesis engine
that translates ASCII characters into assembler in-
structions for a virtual chip, the operation of which
is sonified. The piece is performed by Bovermann
and Hildebrand Marques Lopes on stage, Wo
they interfere with each other’s text, thus turning
what might have been meaningful prose into good-
sounding nonsense (Bovermann and Griffiths 2014).
Craig Latta’s system, Quoth, implements a
musical performance system in the form of a text
adventure game command line interface. Quoth is a
natural language processor, presented in the form of
interactive fiction, that treats the English language
as executable code (an example is available online at
vimeo.com/50530082).
In my own work I have developed two live-
coding systems, the ixi lang (Magnusson 2011a)
and the Threnoscope (Magnusson 2013). Both of
these systems are made with the aim of providing
scope for musical expression that is both high
level and constrained. The musical output of the
two systems is distinctively different, mit dem
former typically resulting in beat-orientated and
melodic music (a strong focus is put on scales,
chords, and harmony), whereas the latter practically
removes time and emphasizes notes of indefinite
Länge (drones) whose parameters can be controlled
through a textual interface.
Loud Objects, a collaboration between Kunal
Gupta, Tristan Perich, and Katie Shima, focuses
This simulates a chat client and allows novices
in computer programming to live code music in
larger ensembles over a wireless network in the
same location or in a distributed performance.
The system encourages not only conversation and
collaboration between performers, but also the bor-
rowing and adoption of code, practically rendering
the question of authorship in this collaborative
performance setup meaningless. A more recent
system called SGLC (Lee and Freeman 2013) builds
on LOLC, but aims at the inclusion of acoustic
instruments through the use of traditional staff
notation.
Mark Havryliv uses his P[A]ra[pra]xis live-coding
software to sonify text (typically poetry). Words are
treated as objects with properties and relationships
to other words—i.e., the software is not a one-to-one
mapping of characters or letters to sound, but focuses
on linguistic conditions. After a word is typed, Die
system can change it to another semantically or
syntactically related word. Knowing the system
well, it is possible to code complex musical and
linguistic patterns (Dubrau and Havryliv 2010).
Most of the these performance systems are
text-based, but graphical data-flow programming
environments like Pure Data (Pd) and Max/MSP
also allow for live coding. IOhannes m zm ¨olnig
(siehe Abbildung 4), zum Beispiel, is a Pd developer who
has created a live-coding system for multiple users
and used it extensively (zm ¨olnig 2007). He is also
12
Computermusikjournal
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
on creating hardware in a live, performative con-
Text. An overhead projector displays how members
solder custom audio circuits using microchips,
capacitors, and transducers. Although their perfor-
mances consist solely of soldering hardware, Sie
represent a form of live programming, because they
involve the hot-wiring of control structures in real
Zeit.
The list of live-coding practitioners enumerated
here could be much longer, but it sufficiently
demonstrates that there are no specific tools,
Praktiken Methoden Ausübungen, or musical aesthetics at play: Live coding
is a fuzzy concept representing a performance
technique with a multitude of practices that do
not share any one essential requirement, except
perhaps that algorithms are written and operated on
in real time. Each of the named practices addresses
specific problems involved in composing with
Algorithmen, some of which could be summarized as
follows:
(cid:2)
(cid:2)
(cid:2)
(cid:2)
(cid:2)
Languages for algorithmic thinking
Comprehensibility and intuitiveness of code
Audience engagement and involvement
Graphical visualizations of algorithms
Virtuosity and the system’s provision for
speed coding
Compositional expressiveness
Direct access to the artistic material (z.B.,
synthesis or temporal patterns)
Collaboration through network protocols
“Liveness” and the ability to control existing
structures
Embodiment and physicality
Live-coding systems as musical pieces or
works of art
(cid:2)
(cid:2)
(cid:2)
(cid:2)
(cid:2)
(cid:2)
As a novel research field with a strong practical
underpinning, live coding engages with diverse
unexplored and novel areas in (musical) composi-
tion, human–computer interaction, programming-
language design, and performance studies, Rendern
the practice an ideal platform for both artistic
and scientific experiments. The examples in this
article illustrate how live coding tries to commu-
nicate algorithmic thinking, real-time composition,
and networked collaborations to the audience by
designing innovative systems or exploring novel
performance contexts. These examples typify ap-
proaches to humanizing machines by creating con-
versational interfaces with them, enabling artists to
issue commands through the notation of code. Der
examples also demonstrate how live-coding systems
can range from being open, general programming
environments aimed at general users to being sys-
tems with much narrower scope, which can be seen
as musical works in their own right. Boverman and
Hildebrand Marques Lopes’ Oulipop and my own
Threnoscope exemplify such approaches.
Disparate Origins and Fuzzy Ends
Live coding has been explored in this article pri-
marily as an art-based practice, but we shouldn’t
forget that while live coding has one foot in the
arts, the other stands firmly in computer science.
Having established itself in the past decade, live
coding owes much to diverse foundational work
in computer science since the 1950s. The coding
languages vary, but interpreted programming lan-
guages are typically used, often as descendants of
either Lisp- or Smalltalk-based systems, whose func-
tional and object-oriented paradigms, jeweils,
have laid foundations to both textual and graphical
live-coding environments. Just-in-time compilation
(Aycock 2003) has been an influential technique
supporting liveness in coding, for example in the
JITLib approach implemented in SuperCollider by
Rohrhuber in 2000 (Rohrhuber, de Campo, Und
Wieser 2005) or by Sorensen (2005) with his work
on the Impromptu and Extempore environments.
Visual or data-flow programming languages have
also been inspiring, including Self (Smith and Ungar
1995) and Scratch (Resnick et al. 2009), an approach
represented by Max/MSP and Pure Data in the
field of media arts (Puckette 1988). Research into
human–computer interaction, computer games,
and new media interface design have also been
important references in more experimental pro-
gramming frameworks, Zum Beispiel, in the work
of Griffiths (2007), McLean and Wiggins (2011),
Latta’s Quoth, and in ixi lang (Magnusson 2011a).
We also find that the networked collaboration char-
acteristic of many live-coding performances owes
Magnusson
13
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
much to the research and development of historic
communication protocols, but also to newer com-
munity networks for collaborative coding, solch
as the GitHub host for the Git revision control
System.
Live coding is the writing and performance, In
real time, of music or other art forms, einschließlich
games, where algorithms are the primary form of
notation; it involves designing step-by-step rules
for machines, humans, or others (z.B., Tiere
or nature) to execute. An effective performance
technique, live coding addresses the problems of
improvisation and on-the-fly decision-making in
live performance with machines. The fact that
the machine can be redefined in real time opens
up new avenues in compositional and musical
performance practices, Und, In der Tat, it seems to be
a logical and necessary step in the evolution of
human–machine communication. In the current
technological condition, media formats need not
be linear, deterministic, and static; their real-time
rendering allows for interpretation, interaction,
and change of the type we find in mobile apps,
generative music, and games. Performance contexts
will increasingly reflect the dynamic nature of
modern media, where composers, performers, Und
audience (or any amalgamation thereof) are able
to write or re-write notation, scores, or any other
instructions and are able to design or re-design
Software, hardware, or other machinery in a more
open and dynamic way.
Considering that live coding as a performance
method represents a propitious and natural way
of engaging with notation or instructions in real
Zeit, we might question whether the approach
of defining live coding as a specific category is
necessary from a longer-term perspective. At least
we might rethink in which contexts it might be
beneficial to maintain the category, because when
the novelty wears off and the naturalization process
has fully taken place, we may find the method
blends so effortlessly into the diverse art forms that
we don’t need to talk about live coding anymore.
In this future scenario, live coding simply becomes
one of the most pertinent approaches among avail-
able performance techniques that allow for real-time
composition and improvisation.
Abschluss
This article has discussed some manifestations of
live coding and described how selected practitioners
explore key research themes, while resisting the
temptation to define live coding in greater detail
than stating that it involves the writing of algorithms
in real time. Attempts to define this wide field
of activities more closely are likely to become
an exercise in herding cats: There will always
be examples that escape the constraints of such
definitions. Zusätzlich, the need for the category
of live coding to be maintained as more than as a
temporary tool has been questioned.
As a provisional instrument, Jedoch, the live-
coding category serves an important purpose. Der
arrival of live coding in the historical timeline of
contemporary music is important, and the tension
between the strong and weak criteria for live coding
happens to be strikingly analogous to the dichotomy
between composition and performance in written
sheet music since the 19th century. Historically,
in the 17th and 18th centuries, musical scores
were often seen as descriptive of music, eher
than prescriptive; this is a distinction Lydia Goehr
(1992, P. 188) frames as the difference between
“composing through performance and composing
prior to performance.” From this perspective, live
coding adopts a pre-Romantic method of composing
through performance in real time, where everything
remains open to change—the compositional process,
the instrument design, and the intelligence of the
system performing the piece.
Außerdem, live coding manages to blur most
concepts of established musical discourse, wie zum Beispiel
Komponist, performer, und Publikum; instrument,
Punktzahl, and piece; Komposition, Leistung, Und
improvisation; stage and auditorium; und instru-
ment and tool. It presents an interesting take on
the modernist concern regarding form and con-
tent, and it blurs the concepts of presence and
absence as well as notions of present, Vergangenheit, Und
future. In this respect, I think that live coding
reaches much further back into musical history
than what is clearly a practice with strong roots
in modernism and computer science. It extends
back to a time before these categories became
14
Computermusikjournal
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
concrete and hard-wired definitions of musical
üben.
Danksagungen
I would like to thank Computer Music Journal’s
guest editor, Julian Rohrhuber, and Peter Castine for
their invaluable input.
Verweise
Aaron, S., et al. 2011. “A Principled Approach to Devel-
oping New Languages for Live Coding.” In Proceedings
of the International Conference on New Interfaces for
Musikalischer Ausdruck, S. 381–386.
Aycock, J. 2003. “A Brief History of Just-in-Time.” ACM
Computing Surveys 35(2):97–113.
Blackwell, A., and N. Collins. 2005. “The Programming
Language as a Musical Instrument.” In Proceedings of
the Psychology of Programming Interest Group (Seiten
unnumbered).
Bovermann, T., and D. Griffiths. 2014. “Computation
as Material in Live Coding.” Computer Music Journal
38(1):40–53.
Bowker, G. C., and S. L. Star. 2000. Sorting Things
Out: Classification and Its Consequences. Cambridge,
Massachusetts: MIT Press.
Collins, N., et al. 2003. “Live Coding in Laptop Perfor-
mance.” Organised Sound 8(3):321–330.
Collins, N. 2011. “Live Coding of Consequence.”
Leonardo 44(3):207–211.
Collins, N. 2012. “Six Live Coding Works for Ensemble.”
Available online at www.sussex.ac.uk/Users/nc81/
livecodingworksforensemble.html. Accessed July 2013.
Dubrau, J., and M. Havryliv. 2010. “P[A]ra[pra]xis: Towards
Genuine Realtime ‘Audiopoetry’.” In Proceedings of
the International Conference on New Interfaces for
Musikalischer Ausdruck, S. 467–468.
Freeman, J., and A. Van Troyer. 2011. “Collaborative Tex-
tual Improvisation in a Laptop Ensemble.” Computer
Musikjournal 35(2):8–21.
Goehr, L. 1992. The Imaginary Museum of Musical
Funktioniert: An Essay in the Philosophy of Music. Oxford:
Oxford University Press.
Greenberg, C. 1961. “Avant-Garde and Kitsch.” In Art
and Culture: Critical Essays. Boston, Massachusetts:
Beacon Press, S. 3–21.
Griffiths, D. 2007. “Game Pad Live Coding Performance.”
In J. Birringer, T. Dumke, and K. Nicolai, Hrsg. Die
Welt als virtuelles Environment. Dresden: Hellerau,
S. 169–179.
Hoad, T. F. 1996. The Concise Oxford Dictionary of
English Etymology. Oxford: Oxford University Press.
Lee, S. W., and J. Freeman. 2013. “Real-Time Music
Notation in Mixed Laptop-Acoustic Ensembles.”
Computermusikjournal 37(4):24–36.
Magnusson, T. 2011A. “The ixi lang: A SuperCollider
Parasite for Live Coding.” In Proceedings of the
International Computer Music Conference, S. 503–
506.
Magnusson, T. 2011B. “Algorithms as Scores: Coding Live
Music.” Leonardo Music Journal 21(1):19–23.
Magnusson, T. 2013. “The Threnoscope: A Musical
Work for Live Coding Performance.” In International
Workshop on Live Programming at the International
Conference on Software Engineering (pages unnum-
bered).
McLean, A. 2008. “Live Coding for Free.” In A. Mansoux
and M. de Valk, Hrsg. Floss+Art. London: OpenMute,
S. 224–231.
McLean, A., and G. Wiggins. 2010. “Bricolage Program-
ming in the Creative Arts.” In Proceedings of the
Psychology of Programming Interest Group (Seiten
unnumbered).
McLean, A., and G. Wiggins. 2011. “Texture: Visual
Notation for the Live Coding of Pattern.” In Proceedings
of the International Computer Music Conference,
S. 621–628.
Myers, R. 2009. “Microcodes.” Furtherfield. Verfügbar
online at www.furtherfield.org/reviews/microcodes.
Accessed July 2013.
Nilson, C. [N. Collins]. 2007. “Live Coding Practice.” In
Proceedings of the International Conference on New
Interfaces for Musical Expression, S. 112–117.
Puckette, M. 1988. “The Patcher.” In Proceedings
of the International Computer Music Conference,
S. 420–429.
Resnick, M., et al. 2009. “Scratch: Programming for All.”
Communications of the ACM 52(11):60–67.
Roberts, C., and J. Kuchera-Morin. 2012. “Gibber: Live
Coding Audio in the Browser.” In Proceedings of the
International Computer Music Conference, S. 64–69.
Roberts, C., G. Wakefield, and M. Wright. 2013. “The Web
Browser as Synthesizer and Interface.” In Proceedings
of the International Conference on New Interfaces for
Musikalischer Ausdruck, S. 313–318.
Rohrhuber, J., A. de Campo, and R. Wieser. 2005. “Algo-
rithms Today: Notes on Language Design for Just in
Time Programming.” In Proceedings of the Interna-
tional Computer Music Conference, S. 455–458.
Magnusson
15
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
Rohrhuber, J., et al. 2007. “Purloined Letters and Dis-
tributed Persons.” In Music in the Global Village
Conference (pages unnumbered).
Schmied, R. B., and D. Ungar. 1995. “Programming as an
Experience: The Inspiration for Self.” In Proceedings
of the European Conference on Object-Oriented
Programming, S. 303–330.
Sorensen, A. 2005. “Impromptu : An Interactive Program-
ming Environment for Composition and Performance.”
In Proceedings of the Australasian Computer Music
Conference, S. 149–153.
Sorensen, A., and A. Braun. 2007. “aa-cell in Practice:
An Approach to Musical Live Coding.” In Proceedings
of the International Computer Music Conference,
S. 292–299.
Sorensen, A., and H. Gardner. 2010. “Programming with
Time: Cyber-Physical Programming with Impromptu.”
ACM SIGPLAN Notices, 45(10):822–834.
Swift, B., et al. 2013. “Visual Code Annotations for Cyber-
physical Programming.” In International Workshop on
Live Programming at the International Conference on
Software Engineering (pages unnumbered).
Tanimoto, S. 1990. “VIVA: A Visual Language for Im-
age Processing.” Journal of Visual Languages and
Computing, 1(2):127–139.
Ungar, D., and R. B. Schmied. 2013. “The Thing on the
Screen Is Supposed To Be the Actual Thing.” In
International Workshop on Live Programming at the
International Conference on Software Engineering
(pages unnumbered).
Wakefield, G., W. Schmied, and C. Roberts. 2010. “LuaAV:
Extensibility and Heterogeneity for Audiovisual Com-
puting.” In Proceedings of the Linux Audio Conference
(pages unnumbered).
Station, A., et al. 2004. “Live Algorithm Programming
and a Temporary Organisation for its Promotion.” In
Ö. Goriunova and A. Shulgin, Hrsg. Read Me: Software
Art and Cultures. Aarhus: Aarhus University Press,
S. 243–261.
zm ¨olnig, I m. 2007. “Patching Music Together: Col-
laborative Live Coding in Pure Data.” In Proceed-
ings of the Pd Convention. Online verfügbar unter
artengine.ca/∼catalogue-pd/4-zmoelnig.pdf. Zugriff
September 2013.
l
D
Ö
w
N
Ö
A
D
e
D
F
R
Ö
M
H
T
T
P
:
/
/
D
ich
R
e
C
T
.
M
ich
T
.
e
D
u
/
C
Ö
M
J
/
l
A
R
T
ich
C
e
–
P
D
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
Ö
M
_
A
_
0
0
2
1
6
P
D
.
J
F
B
j
G
u
e
S
T
T
Ö
N
0
7
S
e
P
e
M
B
e
R
2
0
2
3
16
Computermusikjournal