DOKK Library

The live coding of slub - Art oriented programming as media critique

Authors Christian Ulrik Andersen

License CC-BY-2.5

Plaintext
                                    THE LIVE CODING OF SLUB
           - ART ORIENTED PROGRAMMING AS MEDIA CRITIQUE
                                        Christian Ulrik Andersen
                                       Ph.D., Assistant Professor
                                     Information and Media Studies
                                     University of Aarhus, Denmark
                                         cua@multimedia.au.dk

                     Published under Creative Commons, Attribution 2.5 Denmark
                              http://creativecommons.org/worldwide/dk/

ABSTRACT: Computer art is often associated with computer-generated expressions (digital
audio/images in music, video, stage design, etc.). In recent computer art, however, the code-text itself –
not the generated output – has become the artwork (Perl Poetry, ASCII Art, obfuscated code, etc.). This
paper will analyze and discuss code as the artist's material. In particular, it will focus one particular
artistic code-praxis: the Live Coding performances of Slub (programming computer music live,
visually showing the coding)
          The artists Alex McLean and Adrian Ward (aka Slub) along with Geoff Cox declare: "art-
oriented programming needs to acknowledge the conditions of its own making – its poesis." (Cox et. al.
2004) The paper will argue that this statement formulates a media critique. As Florian Cramer has
proposed, the GUI represents a media separation (of text/code and image) causing alienation to the
computer's materiality/text. (Cramer 2003) The paper will then propose that object of art oriented
programming – in an avant-garde perspective – must be to recuperate an interchangeability of data and
processing. How?
          The particularity of Live Coding does not rely on the magical expression – but nor does it rely
on the code/material/text itself (as one might say is the case in some code-art). It relies on the nature of
code to do something – as if it was magic: in the performative aspect of the code. Relying on
performance theory (Austin, Carlson) the paper will demonstrate how the computer in the Live Coding
sessions is much more than mere mechanic performance. The paper will explain how code itself is
staged as performative language (interchanging data and process) and further focus on the performance
of code before an audience. Arguing that the performance excludes the audience (esoteric code), the
paper will raise the question of whether listening to the code (at a non-textual level) may provide an
embodied experience of data-processing. The performance can be regarded as a collective appreciation
of the code artist as a musician using code as his/her instrument, interchanging data and process live.

An interest in code has been a central theme in computer art through the past decade
or so. Amongst many ‘software artists’ there is a fundamental interest in creating
expressions that consider and play with aspects of the computer code – such as poetry
written in the programming language Perl (‘Perl Poetry’ – as displayed here). Even
the 2003 edition of Ars Electronica was entitled ‘Code – The Language of Our Time’.
This aesthetic interest in code language is of course not new – but has been vigorously
investigated in many different ways –exchanging the order of the book with the
chance of the dice by Mallarmé; addressing the reader using instructions (as by
Tristan Tzara, displayed here); in the concrete poetry of the 50s; in the
‘psychogeography’ of the situationists; in avant-garde music by John Cage – and so
forth.
         One of the most interesting examples of today’s ‘code art’ is the Live Coding
performances as for instance performed by the artists Alex McLean and Adrian Ward
                                                                                                          1
(aka Slub and I mention them because McLean and Ward, along with Geoff Cox,
have been very explicit about their praxis – but in general one can consult the website
toplap.org for an overview of the praxis of live coding: events, writings, software,
etc.).1
          What is unique in a live coding performance is the incorporation of a live
aspect of code, not usually seen. In their performance the two programming artists
experiment with live programming of electronic music. Instead of having pre-
programmed the music or performing through a graphical software application
interface (a sequencer e.g.), the live coders appear as musicians mastering the code as
a musical instrument. Through large screen projections displaying the artist’s code,
the audience at their side gets a glimpse of the code as the creative force in the music.
To emphasize the particularity of the live coding performance, the code-text is
ultimately deleted: Contrary to how we usually see computer code, the code is
ephemeral; it is the coding performance that is the work of art – not the algorithms
themselves.
          How do we perceive this obsession with code in software art? What makes a
‘code performance’ particular – to the user of a computer; to the programmer; and to
the audience?
          In this presentation I want to discuss live coding as a media critique; the live
coders’ reasons for reclaiming what could be called a code poesis; and finally, what
all this means to an ignorant audience. I will argue that we must understand the live
coders’ obsession of code as an affirmation of a performative aspect, usually
repressed in our operation of the computer. Their musical performance involves a
critique of the computer as media and of the status of both programmer and user in
our society.2


Code as media critique
                  When Alan Kay developed the first graphical mouse-
                  controlled computer environment at Xerox PARC in the

1
  Performed e.g. at the Read_me festival for software art in Aarhus, Denmark, 2004.
