You are on page 1of 13

The Many Meanings of Live Coding

Author(s): Andrew Sorensen, Ben Swift and Alistair Riddell


Source: Computer Music Journal , Spring 2014, Vol. 38, No. 1 (Spring 2014), pp. 65-76
Published by: The MIT Press

Stable URL: https://www.jstor.org/stable/24265533

REFERENCES
Linked references are available on JSTOR for this article:
https://www.jstor.org/stable/24265533?seq=1&cid=pdf-
reference#references_tab_contents
You may need to log in to JSTOR to access the linked references.

JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide
range of content in a trusted digital archive. We use information technology and tools to increase productivity and
facilitate new forms of scholarship. For more information about JSTOR, please contact support@jstor.org.

Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at
https://about.jstor.org/terms

The MIT Press is collaborating with JSTOR to digitize, preserve and extend access to Computer
Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Andrew Sorensen,* Ben Swift,1 and
Alistair Riddell*
The Many Meanings of
■"Institute for Future Environments
Live Coding
Queensland University of Technology
P Block, Level 8, P803-12, Gardens Point Campus
2 George Street, Brisbane, 4001, QLD, Australia
a.sorensen@qut.edu.au
1 School of Computer Science
Computer Science and Information Technology
Building (108)
Australian National University
Canberra, ACT 0200, Australia
ben. s wif t@anu .edu.au
*Photography and Media Arts, School of Art
Australian National University
Canberra, ACT 0200, Australia
alistair@alistairriddell.com

Abstract: The ten-year anniversary of TOPLAP presents a unique opportunity for reflection and introspection. In t
essay we ask the question, what is the meaning of live coding? Our goal is not to answer this question, in absolute
terms, but rather to attempt to unpack some of live coding's many meanings. Our hope is that by exploring some of
formal, embodied, and cultural meanings surrounding live-coding practice, we may help to stimulate a conversation
that will resonate within the live-coding community for the next ten years.

Musical meaning is predicated on communication, 1996). Second, meaning is conveyed through the
but communication does not entail meaning. run-time computational processes set in action
Ultimately, for any communication of musicalby the live coder's manipulation of code. This is
meaning to take place between a composer andthe an process-task semantics (Smith 1996). Finally,
audience, some shared interpretation is required, live
as coding's cyber-physical relationship with the
noted by Benjamin Boretz: physical environment results in perturbations in
the world (Sorensen and Gardner 2010). These
Thus the salient characteristic of an art entity
perturbations result in embodied meaning.
may, most generally, be considered to be its
Meaning in a live-coding context is therefore
"coherence"; and the extent of its coherence,
multifaceted—a complex interplay of symbolic,
and hence of its particularity as a work of
computational, and embodied meaning. Further
art, may be considered to reside in the degree
complicating these relationships is the fact that
of determinate complexity exhibited in the
ordered structure of subentities of which it is a
they are shared between a live-coding practitioner
and an audience, each of whose relationship with
resultant (Boretz 1970, p. 543).
the "meanings" of live coding will be unique.
Live coding (Collins et al. 2003; Wang and In this article, we attempt to unpack some of
Cook 2004) is a performance practice in which live coding's many meanings, paying particular
meaning exists on a number of different lev attention to the formal semantics which are so
els. First, meaning is inherent in the formal prominent in live-coding practice, with its com
system that defines the programming language mitment to the display of source code and the
interface used for live coding. This meaning is importance of algorithms. We approach this ques
known as the program-process semantics (Smithtion largely from a compositional perspective by
investigating the structural function of form. We
Computer Music Journal, 38:1, pp. 65-76, Spring 2014 acknowledge that ideas of meaning in music (and
doi: 10.1162/CC)MJ_a_00230 indeed in the arts more generally) have been widely
©2014 Massachusetts Institute of Technology. discussed elsewhere (Meyer 1956; Boretz 1970;

Soiensen et al. 65

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Goodman 1976; Cross and Tolbert 2009). We also that support an unprecedented spectrum of sonic
believe, however, that live coding offers a fresh possibilities. To fully realize the power of these
challenge to the interrelationships of meaning in most flexible of machines the live coder must work
formal systems and musical composition. To explore within the framework of formal systems.
these ideas we expand on the work of our colleagues Formal systems often play a functional role in
(Rohrhuber et al. 2007; Rohrhuber and de Campo musical composition and performance as accompa
2009; McLean and Wiggins 2010; Magnusson 201 la) nists, antagonists, muses, and even conductors, but
in the hope of encouraging further discussion of live are usually heavily directed by a human performer
coding's many meanings. (or performers) working through some form of non
formal interface—a keyboard, joystick, monome,
microphone, or similar.
Musical Formalism In live coding the performance is also heavily
directed by a human performer (the live coder), but
A core concern of the musical composer is managingin this case the interface is, itself, a formal system.
complexity. Musical form, at all levels, requires aWhat distinguishes live coding from other formal
delicate balance of coherence and novelty. In order approaches to music is that the formal system
to tame this musical complexity, some composersunder consideration can be modified on-the-fly by a
have turned to formal methods. The desire to impose human operator. In most traditional formal systems
order on the musical chaos of the times has found contexts (e.g., Genjam, cf. Biles 2007) the rules and
voice from antiquity to the present day (Loy 1989;axioms are unalterable, once the system is defined
Essl 2007; Edwards 2011). For instance, Johann it cannot be altered in playback. Live coding breaks
Joseph Fux, writing in 1725, objected: from this rigidity by supporting a human composer
at this time when music has become almost
who operates "above-the-loop," in that live coding
allows for the run-time modification of the system's
arbitrary and composers refuse to be bound
axioms and rules. By incorporating a formal language
by any rules and principles, detesting the very
interface into a real-time system composed of both
name of school and law like death itself (Fux
sensors and actuators, live coding enables composers
1965, p. 17).
to modify automatic formal systems designed for
music
Order, or coherence, in music is multifaceted. Oneproduction, and to do so in real time, at run
time.
important distinction in this regard is the distinction
between structural and cultural coherence. That
structural coherence in music would be amenable
to formal processes is largely self evident, formToken Meaning and Embodied Meaning
and structure being almost synonyms from a
compositional perspective. Cultural coherence, Although many computer music composers are
on the other hand, appears to be considerablycomfortable with formal languages (particularly
more difficult to formalize, and is perhaps best
computer programming languages) the relationship
between these formal systems and the musical
tackled "with that particular kind of exploration
that systematically extends perception; a kindabstractions
of which are built upon them are complex
exploration called 'play'" (David Keane, quotedandin often unclear.
Emmerson 1986, p. 111). John Haugeland (1981) describes the computer's
Live coding meets both structural and culturalcentral
cri processing unit as an automatic formal
system (AFS) that inputs, stores, manipulates, and
teria by supporting structural development through
formal methods, at the same time supporting the outputs meaningless tokens. These tokens are
systematic extension of perception through play.non-symbolic (in a Fregian sense; see Eco 1979)
in the
For the live coder, the digital computer supports that they lack referents. An algorithm—a set
construction of sonic micro-worlds—creative spaces
of instructions or "recipe" for manipulating these

