Thor Magnusson
音乐系
University of Sussex
Falmer, Brighton, BN1 9QJ, 英国
T.Magnusson@sussex.ac.uk
Herding Cats: Observing
Live Coding in the Wild
抽象的: 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, 这
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
曲目, journal issues, research projects, and club
nights have appeared and introduced the practice
to diverse fields of art, 音乐, and science (在
特别的, 计算机科学). As an arts practice,
it has its roots in musical performance, but live
coding has become common in visual arts, 光
系统, 机器人技术, dance, poetry, and other art
forms that operate with algorithmic instructions.
In the context of this journal issue, 它似乎
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, 特别是在
field of programming-language design. Researchers
like Ungar and Smith explored live-programming
practice as early as 1969 (Ungar and Smith 2013) 和,
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
等人. 2013) to making music in nightclubs. 这
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
编码, typically written by the protagonists them-
自己, 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;
电脑音乐杂志, 38:1, PP. 8–16, 春天 2014
土井:10.1162/COMJ一 00216
C(西德:2) 2014 麻省理工学院.
McLean and Wiggins 2010; Sorensen and Gardner
2010), described particular systems and solutions
(Sorensen 2005; Wakefield, 史密斯, and Roberts 2010;
Freeman and Van Troyer 2011; Magnusson 2011a;
McLean and Wiggins 2011; 罗伯茨, Wakefield, 和
赖特 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
仪器 (Sorensen and Brown 2007; Aaron
等人. 2011; 柯林斯 2011). After a decade of fruitful
实验, it is perhaps time to reflect on how
live coding has operated within the performing arts.
Discussing a selection of highly diverse live-coding
系统, this article seeks to establish what they
may have in common, resulting in a discussion of
the problems of defining live coding, 和, 在里面
过程, 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, and functional-
主义. 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. 这
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
电脑音乐杂志
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
This image is as familiar as it is misleading. 它
is true that the birth of live coding draws from
modernist practices (with its manifestos, 规则, 和
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
20世纪90年代末. 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
编码, 然而, the investigation tends to be a
formalism of thought and the language or system of
encoding it, as opposed to artistic content, 哪个
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
本身 [. . .] In turning his attention away from
subject matter of common experience, the poet
or artist turns it in upon the medium of his own
工艺 (Greenberg 1961, p. 6).
The performance-art elements of live coding
differentiate it from the pure self-referentiality
of formalist modernism, however—although there
可以, 当然, 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
编码, although it exists in off-line coding, 也许
best exemplified by Pall Thayer’s Microcodes (迈尔斯
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. 这
initial focus is on the formal part of the practice, 在
the medium or the tool, and it is only later, 当。。。的时候
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
channels, such as sitting among them while per-
forming (as with the band PowerBooks UnPlugged),
allowing people to contribute to the coding of dance
performers (例如, Kate Sicchio’s work), or submitting
code through Twitter (as in my own work with
the live-coding environment “ixi lang”). 之一
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, 虽然
many are commonly known to the audience. 这
is taking the etymology of the word “program”
严重地, as the Greek root, progr ´aphein, signifies
the activity of public writing (Hoad 1996). 居住
coders have also been prolific in explaining their
practice and systems of writing code, with journal
文章, 在线讨论, 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.
柯林斯 (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
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
数字 1. Kate Sicchio
dancing with code.
(Photograph by Bill Best,
谢菲尔德, 英国, Creative
Commons BY-NC-ND 3.0.)
modifying algorithms during the execution of the
程序. This is arguably a prerequisite of live cod-
英, 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
位置. 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
编码, 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
系统, 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
实践, leaving out other significant contributors
to live coding whose performance setup might be
相似的. 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, 这
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, 尽管
sending code snippets to each other for collaborative
编码 (Rohrhuber et al. 2007). The ensemble
describes itself as “the first acoustic computer
music folk band” (例如, 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. 他们的
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 纸 (Nilson 2007). 柯林斯, 有时
encrypted as “Click Nilson” (although rumor has
it that Nilson is retired), has written work for
the live coding of human improvising musicians
(柯林斯 2011), composed live coding scores (柯林斯
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 (不是
to be confused with Nick Collins).
Kate Sicchio (见图 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, unlike
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
电脑音乐杂志
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
数字 2. Wrongheaded
preaching code at the
Arnolfini in Bristol.
(Photograph by Megan
Farrow, Bristol.)
数字 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
编码, most notably present in the collective
Benoˆıt and the Mandelbrots (见图 3). 这
multilingual (both in terms of human and machine
语言) supergroup continually surprises with
their advanced systems, coding expertise, 和
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). 他们的
performances have impressed audiences around the
world through their range of expression, 编码
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) 有
created a live-coding environment called LOLC.
Magnusson
11
Dave Griffiths, a member of aforementioned
collective Slub, has created various live-coding
系统, notably the Scheme-based Fluxus for
graphical live coding, Al-Jazari (where he uses a
gamepad to program robots that make music), 和
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 (见图 2) is a col-
laboration between live coders Click Nilson and
Matt Yee-King. Their performances include strong
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
数字 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) 是
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, 在哪里
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). 这
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, 在哪里
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, 与
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
length (drones) whose parameters can be controlled
through a textual interface.
Loud Objects, a collaboration between Kunal
古普塔, 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]拉[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, 这
system can change it to another semantically or
syntactically related word. Knowing the system
出色地, 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
(见图 4), 例如, 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
电脑音乐杂志
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
on creating hardware in a live, performative con-
文本. An overhead projector displays how members
solder custom audio circuits using microchips,
capacitors, and transducers. Although their perfor-
mances consist solely of soldering hardware, 他们
represent a form of live programming, 因为他们
involve the hot-wiring of control structures in real
时间.
The list of live-coding practitioners enumerated
here could be much longer, but it sufficiently
demonstrates that there are no specific tools,
实践, 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, 除了
perhaps that algorithms are written and operated on
in real time. Each of the named practices addresses
specific problems involved in composing with
算法, some of which could be summarized as
如下:
(西德:2)
(西德:2)
(西德:2)
(西德:2)
(西德: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 (例如,
synthesis or temporal patterns)
Collaboration through network protocols
“Liveness” and the ability to control existing
结构
Embodiment and physicality
Live-coding systems as musical pieces or
works of art
(西德:2)
(西德:2)
(西德:2)
(西德:2)
(西德:2)
(西德:2)
As a novel research field with a strong practical
underpinning, live coding engages with diverse
unexplored and novel areas in (musical) composi-
的, human–computer interaction, programming-
language design, and performance studies, rendering
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. 这
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
艺术, the other stands firmly in computer science.
Having established itself in the past decade, 居住
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, 分别,
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, 和
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), 一种方法
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, 例如, 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
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
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, 这样的
as the GitHub host for the Git revision control
系统.
Live coding is the writing and performance, 在
real time, of music or other art forms, 包括
游戏, where algorithms are the primary form of
notation; it involves designing step-by-step rules
for machines, 人类, or others (例如, 动物
or nature) to execute. An effective performance
技术, 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, 和, 的确, 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, 确定性的, and static; their real-time
rendering allows for interpretation, 相互作用,
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, 和
观众 (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
软件, 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
时间, 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.
结论
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. 此外, 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, 然而, the live-
coding category serves an important purpose. 这
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. 历史上,
in the 17th and 18th centuries, musical scores
were often seen as descriptive of music, 相当
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, 居住
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.
此外, live coding manages to blur most
concepts of established musical discourse, 例如
作曲家, performer, and audience; instrument,
分数, and piece; 作品, 表现, 和
improvisation; stage and auditorium; and instru-
ment and tool. It presents an interesting take on
the modernist concern regarding form and con-
帐篷, and it blurs the concepts of presence and
absence as well as notions of present, 过去的, 和
未来. 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
电脑音乐杂志
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
concrete and hard-wired definitions of musical
实践.
致谢
I would like to thank Computer Music Journal’s
guest editor, Julian Rohrhuber, and Peter Castine for
their invaluable input.
参考
Aaron, S。, 等人. 2011. “A Principled Approach to Devel-
oping New Languages for Live Coding.” In Proceedings
of the International Conference on New Interfaces for
Musical Expression, PP. 381–386.
Aycock, J. 2003. “A Brief History of Just-in-Time.” ACM
Computing Surveys 35(2):97–113.
布莱克威尔, A。, and N. 柯林斯. 2005. “The Programming
Language as a Musical Instrument.” In Proceedings of
the Psychology of Programming Interest Group (页面
unnumbered).
Bovermann, T。, 和D. Griffiths. 2014. “Computation
as Material in Live Coding.” Computer Music Journal
38(1):40–53.
Bowker, G. C。, 和S. L. Star. 2000. Sorting Things
Out: Classification and Its Consequences. 剑桥,
马萨诸塞州: 与新闻界.
柯林斯, N。, 等人. 2003. “Live Coding in Laptop Perfor-
mance.” Organised Sound 8(3):321–330.
柯林斯, 氮. 2011. “Live Coding of Consequence.”
列奥纳多 44(3):207–211.
柯林斯, 氮. 2012. “Six Live Coding Works for Ensemble.”
Available online at www.sussex.ac.uk/Users/nc81/
livecodingworksforensemble.html. Accessed July 2013.
Dubrau, J。, 和M. Havryliv. 2010. “P[A]拉[pra]xis: Towards
Genuine Realtime ‘Audiopoetry’.” In Proceedings of
the International Conference on New Interfaces for
Musical Expression, PP. 467–468.
弗里曼, J。, 和一个. Van Troyer. 2011. “Collaborative Tex-
tual Improvisation in a Laptop Ensemble.” Computer
音乐杂志 35(2):8–21.
Goehr, L. 1992. The Imaginary Museum of Musical
Works: An Essay in the Philosophy of Music. 牛津:
牛津大学出版社.
Greenberg, C. 1961. “Avant-Garde and Kitsch.” In Art
与文化: Critical Essays. 波士顿, 马萨诸塞州:
Beacon Press, PP. 3–21.
Griffiths, D. 2007. “Game Pad Live Coding Performance.”
在J. Birringer, 时间. Dumke, and K. Nicolai, 编辑. Die
Welt als virtuelles Environment. Dresden: Hellerau,
PP. 169–179.
Hoad, 时间. F. 1996. The Concise Oxford Dictionary of
English Etymology. 牛津: 牛津大学出版社.
李, S. W., 和 J. 弗里曼. 2013. “Real-Time Music
Notation in Mixed Laptop-Acoustic Ensembles.”
电脑音乐杂志 37(4):24–36.
Magnusson, 时间. 2011A. “The ixi lang: A SuperCollider
Parasite for Live Coding.” In Proceedings of the
International Computer Music Conference, PP. 503–
506.
Magnusson, 时间. 2011乙. “Algorithms as Scores: Coding Live
Music.” Leonardo Music Journal 21(1):19–23.
Magnusson, 时间. 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
和M. de Valk, 编辑. Floss+Art. 伦敦: OpenMute,
PP. 224–231.
McLean, A。, and G. Wiggins. 2010. “Bricolage Program-
ming in the Creative Arts.” In Proceedings of the
Psychology of Programming Interest Group (页面
unnumbered).
McLean, A。, and G. Wiggins. 2011. “Texture: Visual
Notation for the Live Coding of Pattern.” In Proceedings
of the International Computer Music Conference,
PP. 621–628.
迈尔斯, 右. 2009. “Microcodes.” Furtherfield. 可用的
online at www.furtherfield.org/reviews/microcodes.
Accessed July 2013.
Nilson, C. [氮. 柯林斯]. 2007. “Live Coding Practice.” In
Proceedings of the International Conference on New
Interfaces for Musical Expression, PP. 112–117.
Puckette, 中号. 1988. “The Patcher.” In Proceedings
of the International Computer Music Conference,
PP. 420–429.
Resnick, M。, 等人. 2009. “Scratch: Programming for All.”
ACM 通讯 52(11):60–67.
罗伯茨, C。, 和 J. Kuchera-Morin. 2012. “Gibber: 居住
Coding Audio in the Browser.” In Proceedings of the
International Computer Music Conference, PP. 64–69.
罗伯茨, C。, G. Wakefield, 和M. 赖特. 2013. “The Web
Browser as Synthesizer and Interface.” In Proceedings
of the International Conference on New Interfaces for
Musical Expression, PP. 313–318.
Rohrhuber, J。, A. de Campo, 和R. Wieser. 2005. “Algo-
rithms Today: Notes on Language Design for Just in
Time Programming.” In Proceedings of the Interna-
tional Computer Music Conference, PP. 455–458.
Magnusson
15
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
Rohrhuber, J。, 等人. 2007. “Purloined Letters and Dis-
tributed Persons.” In Music in the Global Village
会议 (pages unnumbered).
史密斯, 右. B., 和D. Ungar. 1995. “Programming as an
经验: The Inspiration for Self.” In Proceedings
of the European Conference on Object-Oriented
Programming, PP. 303–330.
Sorensen, A. 2005. “Impromptu : An Interactive Program-
ming Environment for Composition and Performance.”
In Proceedings of the Australasian Computer Music
会议, PP. 149–153.
Sorensen, A。, 和一个. 棕色的. 2007. “aa-cell in Practice:
An Approach to Musical Live Coding.” In Proceedings
of the International Computer Music Conference,
PP. 292–299.
Sorensen, A。, 和H. 加德纳. 2010. “Programming with
时间: Cyber-Physical Programming with Impromptu.”
ACM SIGPLAN Notices, 45(10):822–834.
Swift, B., 等人. 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
计算, 1(2):127–139.
Ungar, D ., 和R. 乙. 史密斯. 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。, 瓦. 史密斯, 和C. 罗伯茨. 2010. “LuaAV:
Extensibility and Heterogeneity for Audiovisual Com-
puting.” In Proceedings of the Linux Audio Conference
(pages unnumbered).
Ward, A。, 等人. 2004. “Live Algorithm Programming
and a Temporary Organisation for its Promotion.” In
氧. Goriunova and A. Shulgin, 编辑. Read Me: 软件
Art and Cultures. Aarhus: Aarhus University Press,
PP. 243–261.
zm ¨olnig, I m. 2007. “Patching Music Together: 上校-
laborative Live Coding in Pure Data.” In Proceed-
ings of the Pd Convention. 在线提供:
artengine.ca/∼catalogue-pd/4-zmoelnig.pdf. Accessed
九月 2013.
我
D
哦
w
n
哦
A
d
e
d
F
r
哦
米
H
t
t
p
:
/
/
d
我
r
e
C
t
.
米
我
t
.
e
d
你
/
C
哦
米
j
/
我
A
r
t
我
C
e
–
p
d
F
/
/
/
/
3
8
1
8
1
8
5
5
9
7
3
/
C
哦
米
_
A
_
0
0
2
1
6
p
d
.
j
F
乙
y
G
你
e
s
t
t
哦
n
0
7
S
e
p
e
米
乙
e
r
2
0
2
3
16
电脑音乐杂志