http://projects.dorkbot.org/rd04/wiki/MediaFiles?action=AttachFile&do=view&target=livecoding-
read_me04-01.mov
Many other audio and video examples can be found at http://toplap.org.
2
  In my discussion of the roles of the user and the programmer, I very much depend on the aesthetic
and political philosophy of Jacques Rancière – but, because of the scope of the conference being ‘code’
and the limited period of time we are granted as speakers, I feel obliged to keep this reference implicit.
                                                                                                        2
               1970s, the separation between ‘usage’ and
               ‘programming’ was for the first time implemented as
               separation of media. ‘Usage’ became graphical,
               ‘programming’ textual. The gap widened with the
               commercialization of Kay’s ideas through the Apple
               Macintosh and Microsoft Windows.
       (Florian Cramer 2003, 100)


As interface historians often have stated, it is the invention of the Graphical User
Interface that made the computer available to a general public. The German software
theorist Florian Cramer, however, describes the negative effect of the GUI as an
absolute media separation (Cramer 2003, p. 100). The GUI seemingly separates the
computer code (the text) from the use of the computer (the image). Before the GUI,
this was not the case. In the old days – where you interacted with computers by
writing instructive text– the one using the computer and creating its images was also
the one writing the text/programming the machine. When the user no longer writes
the text and the code becomes invisible, her role is reduced to the one of the reader.
       One may actually say that ‘the user’ as a passive, consuming recipient is born
the moment you separate the text from the image. From having been the user’s own
machine that she coded herself, the user is now staged as a spectator – with very
limited awareness and control of her own position. The computer is absorbed by the
consumer society.
       An artistic uproar against the invisibility of the code is, as such, a resistance to
a visual, capitalistic, consumer, media society. This revolt is not unlike a traditional
avant-garde way of thinking and acting: It wants to reveal the consumer society’s
anaesthetization and alienation (‘verfremdung’) of the consumer. The hacker, the one
insisting on accessing the code and writing her own code, does to the graphical user
interface what Brecht did to the theatre. With a reference to Roland Barthes’ idea of
‘le scriptible’ (Roland Barthes 1970, p. 10), Cramer thus advocates for a ‘writerly
computing’ where the user is not just a consumer but also a producer of the text
(Cramer 2003, p. 10). In this line of thinking, the user should once again become a
programmer.
       A broad line of software artists claim – partially inspired by Cramer – that in a
culture where our most valuable tools are computer interfaces that organize and
represent invisible data as images, one should maintain a critical approach to these

                                                                                           3
representations. The present trend in computer art, exhibiting the otherwise revealed
code, perceives itself as such a critique.
        The Live Coding performances however, I believe, cut deeper into the
implications of this so called ‘media separation’ alienating the user. They not only
suggest that the code itself is suppressed, they also suggest that a performative aspect
is suppressed in the usual employment of the computer in our society. To understand
this and how and why live coding revives a performative aspect of code, we must first
look deeper into how computers and code actually operate.


The role of the reader/user: The performative language – code as
instruction
               “Open, sesame!”
        (1001 Arabian Nights)


The critique of the Graphical User Interface seems to favour the text for the graphical.
The issue, however, is not whether the presentation of the computer is graphical or
textual. It is a question of semantics and grammar. We must therefore begin by taking
a closer look at the particularity of code as a type of language.
        John Langshaw Austin states in How to Do Things With Words that language
does not just make sense by referring to- or describing an object in a factual way.
        Most likely, nothing would ever happen if someone incidentally stood in front
of the cave of the 40 thieves and said “cave”. What is crucial is that Ali Baba knew
‘the magic words’. We are witnessing two oppositional language systems: An
abstract, symbolic language with signs relating to objects (as when I say “cave”) and a
performative, magic language where speaking involves an action (as when I say
“open, sesame!”).
        Austin draws attention to these other semantic sides of language and speech
not usually emphasized. The utterance of certain sounds may refer to a meaning. But
apart from its referential signification it is also characterized by il-locutionary acts. In
saying something you actually also do something. You may for instance promise
something, order something or claim something. What is meant, of course, depends
on the situation – a semantic, discoursive level of language, allowing the user of
language to generate more complex enunciations.

                                                                                           4
         Even though computer code is not meant to be spoken, code as a type of
language compares very well to Austin’s ideas of ‘speech acts’ (as also German
curator and media theorist Inke Arns confirms).3 Computer code is full of ‘magic
words’ and it is essentially performative. This implies a language that is instructive
and a language where the situation dictates the meaning of the speech act. This way,
by referring not to the meaning of the word but to the situation in which it is used,
higher levels of complexity can be reached.
         Not all ways of instructing a computer, however, allows a semantic