66 Computer Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 1. A simple ixi lang
code example, playing the
four beat pattern: kick,
snare, kick, snare.

tokens—is a formal system that is defined


drums -> |k s k in
s terms
of manipulations of these tokens, a representation
without any external reference.
This is not to suggest that
is interesting
these within
meaningless
a computational context, be
tokens are meaningless internally.
cause the strong "cultural
Within
unit" (Eco the
1979), which
formal system tokens must have
helps to form a consistent
the frog concept, is only valid so long
semantics to support interpretation by the
as a pragmatic relationship with theAFS. In
concept remains
other words, they must have
valid. In a
other
syntactical
words, if the programmer
meaning.uses frog
What makes an AFS such a powerful
as the tool isanthat
name of a variable representing animated
these internal semantic engines
character, and acan be layered
robot (rather on
than a frog) is drawn
on the screen,
top of one another, operating the linguistic identity ofhigh
at increasingly the symbol
levels of abstraction. This allows
f rog programmers
is challenged, and a new sign productionto takes
place.
create new conceptual worlds that obey laws that
The "indexicality"on
are independent of the platforms of thiswhich
sign relation, they
between are
built. the frog and the computationally driven robot
animation, can
This suggests that semantics points tooperate
a powerful attribute
atof many
live
different levels, but raisescoding—its
the "cyber-physicality."
important By this we mean
question of
how meaning crosses semanticthat symbolsborders.
in the formal system have both a
According to
"computer world" (syntactic)
Charles Morris (1938), semiotics be can meaning and a "real
broken into
three fields: pragmatics (the
world" (pragmatic)
relationship
meaning through their
between
output
signs and interpreters), semantics on the screen. In live coding,
(the these two meanings
relation
of signs to objects), and are open to consideration and
syntactics (the modification by the
relations
of signs to one another).programmer, but not necessarily in a way
The distinction which
between
these three fields can be expressed keeps these meanings "inin sync" in all senses.of the
terms
relationship between the semantic Consider the token random (). Within the
levels context
they are
concerned with: (interpretation) of sound, meaning can be ascribed to
this symbol, forming a mental conception of white
Syntactics becomes relations within one level,
noise. The context of the interpretation is critical:
whatever the level is,- semantics becomes
in other contexts (chaos theory, for instance) where
relationships between two adjacent levels,- and
random () may produce an altogether different
pragmatics presumably becomes the relations
mental image. What makes live coding particularly
leading outside of the level scheme, whatever
interesting is that this mapping can be physical
"outside" is (Zemanek 1966, p. 140).
as well as conceptual. The symbol random (), in
Textual programming languages gain leverage the context of live coding, can reify the concept
from natural languages. It is therefore understand of white noise into a physical manifestation of
able that tokens commonly used in programmingwhite noise sounding in the environment. In other
languages would have culturally rich symbolic denowords, live coding can make sign production an
embodied experience, giving random () a real-time
tations. The existence of meaning at different levels
can get the programmer into trouble, however, andindexical relationship to white noise in the physical
the degree to which those denotations are syntactic,environment.
semantic, pragmatic, or a mixture of all three is of In the following, we start to unpack some of these
ten vague. A frog variable is a syntactic element inideas in a more practical context, starting with the
the C programming language and conveys meaning very simple ixi lang (Magnusson 2011b) example in
Figure 1.
for the interpreter (compiler) of the C language. The
frog variable also conveys semantic meaning for The tokens in this example (drums, ->, j, k,
the human programmer, denoting a frog—as a sense, and s) are all valid symbols in the AFS specified by
concept, or type. That these two meanings coexist ixi lang's creator, Thor Magnusson. These tokens

