Thor Magnusson
Department of Music
University of Sussex
Falmer, Brighton, BN1 9QJ, Reino Unido
T.Magnusson@sussex.ac.uk
Herding Cats: Observing
Live Coding in the Wild
Abstracto: 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, el
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, festivals, conference
tracks, journal issues, research projects, and club
nights have appeared and introduced the practice
to diverse fields of art, música, and science (en
particular, computer science). As an arts practice,
it has its roots in musical performance, but live
coding has become common in visual arts, luz
sistemas, robotics, dance, poetry, and other art
forms that operate with algorithmic instructions.
In the context of this journal issue, it seems
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. Investigadores
like Ungar and Smith explored live-programming
practice as early as 1969 (Ungar and Smith 2013) y,
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. Este
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
codificación, typically written by the protagonists them-
selves, 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;
Computer Music Journal, 38:1, páginas. 8-dieciséis, Primavera 2014
doi:10.1162/COMJ a 00216
C(cid:2) 2014 Instituto de Tecnología de Massachusetts.
McLean and Wiggins 2010; Sorensen and Gardner
2010), described particular systems and solutions
(Sorensen 2005; Wakefield, Herrero, and Roberts 2010;
Freeman and Van Troyer 2011; Magnusson 2011a;
McLean and Wiggins 2011; Roberts, Wakefield, y
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
instruments (Sorensen and Brown 2007; Aarón
et al. 2011; collins 2011). After a decade of fruitful
experimentos, it is perhaps time to reflect on how
live coding has operated within the performing arts.
Discussing a selection of highly diverse live-coding
sistemas, this article seeks to establish what they
may have in common, resulting in a discussion of
the problems of defining live coding, y, en el
proceso, to introduce weak and strong criteria for
la práctica.
On Naturalizing Live Coding
Live coding does not have a particular unified
aesthetic in terms of musical or visual style. Nevada-
sin embargo, 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, and functional-
ismo. 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. Este
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
Computer Music Journal
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
This image is as familiar as it is misleading. Él
is true that the birth of live coding draws from
modernist practices (with its manifestos, normas, y
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
the late 1990s. 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
codificación, sin embargo, the investigation tends to be a
formalism of thought and the language or system of
encoding it, as opposed to artistic content, cual
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
sí mismo [. . .] 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, pag. 6).
The performance-art elements of live coding
differentiate it from the pure self-referentiality
of formalist modernism, however—although there
podría, por supuesto, exist a purely conceptual live coding
without any other output than the code itself. I am
not aware of such an approach in the area of live
codificación, although it exists in off-line coding, tal vez
best exemplified by Pall Thayer’s Microcodes (miers
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. El
initial focus is on the formal part of the practice, en
the medium or the tool, and it is only later, cuando el
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, pag. 299).
Live-coding practice has consciously put effort
into expediting this naturalization process. It delib-
erately engages with the audience through various
canales, such as sitting among them while per-
forming (as with the band PowerBooks UnPlugged),
allowing people to contribute to the coding of dance
performers (p.ej., Kate Sicchio’s work), or submitting
code through Twitter (as in my own work with
the live-coding environment “ixi lang”). Uno de
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, even though
many are commonly known to the audience. Este
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
artículos, online discussions, and similar activities
(this article [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, pag. 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
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
Cifra 1. Kate Sicchio
dancing with code.
(Photograph by Bill Best,
Sheffield, Reino Unido, Creative
Commons BY-NC-ND 3.0.)
modifying algorithms during the execution of the
programa. This is arguably a prerequisite of live cod-
En g, as simply running code and changing parameters
in prewritten code is more comparable to operating
buttons, sliders, 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
posición. 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
codificación, 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
sistemas, and ask whether we can detect an aesthetic
style, or any specific performance contexts or tech-
nological foundations. The examples here are chosen
with the aim of demonstrating the variety of the
práctica, leaving out other significant contributors
to live coding whose performance setup might be
similar. 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, el
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, mientras
sending code snippets to each other for collaborative
codificación (Rohrhuber et al. 2007). The ensemble
describes itself as “the first acoustic computer
music folk band” (por ejemplo, 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. Su
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 paper (Nilson 2007). collins, sometimes
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 (no
to be confused with Nick Collins).
Kate Sicchio (ver figura 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, a diferencia de
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
Computer Music Journal
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
Cifra 2. Wrongheaded
preaching code at the
Arnolfini in Bristol.
(Photograph by Megan
Farrow, Bristol.)
Cifra 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
codificación, most notably present in the collective
Benoˆıt and the Mandelbrots (ver figura 3). Este
plurilingüe (both in terms of human and machine
idiomas) supergroup continually surprises with
their advanced systems, coding expertise, y
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). Su
performances have impressed audiences around the
world through their range of expression, codificación
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) tener
created a live-coding environment called LOLC.
Magnusson
11
Dave Griffiths, a member of aforementioned
collective Slub, has created various live-coding
sistemas, notably the Scheme-based Fluxus for
graphical live coding, Al-Jazari (where he uses a
gamepad to program robots that make music), y
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 (ver figura 2) is a col-
laboration between live coders Click Nilson and
Matt Yee-King. Their performances include strong
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
Cifra 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) es
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, dónde
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). El
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, dónde
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, con el
former typically resulting in beat-orientated and
melodic music (a strong focus is put on scales,
acordes, and harmony), whereas the latter practically
removes time and emphasizes notes of indefinite
length (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, el
system can change it to another semantically or
syntactically related word. Knowing the system
Bueno, 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
(ver figura 4), por ejemplo, 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
Computer Music Journal
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
on creating hardware in a live, performative con-
texto. An overhead projector displays how members
solder custom audio circuits using microchips,
capacitors, and transducers. Although their perfor-
mances consist solely of soldering hardware, ellos
represent a form of live programming, because they
involve the hot-wiring of control structures in real
tiempo.
The list of live-coding practitioners enumerated
here could be much longer, but it sufficiently
demonstrates that there are no specific tools,
practicas, 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, excepto
perhaps that algorithms are written and operated on
in real time. Each of the named practices addresses
specific problems involved in composing with
algoritmos, 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 (p.ej.,
synthesis or temporal patterns)
Collaboration through network protocols
“Liveness” and the ability to control existing
estructuras
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) componer-
ción, human–computer interaction, programming-
language design, and performance studies, representación
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. El
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
letras, 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, respectivamente,
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, y
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, Por ejemplo, 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
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
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, semejante
as the GitHub host for the Git revision control
sistema.
Live coding is the writing and performance, en
tiempo real, of music or other art forms, incluido
juegos, where algorithms are the primary form of
notation; it involves designing step-by-step rules
for machines, humanos, or others (p.ej., animals
or nature) to execute. An effective performance
técnica, 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, y, en efecto, 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, interacción,
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, y
audience (or any amalgamation thereof) are able
to write or re-write notation, puntuaciones, 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
tiempo, 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.
Conclusión
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. Además, 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, sin embargo, the live-
coding category serves an important purpose. El
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. Históricamente,
in the 17th and 18th centuries, musical scores
were often seen as descriptive of music, bastante
than prescriptive; this is a distinction Lydia Goehr
(1992, pag. 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.
Además, live coding manages to blur most
concepts of established musical discourse, como
composer, performer, and audience; instrument,
puntaje, and piece; composition, actuación, y
improvisation; stage and auditorium; and 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, pasado, y
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
Computer Music Journal
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
concrete and hard-wired definitions of musical
práctica.
Expresiones de gratitud
I would like to thank Computer Music Journal’s
guest editor, Julian Rohrhuber, and Peter Castine for
their invaluable input.
Referencias
Aarón, 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
Musical Expression, páginas. 381–386.
Aycock, j. 2003. “A Brief History of Just-in-Time.” ACM
Computing Surveys 35(2):97–113.
Blackwell, A., y N. collins. 2005. “The Programming
Language as a Musical Instrument.” In Proceedings of
the Psychology of Programming Interest Group (paginas
unnumbered).
Bovermann, T., y D. Griffiths. 2014. “Computation
as Material in Live Coding.” Computer Music Journal
38(1):40–53.
Bowker, GRAMO. C., and S. l. Star. 2000. Sorting Things
Out: Classification and Its Consequences. Cambridge,
Massachusetts: CON prensa.
collins, NORTE., et al. 2003. “Live Coding in Laptop Perfor-
mance.” Organised Sound 8(3):321–330.
collins, norte. 2011. “Live Coding of Consequence.”
Leonardo 44(3):207–211.
collins, norte. 2012. “Six Live Coding Works for Ensemble.”
Available online at www.sussex.ac.uk/Users/nc81/
livecodingworksforensemble.html. Accessed July 2013.
Dubrau, J., y M. Havryliv. 2010. “P[a]ra[pra]xis: Towards
Genuine Realtime ‘Audiopoetry’.” In Proceedings of
the International Conference on New Interfaces for
Musical Expression, páginas. 467–468.
Hombre libre, J., y un. Van Troyer. 2011. “Collaborative Tex-
tual Improvisation in a Laptop Ensemble.” Computer
Music Journal 35(2):8–21.
Goehr, l. 1992. The Imaginary Museum of Musical
Works: An Essay in the Philosophy of Music. Oxford:
prensa de la Universidad de Oxford.
Greenberg, C. 1961. “Avant-Garde and Kitsch.” In Art
y cultura: Ensayos críticos. Bostón, Massachusetts:
Prensa de baliza, páginas. 3–21.
Griffiths, D. 2007. “Game Pad Live Coding Performance.”
In J. Birringer, t. Dumke, and K. Nicolai, eds. Die
Welt als virtuelles Environment. Dresden: Hellerau,
páginas. 169–179.
Hoad, t. F. 1996. The Concise Oxford Dictionary of
English Etymology. Oxford: prensa de la Universidad de Oxford.
Sotavento, S. w., y j. Hombre libre. 2013. “Real-Time Music
Notation in Mixed Laptop-Acoustic Ensembles.”
Computer Music Journal 37(4):24–36.
Magnusson, t. 2011a. “The ixi lang: A SuperCollider
Parasite for Live Coding.” In Proceedings of the
International Computer Music Conference, páginas. 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
y M. de Valk, eds. Floss+Art. Londres: OpenMute,
páginas. 224–231.
McLean, A., y G. Wiggins. 2010. “Bricolage Program-
ming in the Creative Arts.” In Proceedings of the
Psychology of Programming Interest Group (paginas
unnumbered).
McLean, A., y G. Wiggins. 2011. “Texture: Visual
Notation for the Live Coding of Pattern.” In Proceedings
of the International Computer Music Conference,
páginas. 621–628.
miers, R. 2009. “Microcodes.” Furtherfield. Disponible
online at www.furtherfield.org/reviews/microcodes.
Accessed July 2013.
Nilson, C. [norte. collins]. 2007. “Live Coding Practice.” In
Proceedings of the International Conference on New
Interfaces for Musical Expression, páginas. 112–117.
Puckette, METRO. 1988. “The Patcher.” In Proceedings
of the International Computer Music Conference,
páginas. 420–429.
Resnick, METRO., et al. 2009. “Scratch: Programming for All.”
Communications of the ACM 52(11):60–67.
Roberts, C., y j. Kuchera-Morin. 2012. “Gibber: Live
Coding Audio in the Browser.” In Proceedings of the
International Computer Music Conference, páginas. 64–69.
Roberts, C., GRAMO. Wakefield, y M. Wright. 2013. “The Web
Browser as Synthesizer and Interface.” In Proceedings
of the International Conference on New Interfaces for
Musical Expression, páginas. 313–318.
Rohrhuber, J., A. de Campo, y r. Wieser. 2005. “Algo-
rithms Today: Notes on Language Design for Just in
Time Programming.” In Proceedings of the Interna-
tional Computer Music Conference, páginas. 455–458.
Magnusson
15
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
Rohrhuber, J., et al. 2007. “Purloined Letters and Dis-
tributed Persons.” In Music in the Global Village
Conferencia (pages unnumbered).
Herrero, R. B., y D. Ungar. 1995. “Programming as an
Experience: The Inspiration for Self.” In Proceedings
of the European Conference on Object-Oriented
Programming, páginas. 303–330.
Sorensen, A. 2005. “Impromptu : An Interactive Program-
ming Environment for Composition and Performance.”
In Proceedings of the Australasian Computer Music
Conferencia, páginas. 149–153.
Sorensen, A., y un. Marrón. 2007. “aa-cell in Practice:
An Approach to Musical Live Coding.” In Proceedings
of the International Computer Music Conference,
páginas. 292–299.
Sorensen, A., and H. jardinero. 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
Informática, 1(2):127–139.
Ungar, D., y r. B. Herrero. 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, GRAMO., W.. Herrero, and C. Roberts. 2010. “LuaAV:
Extensibility and Heterogeneity for Audiovisual Com-
puting.” In Proceedings of the Linux Audio Conference
(pages unnumbered).
Ward, A., et al. 2004. “Live Algorithm Programming
and a Temporary Organisation for its Promotion.” In
oh. Goriunova and A. Shulgin, eds. Read Me: Software
Art and Cultures. Aarhus: Aarhus University Press,
páginas. 243–261.
zm ¨olnig, I m. 2007. “Patching Music Together: Columna-
laborative Live Coding in Pure Data.” In Proceed-
ings of the Pd Convention. Available online at
artengine.ca/∼catalogue-pd/4-zmoelnig.pdf. Accedido
Septiembre 2013.
yo
D
oh
w
norte
oh
a
d
mi
d
F
r
oh
metro
h
t
t
pag
:
/
/
d
i
r
mi
C
t
.
metro
i
t
.
mi
d
tu
/
C
oh
metro
j
/
yo
a
r
t
i
C
mi
–
pag
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
oh
metro
_
a
_
0
0
2
1
6
pag
d
.
j
F
b
y
gramo
tu
mi
s
t
t
oh
norte
0
7
S
mi
pag
mi
metro
b
mi
r
2
0
2
3
16
Computer Music Journal