complexity. At an abstract level where users interact with computers, we find the
graphical user interface. The graphical user interface tends to be predominantly
referential. Symbols refer to certain meanings and actions. The ‘trash bin’ symbol
signifies the deposition of files e.g. The one using the graphical symbols to operate
the computer is thus cut off from semantic operations where you combine words and
create situations yourself.
         Whereas the average user of a computer operating graphical symbols uses a
referential language, the live coder insists on using the code as a speech act.
Exhibiting this type of interaction based on the programmer’s own algorithms and
instructions is not so much about denying the visual images of the computer and
promoting its textual level as it is about stressing a certain grammar and semantics of
the computer that the graphical user interface traditionally denies and suppress. What
is rejected is not the images themselves but the fixation of the user of the images and
the assertion of other behaviours and languages that escapes these traps of visual
culture. In that sense, live coding carries several characteristics of other contemporary
art genres also reclaiming a performative aspect of language and a political,
democratic right to express oneself.
         But it is not just the use of the computer and the role of the user that is
transformed in live coding; it is also the programming and the role of the programmer.




3
  As discussed at SLSA’07 conference, Code, in Portland, Maine, Austin’s speech act theory seems
only appropriate when talking about code as a bodily, sensual experience – as it is the case in Live
Coding. Code as perceived and performed by the computer is better described by linguistic theories
focusing on the performative properties of language itself, isolated from the body (as e.g. the semantic
theories of Émile Benveniste).
                                                                                                       5
The role of the author/programmer: The performing machine – code as
ephemeral
               ... code as performative: that which both perform and is
               performed.
               (Cox, McLean & Ward 2004, p. 161)

In the 1930s the British mathematician Alan Turing proposed a sort of calculating
machine where a mathematical language based on numbers (arithmetic) is replaced
with a mathematical language based on letters (algorithms). This machine can
perform any mathematical calculation – as long at it is represented as an algorithm,
meaning a well defined (textual) instruction for alterations of states. Perhaps one
could say that this machine holds not the calculation but the recipe of the calculation.
       The Turing-machine (so called – and, later to be known as the computer) is
thus characterized, not by the calculations as such, but by their symbolic expression
and the possibility of making the symbolic expression available in a
physical/mechanical form. A computer is therefore a particular technological
invention characterized by being (both) text and machine, media and tool – an
invention where information and process are inseparable.
       As such, one may talk about a computer as a tool, a machine that performs –
just as other machines perform. This type of performance however – contrary to the
raw power of the engine – makes little sense without understanding that that which is
performed (the ‘recipe’ or the text based instruction) is also that which performs. One
does not appropriate the computer as a tool without acknowledging the text-media.
Live Coding seems to stress this (lost) unification of media and machine by working
with and displaying code as live. In Live Coding an important aspect is the insistence
on a type of employment of the computer where the code at once processes (appear on
the screen as instructions for the machine) and is processed (appear as music).
       Hence, Live Coding is not about finding an algorithm ‘that sounds beautiful’
(the beauty of mathematics and machines) but about interacting with the machine,
constantly making alterations and development in the music. The code is not just a set
of instructions – it has become ephemeral. The point of writing code in the live
coding sessions is not just to leave a set of instructions for the computer but to use
instructions to manipulate the music, approaching a situation where they operate the
computer as a musical instrument. As the live coders express it themselves:
                                                                                         6
               ”Live coding is the activity of writing (parts of) a
               program while it runs. It thus deeply connects
               algorithmic causality with the perceived outcome and
               by deconstructing the idea of the temporal dichotomy of
               tool and product it allows code to be brought into play
               and artistic process.”
               (Alexander et. al. 2004, p. 244)

Live Coding, thus, stands in sharp contrast to the usual experience of the programmer
- producing text and then feeding the text to a computer that produces something. He
is now a performing artist in search for an experience of a differance, a conceptual
gap between instruction and outcome – an experience of a code poesis (the term used
by the live coders themselves). He is searching for the making of computer music:
               ... art-oriented programming needs to acknowledge the
               conditions of its own making – its poesis.
               (Cox, McLean & Ward 2004, p. 161)

Now, having dealt with how Live Coding challenges the roles of both computer users
and programmers, one must acknowledge the fact that the audience at a live coding
concert might not even understand code or care about the programmer. They might
just be there for the dancing. In the coding sessions it is not just a computer
performing music or a programmer writing code. A performance is always a
performance for someone and live coding music performances are live concerts before
an audience that sees the code but don’t necessarily understand it.


The role of the spectator: The musical performance – the agency of code
//esoteric code
               ”It is not necessary for a lay audience to understand the
               code to appreciate it, much as it is not necessary to
               know how to play guitar to appreciate watching a guitar
               performance.”
               (Alexander et. al. 2004, p. 248)