Sorensen et al. 67

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 2. An obfuscated Figure 3. Another ixi lang
version of the pattern in example, with the
Figure 1, written in the meaning of the symbols
gnal ixi language. changed from Figure 1.

gnal ixi }# epdddbdddpdddbddde drums -> |s k s k

have grammatical but not tokens that are interpreted


lexical meaning directly by
toboth the live
ixi
coder and the audience.
lang; there is no need for the kick and snare drum In the second example,
samples to be represented musical
byinformation
the symbols is conveyed only
k through
and a
hierarchical nesting of
s, they could just as easily be j and z. Grammati abstraction layers—tokens
cally, the meaning would are interpretedthe
remain by ixi lang,
same. turnedSemanti
into different
tokens which are interpreted
cally, however, given the context of this article, the by SuperCollider
symbol drums, and the use (which
ofixiixilang lang,
uses for audio signal processing),
it seems rea
turned into different
sonable to ascribe the concepts of kick to k and (signal-level) tokens to be
snare
interpreted by a digital-to-analog
to s. The kick k and snare s symbols convey mean converter (DAC),
transduced from
ing in the "conceptual musical world" electricalofenergy into magnetic
rhythm,
energy, and pushed
timbre, and musical structure (repetition), which out into the world as pressure
can
be understood by looking waves.
at the The difference
token here is analogous
string to the
alone.
difference between
Ultimately, the composer has a very human reading a score and listening to
an orchestra.
ability to attribute musical meaning to the symbols
k and s as a kick drum and Bothaofsnare
these approaches
drum, convey space
meaning, but
as
not the same
silence, | as a loop boundary, meaning.
and A semantic meaning
position as an can be
formally correctThis
indication of temporal structure. and yet assignment
represent an ambiguous,of or
false, relationship to the
meaning exists outside of the formal semantics of the world.
ixi lang system. There is aThe variation in Figure 3between
distinction also results in a the
kick
snare-kick-snare sonic
(human) musical meaning of a set of tokens and the result, although in this
example s signifies
meaning of those tokens within kick and k signifies
the formal system snare. This
in
obvious but important
which they are a well-formed string. These different problem is described by
Eco (1979) as the "referential
types of meaning are independent, as an fallacy." A formal
example
from gnal ixi (ixi lang's bizarro-world cousin)and yet
system can have a valid semiotic function
be false in the real world. This is of course true in
demonstrates. We doubt that anyone would grasp the
live coding in
musical meaning of the tokens systems, as with other
Figure 2 formal
without systems.
Live coding, however,
reference to the previous (see Figure 1) example. with its real-time relationship
And yet, upon executing withthe theexpression
physical environment, incan Figure
support the live
2
in gnal ixi, the live coder will immediately hearbetween
coder in more readily resolving ambiguities the
a multiplicity
musical result as a repeating of sign systems. This is a useful
kick-snare-kick
consequence
snare four-beat pattern. What this of the demonstrates
"liveness" of live coding. is
the difference between a static statement of formal
symbolic meaning and the idea of a statement "being
meaningful." This is significant as it suggests thatFormal Structures and Musical Hierarchies
live coding's "liveness" provides an active, dynamic,
and potentially physical "meaning" that is otherwiseThe appeal of a strong musical semantics in the
missing from a static symbolic interpretation of thetoken system is obvious. Musicians who are unfa
system. Embodied meaning. miliar with programming languages can intuitively
These two examples (Figures 1 and 2) demonstrate grasp what the tokens in the source code mean,
that "meaning" can happen through a semantic as well as what changes to the source would be
interpretation of tokens by a human interpreter necessary to achieve desired changes to the mu
or through the mechanical transduction of formal sical output. There is, however, an inherent cost
tokens into the physical environment. In the firstto building these higher-level "conceptual mu
example, musical information is conveyed via sical worlds"—that a generality inherent in the

68 Computer Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 4. Literal numeric Figure 5. A function that
values representing a (very uses the cos function to
"lo-fl") sine wave. generate a pure sine tone
as audio output.

sine -> /0.000 0.707 1.000 0.707 0.000 -0.707 -1.000 -0.707/

Figure 4

(bind-func dsp:DSP
(lambda (in time channel data)
(cos (* 2.0 3.141593 440.0 (/ time 44100.0)))))

Figure 5

manipulation of "meaningless" symbols gives way (although never to remove) the chance of being
to a structured hierarchy imbued with meaning. caught up in a referential fallacy.
Consider a contrived ixi lang sine wave designed as Let us briefly consider the implications of this
a signal-rate operation, as shown in Figure 4. for formal systems in the domain of sound and
It is clear that specifying waveforms in this direct music. At the signal level, computer hardware
pattern-language formalism is unwieldy, perhaps peripherals operate with numbers—for our present
impossibly so. From a perspective of formal systems, discussion, we will assume floating-point numbers.
the tokens in this ixi example must be literal values, In the Extempore code example in Figure 5, the
although what these tokens mean musically can dsp function is called directly from the DAC to
differ between different modes of the language—this "compute" a real-time waveform on a sample-by
example would be a signal mode, in addition to the sample basis. (More information about Extempore
melodic, percussive, and concrete modes currently and its programming language, XTLang, can be found
supported by ixi lang. The approach taken by ixi lang online at extempore.moso.com.au.) We anticipate
privileges token semantics that are information-rich that most readers will have an intuition about the
from a musical perspective (such as pitch numbers or musical structure of this code example—a 440-Hz
sample names) rather than tokens that are musically (concert A pitch) sine tone. Now consider the code
information-poor (such as the raw audio samples example in Figure 6.
offered for interpolation in this example). Musically, the example in Figure 6 represents the
It is worth noting that with an appropriate hidden same kick-snare-kick-snare pattern as the ixi lang
interpolation layer, this example may actually get example in Figure 1, with the sinusoid oscillating
quite close to the desired (sine wave) result—an ixi between the general MIDI "drum" numbers 36 (kick)
pattern language for signals. There are, nevertheless, and 38 (snare). What is interesting about this simple
certainly representations that are more economical example is the degree to which an intentional
and that describe the real-world phenomenon of representation (that of a signal-level sinusoid)
sound more generally. almost forces itself upon those who already possess
It is worth considering that, where computer an appropriate system of interpretation. These two
science gains leverage through formal abstraction, examples help to demonstrate that it is not domain
engineering gains intellectual leverage through knowledge of the mathematical cosine function,
mathematical modeling. This allows engineers to nor of Extempore's XTLang programming language,
tame an unruly reality, but it does not provide instead it is a common domain understanding
the explicit interface or conceptual world that of the cosine's usage in signal processing that gives
abstractions from computer science provide. In the first example a clearer musical meaning than
other words, the purity of mathematics, with its the comparatively unusual usage of a cosine for
unintentional stance (Dennett 1989), divorces it flip-flopping between two MIDI values. From the
from the type of semantic entailment that higher formal position of syntactically valid XTLang token
level computational abstractions may invoke. The strings, there is virtually no difference between the
value, then, of an unintentional stance is to lessen two.

Soiensen et al. 69

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 6. Anothei use of
the cos function, but this
time in a sequencing role.

(bind-func drums
(lambda ()
(play drums
(+ 37 (cos (* 2.0 3.141592 0.1 (/ time 44100.0))))
80

.1)
(sys:sleep 5000)))

These simple examples have shown In


the relation
Figure 7, we deliberately conflate elements
ship (at times complicated) between the of what would usually be considered to belong to
different
types of meaning the composer is dealing"discrete with
event" in
versus "signal level" abstractions.
using formal systems for musical expression. One dsp example (Figure 5), we
As in the proceeding
take thea DAC's
surprising point is the fact that, although floating-point representation as
musical
our
legibility (a lexical semantics) in token symbol "floor."
strings offersWe include comments in this
example for is
some benefits, in live coding this relationship theless
reader's benefit, although these
necessary, because musical meaning would can be not derived
usually be present in a real live coding
through the algorithm's execution and realization
context.

in the world. Having the live coder present This brief in Extempore example (Figure 7) sh
the loop connects the token systemcomplete, to its embod run-time compiled, on-the-fly mod
ied musical result and allows for fuller reflection "waveform generator." A small, self-contain
on the current state of the musical system. This musical piece, it includes pitch, dynamic, ti
allows the token system itself to be less strongly and spectral dimensions. As with the earlie
coupled to the musical domain it seeks to represent, function, caprice is called on a sample-by-
which provides other benefits to the live coder, as
basis in order to directly calculate a waveform
we shall attempt to articulate in the next section. The caprice plays "notes" of stable pitch
constant volume at a rate of 4 Hz. It does this
not through any built-in concept of a note, but
Meaningless Tokens Are Powerful Tokens by performing a modulo check on the raw time
index, a counter that increments once per audio
We take the idea of a sound object (by which we sample (at 44.1 kHz). If this check returns zero, the
mean the commonsense definition as the "lowest code (non-deterministically) changes the values of
level component" or "fundamental building block" the local state variables pitch and volume. In the
of a musical composition) as a good starting latter point part of the function, these values are used
for a musical exploration of the semantic issues (along with a trivial implementation of the Karplus
discussed in the previous section. The idea of Strong plucked string algorithm) to generate the
an atomic sound object, having a fixed number signal.audio
of discrete and highly quantized parameters, isOur purpose here is to highlight the generality
largely redundant to the modern computational of specification afforded by working directly with
composer. Instead, the sound object is unstable the symbol system's floating-point "floor." There
and composable, and this shifting identity isare no explicit notes, unit-generators, schedulers, or
now
a central part of computer music practice. The any other sound- or music-related abstractions—the
live coder is free to choose which attributes define function simply returns the raw digital values that
the sound object, what their capacities are, and make up the audio waveform. What makes the
whether these attributes are stable or unstable over example interesting is the high degree of musical
time. information conveyed with little to no higher-order

70 Computer Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 7. A small, referring to values in Figure 8. Caprice
self-contained caprice arrays. By convention, all abstracted to multiple
written in Extempore's operators that change polymorphic parts.
XTLang. The operators values in place end with
aset! and aref are array an exclamation
operators for setting and point (!).

(bind-func caprice 10000


;; initialize and allocate delay line and declare local vars
(let ((dline:|1024,double|* (alloc))
(pitch 1024.0)
(volume 0.0)
(i 0) )
(lambda (in:double time:double channel:double data:double*)
;; every 11,02 5 samples (i.e., 4 Hz), do:
;; - set pitch via random delay line length (100 to 1,000 samples)
;; - fill delay line with white noise
(if (= (% time 11025.0) 0.0)
(begin (set! volume (random))
(set! pitch (+ 100.0 (* 900.0 (random))))
(dotimes (i 1024) (aset! dline i (random)))))
;; filter delay line in place (only on first channel)
(if (= channel 0.0)
(aset! dline (dtoi64 (% time pitch))
(* 0.5 (+ (aref dline
(dtoi64 (% time pitch)))
(aref dline
(dtoi64 (% (- time 1.0) pitch)))))))
;; output (same for all channels, i.e., mono)
(* volume (aref dline (dtoi64 (% time pitch)))))))

Figure 7

(bind-func poly-caprice 100000


(let ((kl (caprice 5000.0))
(k2 (caprice 10000.0))
(k3 (caprice 15000.0)))
(lambda (in:double time:double channel:double data:double*)
(* 0.5
(+ (kl in time channel data)
(k2 in time channel data)
(k3 in time channel data))))))

Figure 8

musical abstractions (although our intention is still We are not arguing against abstraction, of course.
hinted at in our choice of symbol names such as Consider the simple change outlined in Figure 8. By
pitch and time). abstracting caprice into a higher order function
It is also worth noting the imperative nature of we can trivially combine any number of polyphonic
this code. This addresses two very real issues for caprice parts. We also took the opportunity to
live coders. We suggest that imperative code allows introduce inter-onset times for each part.
audiences, as well as live coders, to gain a greater It is in this easy switching between levels of ab
insight into the operation of the algorithms being straction, hoisting the tokens of the formal language
developed. Also, by working at "ground level," the up and down the ladder of musical meaning as re
live coder is presented with considerably greater quired, that we see the true power of live coding in a
flexibility when exploring new algorithms. formal systems context. As an example, Extempore

Sorensen et al. 71

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 9. An Extempore
function that plays an
Alberti bass as it moves
through a circle of fifths.

is fully committed to the idea of token(define


generality
alberti-bass

by making the whole application stack(lambda (beat


available dur root)
(play bass
for run-time modification. For some perspective on
(alberti-arpeggiate beat root)
the scope of this run-time modifiability, 80 Extern
pore's compiler, including the very semantics of the
1/2)
language, is available for run-time modification.
(callback (*metro* (+ beat (* .5 dur)))
What this level of run-time reconfiguration 'alberti-bass
means (+ beat dur) dur
in practice is that composers are free to peek (circle-of-fifths-next-root
and root))))
poke their way around the whole audio stack, at run
time—replacing, extending, or deleting thethe
;; start audio
bass line, beginning on the tonic
infrastructure as they see fit. (alberti-bass (*metro* 'get-beat 4) 1/2 'I)

Breaking Open the Black Box High-level formal systems for composition may
easily fall victim to the "iceberg effect," with tops
visible
From a composer's perspective, the desire to above
create the water and large, unwieldy internals
abstractions is understandable, sincelying
musicunseen
ex below the surface. The common prob
lem is that high-level musical algorithms tend to be
hibits structure at so many different compositional
layers. either overly coherent or overly inventive—whereas
it is not the aggregate of perceived coherence, but
Since musical structures are architectonic, a rather a distribution of coherence and invention
particular sound stimulus which was considered through time, that is important for musical mean
to be a sound term or musical gesture on one ing (Meyer 1956). Coherence, within the context
architectonic level will, when considered as of music, is not simply a mathematical property,
part of a larger more extended sound term, no but a function of shared cultural and social val
longer function or be understood as a sound ues. Consider the code snippet in Figure 9 (again
term in its own right. In other words, the sound in Extempore) of an Alberti bass line as it moves
stimulus which was formerly a sound term can harmonically through a circle of fifths, starting with
also be viewed as a part of a larger structure in the tonic.
which it does not form independent probability The alberti-arpeggiate and circle-of
relations with other sound terms. In short, the f if ths-next-root functions (which are part of
same sound stimulus may be a sound term a fictional high-level composition library) provide
on one architectonic level and not on another
the arpeggiation and root movement information
(Meyer 1956, p. 47). respectively, freeing the composer from the need to
Constructing high-level musical systems, inexplicitly
the define these processes in their code.
form of algorithms that work on representations Now consider another code snippet that produces
the exact same musical result, but that prefers
at music-theoretic levels (scale modes, beat-based
meter, diatonic harmony, etc.), does seem like an mathematical functions and programming
basic
appealing use of an AFS from a compositional language built-ins instead of higher-level musical
standpoint. As Gareth Loy points out, however:
abstractions. As discussed in the previous section,
the flexibility in the musical meaning of the tokens
Given a method or a rule, what is usuallyin the source code allows easy switching between
these different levels of abstraction.
deemed compositionally interesting is to follow
it as far as to establish a sense of inertia, orIn Figure 10, root represents the scale degree
expectancy, and then to veer off in some way (using a 0-based indexing scheme, so 0 for the tonic,
that is unexpected, but still somehow related4 to
for the dominant, etc.). The alberti-bass-2
what has gone before (Loy 1989, p. 298). function is called every half a beat (every eighth

72 Computer Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
Figure 10. Another version
of the Alberti bass
function, this time using
lower-level mathematical
operations rather than
high-level "music
composition" abstractions.

(define alberti-bass-2
(let ((scale '(02457911)))
(lambda (beat dur root)
(play bass
;; calculate which pitch to play by indexing into the
;; 'scale' list
(+ 48 (list-ref
scale
(modulo
(+ root
;; 'alberti' case statement
(case (modulo beat 2)
((0) 0)
((1/2 3/2) 4)
((1) 2) ) )
7) ) )
80
1/2)
(callback (*metro* (+ beat (* .5 dur)))
'alberti-bass-2 (+ beat dur) dur
;; every four beats, move through the circle of 5ths
(if (= (modulo beat 4) 0)
(modulo (+ root 3) 7)
root)))))

(alberti-bass-2 (*metro* 'get-beat 4) 1/2 0)

tening, evaluating,
note), and the exact pitch to play is determined by and considering their next move.
This is
the current root plus an offset (calculated using awhere the generality of the alberti-bass
case statement) to perform the arpeggiation. The
2 in Figure 10 provides a benefit: The live coder can
thing to note about this example is that although
tweak the case statement to change the arpeggiation
there is some musical domain knowledge encoded
pattern, or edit the scale variable to use a different
mode, or alter the harmonic movement from a
into (for instance) the scale list, the manipulation
straight
of the tokens is largely performed through circle of fifths to something more complex.
basic
mathematics. There is no domain knowledge
In the first alberti-bass example, in contrast, the
hidden behind the tokens, no perform-complex
very tokens that allow the composer to easily guess
musical-transformation function hiding
whatits
the code accomplishes also conspire to make
internals. it difficult to get it to do anything else. Without
In some senses, the first version (Figure 9) is more the ability to change the alberti-arpeggiate
transparent. The musically savvy observer stands function (as would be the case if it were part of a
a good chance at guessing what the alberti monolithic formal composition system), live coders
arpeggiate and circle-of-fifths-next-root are limited in the changes that they can make.
functions do, and can therefore figure out what the In our own live-coding practice we have found
overall sound is going to be. Again, this is similar this second approach to be more fruitful. It is a strat
to our ixi lang example from before, in which the egy that live coding is relatively unique in affording:
pattern language version was more meaningful the ability to peer inside and manipulate the formal
when considered purely as a string of tokens. system while it is running, and the ability to hear
The live coders, however, are not simply appre
and judge the results of these manipulations instan
ciating the code as a string of tokens. They are lis
taneously. Whereas offline algorithmic composers

Sorensen et al. 73

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
must wait to hear how changes to their system are style, community, or movement. To again quote
behaving, live coders are able to hear whether their from Meyer:
system is working well (or not) much earlier, and
Musical meaning and significance, like other
are, therefore, able to apply corrective actions in a
kinds of significant gestures and symbols, arise
way which we have found to be extremely fertile
out of and presuppose the social processes
from a creative standpoint.
of experience which constitute the musical
Given the obvious temporal constraints imposed
universes of discourse (Meyer 1956, p. 60).
on the live coder, it may seem counterintuitive
to promote this lower-level structural approach. It It is clear, however, that musical intention and
promotes a generality, however, that allows the live musical understanding do not form a fixed and con
coder to operate with a smaller subset of operators stant relationship. Where art is at its most powerful
without sacrificing utility. is in the margins—the space between total under
It is through a series of structural choices (the standing and complete intention. Nevertheless,
choice of symbolic floor, a flatter or a more hierar there must always be enough shared understanding
chical structure) that an ontological commitment is for communication to remain possible. It is in find
made for a given performance. That these choices ing the correct balance between norms and deviants
are essential to defining the character of a particular that artists struggle. For Meyer, musical meaning is
performance seems uncontroversial in the case of a product of these expectations.
an improvisational practice like live coding. We are The ability to balance the norms and deviants
also suggesting, however, that this ontological com required to communicate a meaningful musical
mitment forms the basis of all musical composition. message has proved to be problematic for purely
One ramification of this is that each individual formal computational systems. We believe that by
computational work is inherently dependent ongiving
its the responsibility of higher-level structural
own unique ontological commitments. coherence (through the orchestration of run-time
processes) to the live coder, human perception
and intuition can be brought to bear on what is
ultimately a cultural and inherently non-linear
On Intention and Understanding problem. The live coder is able then to choose
a meaningful pathway between social norms and
We have spent some time in this article describing
deviants, and—most importantly—to chart this path
a triumvirate of musical meaning including the anew for each and every performance.
symbol (code), the referent (sound), and the inter
While the meaning of a musical work as a
preter (both listener and machine). That musical
whole, as a single sound term, is not simply the
meaning can be expressed as a variable combination
sum of the meanings of its parts, neither is the
of these constituent parts is of some interest to the
entire meaning of the work solely that of its
live coding community whose mantra is that "code
highest architectonic level. The lower levels are
should be seen as well as heard" (The Lubeck 04 both means to an end and ends in themselves.
Manifesto, Ward et al. 2004).
The entire meaning of a work, as distinguished
Audiences believe in the logic and purposefulness
from the meaning of the work as a single sound
of the composer and his or her intentions. As Leonard
term, includes both the meanings of the several
Meyer points out, "Though seeming accident is a
parts and the meaning of the work as a single
delight, we believe that real accident is foreign to
sound term or gesture. Both must be considered
good art" (Meyer 1956, p. 74).
in any analysis of meaning (Meyer 1956, p. 47).
The variability of relationships between a par
ticular live-coding performance's meanings are Ultimately,
a though, it is arguably the support that
reflection of real, objective cultural values, ones
live coding provides for easily shifting between AFSs
that express themselves in the form of a musicalof different levels—different semantic layers—that

74 Computer Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
may prove its enduring legacy. As Meyer articulates We believe that, after over ten years of live-coding
in the previous quote, musical form is a complex practice, the value of interacting with composing
interrelationship of hierarchical meanings that are algorithms in real time is beginning to reveal itself,
not easy to untangle. The great advantage for live and in ways that the computer music community of
coding is the presence of a human agent who provides three decades ago could not have imagined.
an exit/re-entry point for switches between formal
systems as well as for the on-the-fly redefinition of References
a formal system's rules and axioms. This human
in-the-loop approach to the development of formal Biles, J. A. 2007. "Improvizing with Genetic Algorithms:
systems is a unique contribution to the artistic Genjam." In Evolutionary Computer Music. Berlin:
landscape. Springer, pp. 137-169.
Boretz, B. 1970. "Nelson Goodman's Languages of
Art from a Musical Point of View." The Journal of
Conclusion Philosophy 67(16):540-552.
Collins, N., et al. 2003. "Live Coding in Laptop Perfor
mance." Organised Sound 8(3):321—330.
The live coder's ability to orchestrate abstract
Cross, I., and E. Tolbert. 2009. "Music and Meaning." In
formal processes in perceptual response to the
The Oxford Handbook of Music Psychology. Oxford:
acoustic environment provides scope for intuition Oxford University Press, pp. 24-34.
and play. By supporting a dynamic interplay Dennett, D. C. 1989. The Intentional Stance. Cambridge,
between the composer's formal intentions and the Massachusetts: MIT Press.
machine's formally derived actions, the composer Eco, U. 1979. Theory of Semiotics. Bloomington: Indiana
is able to guide the musical outcome, as embodied University Press.
in the physical environment. By placing a human in Edwards, M. 2011. "Algorithmic Composition: Compu
the loop, live coding provides not only the means to tational Thinking in Music." Communications of the
critique an algorithm (as any offline method also al ACM 54(7):58-67.
lows) but also to modify an algorithm over time—to Emmerson, S. 1986. The Language of Electroacoustic
Music. London: Macmillan.
steer the result in culturally meaningful directions.
Essl, K. 2007. "Algorithmic Composition." In N. Collins
In this article we have attempted to open a di
and J. d'Escrivan, eds. The Cambridge Companion
alog on the multiple levels of meaning present in to Electronic Music. Cambridge, UK: Cambridge
live-coding practice. We have discussed the com University Press, pp. 107-125.
poser's role in the formation of various ontological Fux, J. 1965. The Study of Counterpoint: From Johann
commitments, with some regard to the inevitable Joseph Fux's Gradus ad Parnassum, trans. A. Mann.
compromises associated with different levels of New York: Norton.
representation. Ultimately, we have only begun to Goodman, N. 1976. Languages of Art: An Approach
explore the complex interwoven semantics inherent to a Theory of Symbols. Cambridge, Massachusetts:
Hackett.
in live-coding practice. Our hope, then, for this
modest contribution is to engage the community in Haugeland, J. 1981. "Semantic Engines: An Introduction
to Mind Design." In f. Haugeland, ed. Mind Design.
a robust discussion surrounding the many meanings
Cambridge, Massachusetts: MIT Press, pp. 1-34.
of live coding.
Loy, G. 1989. "Composing with Computers: A Survey of
We conclude with an observation from William
Some Compositional Formalisms and Music Program
Schottstaedt in 1987. In regards to his Pla computer
ming Languages." In M. V. Mathews and J. R. Pierce,
music language, he wrote: eds. Current Directions in Computer Music Research.
Cambridge, Massachusetts: MIT Press, pp. 291-396.
To my surprise, neither the real-time input Magnusson, T. 201 la. "Algorithms as Scores: Coding Live
of data nor the real-time interaction with
Music." Leonardo Music Journal 21(21): 19-23.
composing algorithms has generated muchMagnusson, T. 2011b. "The ixi lang: A Supercollider
interest among other composers (Schottstaedt Parasite for Live Coding." In Proceedings of the Inter
1989, p. 224). national Computer Music Conference, pp. 503-506.

Sorensen et al. 75

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms
McLean, A., and G. Wiggins. 2010. "Bricolage Program Smith, B. C. 1996. On the Origin of Objects. Cambridge,
ming in the Creative Arts." In Annual Workshop of the Massachusetts: MIT Press.
Psychology of Programming Interest Group. Sorensen, A., and H. Gardner. 2010. "Programming
Meyer, L. 1956. Emotion and Meaning in Music. Chicago, with Time: Cyber-Physical Programming with
Illinois: University of Chicago Press. Impromptu." ACM SIGPLAN Notices 45(10):822
Morris, C. W. 1938. Foundations of the Theory of Signs. 834.
Chicago, Illinois: University of Chicago Press. Wang, G., and P. R. Cook. 2004. "On-the-Fly Pro
Rohrhuber, J., and A. de Campo. 2009. "Improvising gramming: Using Code as an Expressive Musical
Formalisation: Conversational Programming and Instrument." In Proceedings of the Conference on
Live Coding." In G. Assayag and A. Gerzso, eds. New Interfaces for Musical Expression, pp. 138
New Computational Paradigms for Computer Music. 143.
Sampzon, France: Delatour. Ward, A., et al. 2004. "Live Algorithm Programming
Rohrhuber, }., et al. 2007. "Purloined Letters and and a Temporary Organisation for Its Promotion." In
Distributed Persons." In Music in the Global Village O. Goriunova and A. Shulgin, eds. Proceedings of the
Conference (pages unnumbered). README Software Art and Cultures Conference, pp.
Schottstaedt, W. 1989. "A Computer Music Language." 243-261.
In M. V. Mathews and }. R. Pierce, eds. Current Zemanek, H. 1966. "Semiotics and Programming
Directions in Computer Music Research. Cambridge, Languages." Communications of the ACM 9(3): 139
Massachusetts: MIT Press, pp. 215-224. 143.

76 Computer Music Journal

This content downloaded from


213.55.244.33 on Fri, 22 Apr 2022 15:49:48 UTC
All use subject to https://about.jstor.org/terms

You might also like