My last and concluding remark on the live coding performances is then that writing
code must be seen as agency - a way of acting.
       Only to the machine and the initiated does code make any sense. The code and
the writing of code involves, however, a third kind of performative action. In Austin’s
terms, this would be a perlocutive act that, when performed with the machine, does
                                                                                       7
something to an audience. Live coding is not an attempt to make people understand
the exhibited code but an attempt to affect the audience – and possibly to make them
dance.
         By transferring his experience as a programmer from someone who writes
instructions to make the computer act, to someone who actually acts himself and
manages to use the code to create music that may be appreciated by an audience, the
programmer attempts to redistribute his sensual experiences – in the terms of Jacques
Rancière.4 The object of live coding is to direct the conditions of creation towards a
poesis of code – a kind of making, directed towards an aesthetic practice of
expressing oneself. This experience and investigation of a code poesis, that forms the
basis of using the computer as a personal medium for expression, is something that is
usually not permitted in computing. In computing users are staged as actors who
handle predetermined signification, and programmers are merely fulfilling the need to
make new features available to the users. Applying a creative, semantic, complex use
of computer language, transforms the computer into a means of expression. Using
code in an aesthetic practice may sound good and may make people dance but it is
therefore essentially also a political action insisting on the right to speak and on one’s
own control over technology. Admiring such attempts does not necessarily involve an
admiration of the computer’s performance, nor of the code itself but of the
programmer’s incisive insistence of using the computer and the code in his or her own
way. The programmer is transformed from a technician to a wizard whose mastery of
the magic words and redistribution of the senses, we may all admire – even though we
might not understand them.



4
  “I conceive it [the wild appropriation of high language by the common people in the 19th century] as
the widespread availability of writing which meant the very condition for making history: the
possibility for anybody to appropriate for him- or herself another ethos than the ethos suited to their
condition.” (Jacques Rancière 2005: 16).
          Rancière’s conception of a redistribution of the sensual experiences corresponds to an
appropriation of an ‘ethos’ (experiences, thoughts and behaviours) not normally assumed by a class –
and often forbidden and illegal. In this quote Rancière refers to the act of writing poetry (the language
of the bourgeoisie) and the establishment of nocturnal literary societies by the working class in 19th
century France. Surprisingly, he does not see the class struggle as a complaint about the distribution of
goods. What is at stake is the challenge of a social hierarchy’s determination of life. The worker, who
in a platonic world view ought to work at day and sleep at night, ‘redistributes the sensible’ by
changing behaviour and challenging the norm – by doing what is not authorized: make noise, adopt a
different (high) language, create nocturnal poetry societies, make newspapers, etc. My basic
assumption is that this type of behaviour corresponds very well to some cultural groups’ appropriation
of the computer code today (the hacker e.g.).
                                                                                                        8
Literature:
•   Arns, Inke (2005): ”Read_me, run_me, execute_me – Code as Executable Text:
    Software Art and its Focus on Program Code as Performative Text”. Online
    (11/4/06): http://www.medienkunstnetz.de/themes/generative-
    tools/read_me/scroll/
•   Alexander, Amy (et. al.) (2004): “Live Algorithim Programming and a Temporary
    Organisation for Its Promotion” in Goriunova, Olga & Shulgin, Alexei (red.):
    read_me – Software Arts and Cultures, Edition 2004. Århus, 2004, pp. 160-175.
•   Austin, J. L. (1955): How To Do Things With Words – The William James
    lectures delivered at Harvard University in 1955. Oxford University Press, 1962.
•   Barthes, Roland (1970): S/Z, Éditions du Seuil, Paris 1970.
•   Carlson, Marvin (1996): Performance. A Critical Introduction. Routledge, 1996
•   Cox, Geoff; McLean, Alex & Ward, Adrian (2004): “Coding Praxis:
    Reconsidering the Aesthetics of Code” in Goriunova, Olga & Shulgin, Alexei
    (red.): read_me – Software Arts and Cultures, Edition 2004. Århus, 2004, pp.
    160-175.
•   Cramer, Florian (2003): ”Exe.cut[up]able statements: The Insistence of Code” in
    Stocker, Gerfried & Schöpf, Christine (red): Code – The Language of Our Time,
    Ars Electronica, Linz: Hatje Cantz, 2003, pp. 98-103.
•   Rancière, Jacques: ”From Politics to Aesthetics”, in Paragraph, Mar 2005, Vol.
    28 Issue 1, pp. 13-25.
•   Turing, A. M. (1937): ”On Computable Numbers, with an Application to the
    Entscheidungsproblem” in: Proceedings of the London Mathematical Society 42,
    pp. 230-265, 1937. Re-print in The Undecidable (red. M. David). Hewlett, NY:
    Raven Press, 1965.




                                                                                  9