Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30September 2021

ABSTRACT their art in a number of ways. Examples of visual art practices from.learn and extend use, to available areproductions entire even or sample and environments, these of functionality the extending libraries of number ever-growing and vast a are made available as free open-source software. There is also environmentsprogramming of majority ethos—the source An additional enabling factor is the prevalence of the open- base. user widened coding’s creative reflecting grown, has training engineering software formal without practitioners to approachable coding creative make to designed environ- ments programming of number The medium. the ing design and architecture teach courses on creatively harness- music, art, visual of Schools traction. gaining increasingly tions of pixels, but program instructions. collec- or paper on paint not is material composingIts [1]. program; it a using made not is software art of piece a words, other In itself. programming is medium the work,of ever-expanding body this computerIn ing art. the dependence on using only pre-existing software for creat- With the creative coding movement, artists have transcended alongside examplesandconsiderationsregardingitsapplications. and discussanewcreativecodingpractice,thatofcodebending, creativity? Asonepossibleanswertothisquestion,theauthorspresent may theactofprogramdevelopmentberenderedconducivetoartistic moreattention.Inwhatways creative codingiscarriedoutstilldeserves it.However,of newresourcesemergingtosupport thequestionofhow instructions, isconstantlygainingtraction,andthereasteadystream creationthroughthemediumofprogram Creative coding,orartistic Code Bending l a r e n e g ©2015 ISAST associated withthisissue. See forsupplementalfiles University College London, London, U.K., EC1V 9EL. Email: . R. Beau Lotto (educator), Lottolab Studio, University College London, 11-43 Bath Street, Email: , . Mundet—Edifici Teatre, Passeig de la Vall d’Hebron 171, 08035 Barcelona, Spain. Ilias Bergstrom (researcher), EventLAB, Universitat de Barcelona, Campus de In traditional forms of art, artists can choose to practice to choose can artists art, of forms traditional In is coding creative today practice, uncommon an Once A NewCreativeCodingPractice l I

S A I doi:10.1162/LEON_a_00934 A e l c i t r e B r g R T S m o

d n a the program the is

programs e B . R a u context into which we introduce code bending. Note that that Note bending. code introduce we which into context the frame to us inspired directly most have that practices the describe will we computing, and art between relation inter- the of topic the on review backgroundexhaustive an sively covered in existing literature [7,8]. Without attempting exten- is other each informedhave computing art howand aesthetics may inform all computing practice. The account of artistic computing,howemphasizing in aesthetics of scope and practice of art to the field of computing” [6],widens the Aesthetic[5]. computing, ogy “the application oftheory the media art, referring to art created using new media technol- thatpractice has comeor [4] known art new toasdigital be a computers, using art procedural creating in [3] Whitney John and Laposky Ben pioneers of footsteps the in lowed fol- have artists many times, modern In Art. Islamic being Procedural art long predates computers, a common example B to users or to other software prior “bending.”to munication from and to elements that had not been exposed cessiblecomponents com- external softwareallows the ofit purpose of internal communication between outwardly inac- open-source softwareso that instead offulfilling its intended of interface programming internal the repurposes bending of that practice, coding creative a such of account an introduce to is article this of intent The creativity? artistic to conducive a meticulous, systematic engineering practice, made be also what ways may software development,largely established as siononhowout. creativeIncarried may practice be coding muchroom forstill analogous isthere discus- fordium art, practices. While programming has been established as a me- different in engage but techniques, same the employ hand other the on may audience an of front in painter live a sus ver- studio his in painter A technique. new a employing as applying oil paint with a palette knife instead of a paintbrush regard may painter A somewhat: overlap technique of and practice art of notions the Note painting. live and objects found from pieces creating painting, oil sketching, include ac L kg o code bending code r T T ound o . Inspired by circuit-bending [2], code code [2], circuit-bending by Inspired . LEONARDO, Vol. 2015 48,No.1, pp.25–31,

25 we focus here on practices and not their supporting tools, Puckette emphasized the sketching analogy by presenting although several tools will inevitably be mentioned for their users with a blank canvas onto which a program is incre- relation to particular practices. mentally drawn up as a directed graph, formed by intercon- nected boxes placed upon the canvas. Each box performs CReATIve CodIng a particular function based on the data it receives through Alex McLean and Geraint Wiggins [9] have described pro- its inlets and then sends the result out through its outlets grammers with artistic intent as frequently following a bri- to be further processed by whatever boxes have their inlets colage approach, a notion fi rst introduced in the context of connected to these outlets with a line (Fig. 1). Sketching is programming by Sherry Turkle and Seymour Papert [10], promoted in the Processing language and environment [13]. who adopted the term from Claude Lévi-Strauss [11]. Rather Processing expands upon the ideas in John Maeda’s Design than providing their own defi nition of the bricolage ap- by Numbers language, created to teach the “idea of computa- proach, McLean and Wiggins cite Turkle and Papert: tion to designers and artists” [14]. Th e goal in the design of the environments we have mentioned is to facilitate creative Th e bricoleur resembles the painter who stands back be- approaches to programming similar to the way traditional tween brushstrokes, looks at the canvas, and only aft er this media artists sketch out their work, be it a drawing, a sculp- contemplation, decides what to do next. For planners, mis- ture or musical score. takes are missteps; for bricoleurs they are the essence of a Th e practice of live coding is creative coding taken to its ex- navigation by mid-course corrections. For planners, a pro- treme. Artists engaged in this practice write code as a means gram is an instrument for premeditated control; bricoleurs of performance, commonly while presenting the output in have goals, but set out to realize them in the spirit of a col- conjunction with a projection of the continuously modifi ed laborative venture with the machine. For planners, getting program code [15,16]. Live coding is predominantly used in a program to work is like “saying one’s piece”; for bricoleurs musical performance, but its use in visual performances is it is more like a conversation than a monologue [10]. not uncommon and there is nothing to keep the practice A parallel development to the emergence of computing from being applied to any other context in which live perfor- and its application in art has been the process of making mance and creative coding meet. Live coding requires the use programming languages easier to use. Some initiatives have of specialized programming environments capable of inter- explicitly ventured beyond lowering the learning threshold preting the code on the fl y as it is entered by the performer, and towards encouraging a diff erent approach to coding that, without restarting or recompiling the whole program. While although this is not explicitly stated, bears much resemblance several environments exist with this capability (for example to the bricolage approach. One such example is the sketching /MSP and ), some have also been created spe- approach, fi rst introduced in writing by Miller Puckette, the cifi cally with live coding in mind (for example SuperCollider, originator of the prominent visual programming languages ChucK, Impromptu and Fluxus). (VPL) for creative coding Max/MSP and Pure Data [12]. Hacking is also of relevance to this discussion. While the

f ig. 1. Max/MSP patch showing data- processing and data- generating boxes connected to each other through their respective inlets and outlets, thus forming a visually drawn computer program. (© Ilias Bergstrom)

26 Bergstrom and Lotto, Code Bending

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 term may vary greatly in definition depending on context extensive training is not an absolute barrier to entry. Ghazala [17], we use the term here to refer to the modification of a pre- refers to his technique as anti-theoretical—not in the sense existing piece of closed-source software, with the intention of rejecting theoretically informed practice but as providing of causing it to perform differently from its original purpose. a complementary alternative to it. A popular circuit-bending This requires a very deep understanding of the working of practice is to modify electronic toys for their subsequent use computers and the software executed on them. It also com- as musical instruments. Famously, Mattel’s Speak & Spell monly requires machine-level assembly language program- voice synthesis toy is often bent and repurposed as a musical ming, since this is the only means of controlled modification instrument that generates otherworldly vocal sounds. Simi- of software that was not intended to be altered by end-users. larly, in code bending practitioners repurpose a software’s Therefore hacking is often illegal, as it violates the software’s original programming to alter its intended purpose. We now end-user license agreements. There is a dearth of academic expand our description of code bending further. discussion on hacking as a creative art form, regardless of the In programming, the term interface refers to a program definition employed. However, an example of hacking as art component’s specified set of access points over which com- appearing in public discourse is the 2011 Netherlands Media munication with other software components is made possible. Art Institute exhibition The Art of Hacking [18]. A whole program is built by defining numerous components, each with its internal functionality concealed. This allows it Software Engineering Practice to be manipulated by other components but only via this Between the two extremes of creative coding practice on the interface. While in many applications an Application Pro- one hand and the development processes taught at university gramming Interface (API) is deliberately formulated for software engineering courses on the other, a tradeoff may third parties to use towards extending the functionality of often be necessary. The focus of the latter is on ensuring a the program, there is always a further, extensive set of inter- predictable, rigorous, transparent structure throughout faces that are never intended to be outwardly accessible. To development, toward eliminating mistakes and delivering explain through an analogy, a home stereo system consists well-functioning software on time and on budget. Several of separate components (radio, amplifier, CD, etc.). Each has methodologies exist, for example the waterfall model, the spi- connectors on the back that can be likened to the compo- ral model, agile development, etc. [19], each of which details nents’ API. A working stereo system results from connecting stages of formulating requirements, designing, implement- these together. But by lifting a component’s lid, one finds ing, testing and maintaining a software system. While the that it also consists of internal sub-components, with their goals of these processes are desirable irrespective of artistic own additional internal interfaces. In the practice of circuit intent, the rigor they require easily impedes the explorative bending, these internal connections are used to change the bricolage process most conducive to creativity. Consequently, functionality of the appliance. Going back to software, in even practitioners trained in these methods may not always closed-source programs these internal interfaces remain follow them or may apply them selectively, perhaps only af- concealed. But with open-source software these internal in- ter the creative content has materialized. Rapid Application terfaces can be identified and used even if undocumented. Development (RAD) methods on the other hand are more The code is freely available, and thus one can figuratively “lift akin to creative coding; their distinction sometimes amounts the lid” and unrestrictedly access these internal interfaces: It only to differences in the efforts’ stated intent. is these that are harnessed in code-bending practice. The notion of design patterns is also particularly applicable Existing software can thus, in a comparatively rapid, play- to creative coding. Initially conceived of within the context of ful manner, be repurposed, encouraging an exploratory ap- architecture, design patterns were later translated to the con- proach to implementation. Connections may be creatively text of software engineering and introduced to a wider read- rearranged (remapped) either until the desired final shape ership with the seminal book Design Patterns [20], written by is reached or as a form of live performance, in which case a group of authors now known colloquially as the “Gang of the emphasis lies not on the final product but on continuous Four.” The beautifully simple concept the book presents is to transformation. catalog succinct, abstract solutions to commonly occurring The term mapping refers in this context to the linking design problems to serve as a resource of design patterns of variables across two or more parameter spaces. There is that can be applied and combined to solve design problems. much active research on mapping, primarily relating to the development of digital musical instruments (DMI), where Code Bending the control devices used by performers are separated from The spiritual precursor to code bending is circuit bending, a the sound generators producing the actual output. In this term coined by Reed Ghazala, although he makes no claim process, it is necessary to define mappings in order for on being the first to carry out the practice [21]. Circuit bend- communication to take place across the parameter spaces ing encourages a tacit, explorative experimentation through [22]. This contrasts with traditional musical instruments, modifying an existing electronic circuit, rather than the where physical connections between controller and sound strict approach of traditional electronic engineering. It also ­generator are unalterable. Several mapping approaches have requires little understanding of how the circuitry at hand been discussed: one-to-one, one-to-many, many-to-one, works. Although such knowledge is undeniably beneficial, multi-level mapping, as well as abstract mathematical or

Bergstrom and Lotto, Code Bending 27

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 ­stochastic models. There is also mutable mapping [23], where C. Inserting functionality for sending and receiving mappings need not remain fixed during performance but are messages to and from a visual instead gradually altered, created and destroyed as a form in a manner analogous to approach B but with mes- of expression in and of itself. To enable mutable mapping sages conforming to the VPL’s API instead of the we created the application Mediator, purpose-made to be a OSC protocol. The application may then be hosted general tool for mutable mapping performance. An earlier in a visual programming language such as Max/MSP, instance of live improvisation of mappings as performance allowing for the newly exposed contact points to is described by Nick Collins and Fredrik Olofsson, in rela- be used as inlets and outlets, patchable with other tion to their klipp av performances [24], where mappings be- boxes on the VPL canvas, while the bent program tween elements in cut-up sound and video were improvised still ­remains largely unmodified. through live coding. Mapping concepts can apply to all new media art, including modern dance, interactive installations The reason contact points should always, if possible, be and live audiovisual performance. For example, parameters inserted where GUI code interfaces with the main applica- derived from musical notation, pre-recorded or generated tion code is to avoid advanced technical obstacles caused live by musicians, can be mapped to control aspects of live by program multi-threading (e.g. racing conditions or dead- procedural animation in live audiovisual performance [25], locks). At the layer where the GUI interfaces with the main while dancers’ gestures are mapped to control their musical application, however, such issues should have already been and/or visual accompaniment [26]. protected against, since the GUI and main program code vir- For mapping between exposed interface points in code- tually always reside in separate threads. Since code bending is bent programs, the Open Sound Control (OSC) digi- meant to be a playful, tacit practice, such advanced problems tal communication protocol [27] is ideal. Its advantage is are better avoided than tackled head-on. Another obstacle to that messages follow a straightforward schema with meta- avoid is creating feedback loops. While desirable in analog data that describe the messages’ content, so the user can circuits, in software they immediately freeze execution and inspect them and decide on their interpretation. OSC pro- should either be avoided or, better still, programmatically vides a common, standardized message-passing format detected and interrupted. between software, straightforwardly achieving interoper- Mappings to and from exposed contact points may subse- ability between an arbitrary number of disparate sources and quently be defined in any programming language capable of destinations. sending OSC messages in cases A and B, or through patching Concretely, the practice of code bending is necessarily to and from the exposed programs’ inlets and outlets, in case conducted in two phases: First comes exposing the previ- C. Alternatively, software for defining mappings between ously inaccessible contact points in the involved open-source OSC parameter spaces may be used, such as the Mediator programs. Subsequently, while these programs are running, software. Another viable approach we have experimented one can experiment with altering mappings between now- with is modifying mappings through live coding, as previ- exposed contact points and eventual additional sources of ously practiced by Collins and Olofsson [28]. data, either in search of an ideal mapping to subsequently finalize, or continuously as a form of performance. Existing Creative Coding Practice The exposing of contact points has been conceived of and Inspired by Circuit Bending carried out in three different manners, although these may Previous practitioners have taken inspiration, as have we, not be the only approaches possible: from circuit bending and have sought an equivalent practice in creative coding, each apparently independently formulat- A. Re-adapting a creative code programming language ing their own interpretations of the concept. Chris Novello so that programs written in the language are no lon- [29] was the first we know of to describe what he means with ger standalone applications but instead behave as the term and to present concrete work following his concep- plugins. This effectively repurposes the language as tion of it. In his description, code bending depends on using an API, allowing the flexible dynamic combination software already able to “send messages when events happen of the output from programs written in this language in the program” and “receive external messages that control within a program written to host these as plugin the activities of the program.” By rerouting these messages, modules. he incorporates this software into larger systems, in a manner B. Inserting functionality for sending and receiving OSC akin to the notion of mapping: manipulating connections messages in the methods where the graphical user between already exposed, purposely created contact points in interface (GUI) communicates with the main applica- existing software. Alberto de Campo and Julian Rohrhuber tion code. In this manner the GUI can be bypassed have released an extension library to the Supercollider lan- and the main application can instead be interfaced guage that they have christened “Bending” [30]. According with using OSC messages. Such functionality may to Rohrhuber: also be inserted at arbitrary locations in the code but will then require far greater care to avoid breaking While not elsewhere documented, the Quark stands as its program stability (see explication below). own theoretical documentation, in the sense that code also

28 Bergstrom and Lotto, Code Bending

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 is a form of theory. Similarly to circuit bending, it serves as ality, the existing open-source Processing programming a way to go back behind parameter controls and graphical language was bent (using approach A), repurposing it into user interfaces to a far more generic and abstract mode of behaving as a plugin development API for the host applica- interaction. It allows you to modify a graph of unit genera- tion and making it accessible to nonexpert programmers. tors without explicitly adding anything to the code. Following this initiative, artists can now dynamically layer It is also intended as a complement to live coding, which the output of modules, gradually adding, removing and al- could be performed in turns or in parallel with it. As I pre- tering them, both during experimentation and to create a fer programs to be as abstract as possible, rather than pro- narrative during a live performance. We released Mother as grams as specification for user interfaces, as is often the case open-source software; it attracted several artists to employ for musical real-time interaction, code bending is a way to it in their practice and to code contributions to further ex- directly interact on the level of the graph rather than on the pand its functionality [32–34]. In the development of the level of a preconceived interface. Mother software, code bending was considered a character- On a conceptual level, speaking in Bruno Latour’s terms, istic central to the functionality the final released software it is a combination of white boxing (a mode where all lies provided. Code bending is also useful when exploratorily open and the functionality is to be negotiated) and black prototyping a design to be subsequently completed following boxing (a mode where all is implicit and presumed to work different methods. We employed this approach when devel- in the dark): we operate on the level of internal functional- oping the Hearing Colour series, an interactive installation ity and yet what we modify is specified abstractly [31]. developed in collaboration with Sam Walker and Erwan Le Martelot [35], and the Music from Colour project [36]. The The ideas we present in this paper, while sharing com- works built upon the premise of remapping information monalities with the above descriptions, also contribute to ­between sensory modalities and generated musical and/or­ completing the conception of what code-bending practice visual outputs. During the design phase for these installations, may entail. Taking the next step from employing the notion we bent existing open-source programs for interfacing with of mapping, we detail how existing software that lacks the cameras and processing the visual input, as well as programs desired exposed contact points can be incorporated in code for real-time music synthesis following approaches B and C, bending, thus “lifting the lid” also on software, an idea central so they could be incorporated into a system quickly and thus to the spirit of circuit bending. facilitate experimentation towards concretizing the design of the installation at hand. The incarnation illustrated in Fig. 2 Examples of Code Bending in Practice is composed of two computers running software continu- The ideas introduced in this paper have been refined grad­ ously deriving image information from two video feeds, re- ually over a number of years, while we developed software mapping this information to musical (MIDI) instructions for live audiovisual performance and created interactive in- controlling a realistic sample-based classical ­orchestra. stallations. The following are exam­ ples from our own practice and that of others to illustrate how code- bending ideas may be applied. Procedural graphics artists use the common Processing tool to quickly sketch interactive graphics algo- rithms. However, combining mul- tiple such sketches into a complex program from within Processing is challenging, discourages explor- ative creative experimentation and limits the achievable output com- plexity. This issue is common across live visuals performance software: Adding your own live visuals algo- rithms to the repertoire of any of the available applications requires significant software engineering effort and expertise. Addressing this obstacle, our program Mother (Color Plate A) treats standalone Fig. 2. Hearing Colour, installation, shown at the exhibition Passing Through, James Taylor Gallery, London (2009). The work was created by Ilias Bergstrom Processing sketches as plugins, re- (concept and video-to-music software development), Sam Walker (concept and quiring only a few straightforward hardware implementation), Erwan Le Martelot (Fugitive Moments generative computer alterations. To enable this function- graphics software) and Beau Lotto (concept). (© Ilias Bergstrom)

Bergstrom and Lotto, Code Bending 29

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 a clear goal, or any goal at all, and through the exploration of vari- ous ideas, a creative outcome takes shape. Improvisation, either as an- other means for sketching or as live performance in front of an au- dience, is facilitated through live coding as well as through mutable mapping, constructing a continuous narrative output through manipulat- ing program instructions and inter- connections. Just as some modern art movements have ceased cater- ing to the establishment, instead seeking to subvert it [37], a counter- part in computational art is found in hacking. Extending the above narrative, code bending facilitates a wide range of collage strategies, analogous both to collage of images and sound, and to artwork incor- porating found objects. Individual artists thus have a spectrum of ap- proaches to pick from as best suit their idiosyncrasies and the current project at hand. While the code-bending ideas described here currently require Fig. 3. (top) Chris Novello, War Machine, one of the artist’s games created bending open-source software to to be controlled and bent using Illucia. (bottom) Chris Novello, Illucia, expose patch-points for explor- a modular code-bending instrument. (© Chris Novello) atory mapping, a recent develop- ment has appeared that, given time, may complement this practice. The video feeds are provided by two cameras. As gallery A small number of applications are developed with patch visitors move freely in front of the cameras, their appear- points already exposed at varying levels of granularity ance influences the musical output. If no visitor is present, through their implementation of the OSC communication each of the two cameras is focused on a canvas, one show- protocol, employed such that the program’s user interface ing a continuously flowing generative graphics projection may be bypassed and the application remote-controlled. (Fig. 2, left), and the other a blank canvas onto which gallery Uniquely, the music composition and performance ap- visitors may collaboratively paint (Fig. 2, right). plication Ableton Live, in collaboration with Cycling74, Chris Novello, in his practice, makes use of computer game the makers of Max/MSP, has facilitated the embedding of software that already provides contact points exposed for re- Max programs within Ableton Live, thus exposing a large ceiving control messages that alter the game’s functionality. number of patch points to remote control, provided the His work is an illustrative example of what applying code- user implements OSC or another form of communication. bending ideas can manifest, beyond our own practice. To However, there will always be applications that have not generate control data and alter the mappings between the been implemented with such functionality in mind, as well control data and the game patch-points, Novello has created as software designed to include only some such function- a hardware controller with patch points resembling a modu- ality, thus leaving more to be desired. The relevance of the lar analog (Fig. 3). While his initial work con- code-bending approach is therefore likely to increase as ap- centrated on computer games, his later work has expanded plications with already exposed patch points become more to include music synthesis modules, as well as a text editor common. We envision that, as a continuation of the efforts application. presented here, more creative coding practices will appear and be shared publicly so that they can be incorporated Discussion into the future practices of software artists. It is our hope Many practices from the arts find their counterparts in that through the present discussion we will inspire software creative coding. Sketching of code is directly analogous to artists to create interesting new work, following interesting sketching in drawing: One starts working without having new approaches.

30 Bergstrom and Lotto, Code Bending

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 Acknowledgments 19 Ian Sommerville, Software Engineering, 9th ed. (Boston: Addison Wesley, 2010). We are grateful to Patti Brennan, Elias Giannopoulos and the reviewers of this article for their invaluable comments on earlier versions of this 20 Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, draft. This work has been supported by an EU Presenccia grant and Design Patterns: Elements of Reusable Object-Oriented Software, 1st Spanish INNPACTO Melomics project reference code IPT-300000- ed. (Boston: Addison Wesley, 1994). 2010-010. 21 Ghazala [2]. 22 Eduardo R. Miranda and Marcelo M. Wanderley, New Digital Musi- References and Notes cal Instruments: Control and Interaction Beyond the Keyboard (Mid- Unedited references as provided by the authors. dleton, WI: AR Editions, 2006). 1 John Maeda, Creative Code (London, U.K.: Thames & Hudson, 23 Ilias Bergstrom, Anthony Steed and Beau Lotto, “Mutable Mapping: 2004). Gradual re-routing of OSC control data as a form of artistic perfor- mance,” in Proceedings of the International Conference on Advances 2 Reed Ghazala, “The Folk Music of Chance Electronics: Circuit- in Computer Entertainment Technology (Athens, Greece, 2009) pp. Bending the Modern Coconut,” Leonardo Music Journal 14 (2004) 290–293. pp. 97–104. 24 Nick Collins and Fredrik Olofsson, “klipp av: Live algorithmic splic- 3 Digital Art Museum (DAM), retrieved 11 October 2012 from . No. 2 (2006) pp. 8–18.

4 Christiane Paul, Digital Art (London: Thames & Hudson, 2008). 25 Ilias Bergstrom and Beau Lotto, “Harnessing the Enactive Knowl- edge of Musicians to Allow the Real-Time Performance of Corre- 5 Mark Tribe, Reena Jana and Uta Grosenick, New Media Art (New lated Music and Computer Graphics,” Leonardo 42 No. 1 (2009) pp. York: Taschen, 2006). 92–93.

6 Paul A. Fishwick, ed., Aesthetic Computing (Cambridge, MA: MIT 26 Dixon [7]. Press, 2008). 27 Matthew Wright, “OpenSound Control: A New Protocol for Com- municating with Sound ,” in Proceedings of 1997 Inter- 7 Steve Dixon, Digital Performance: A History of New Media in The- national Computer Music Conference (ICMA, 1997) pp. 101–104. ater, Dance, Performance Art, and Installation (Cambridge, MA: MIT Press, 2007). 28 Collins and Olofsson [24]. 8 Bruce Wands, Art of the Digital Age (London, U.K.: Thames & Hud- 29 Codebending FAQ, retrieved 17 August 2012 from . 9 Alex McLean and Geraint Wiggins, “ in 30 SourceForge.net Repository—Quarks, retrieved 17 August 2012 from the Creative Arts,” Computers and Creativity (Berlin—Heidelberg, .

10 Sherry Turkle and Seymour Papert, “Epistemological Pluralism: 31 Paraphrased from personal email communication with Julian Styles and Voices within the Computer Culture,” Signs Vol. 16, No. 1 Rohrhuber, 2/7/2013. (Autumn, 1990) pp. 128–157. 32 Bergstrom and Lotto [25]. 11 Claude Lévi-Strauss, The Savage Mind (Chicago, IL: Univ. of Chicago 33 Ilias Bergstrom and Beau Lotto, “Mother: Making the Performance Press, 1968). of Real-Time Computer Graphics Accessible to Non-programmers,” 12 Miller Puckette, “Pure Data: Another Integrated Computer Music in (re)Actor3: The Third International Conference on Digital Live Art Environment,” in Proceedings of the Second Intercollege Computer Proceedings (Liverpool, U.K., 2008) pp. 11–12. Music Concerts (Tachikawa, Japan, 1996) pp. 37–41. 34 Processing—Mother: A program that allows VJing with Processing. 13 Chris Reas and Ben Fry, Processing: A Programming Handbook for org sketches, retrieved 11 October 2012 from . 35 Hearing Colour was exhibited at the exhibition Passing Through at 14 John Maeda, Design by Numbers (Cambridge, MA: MIT Press, 2001). the James Taylor gallery in Hackney, London, in May 2009 and at 15 Nick Collins, “Live Coding of Consequence,” Leonardo Vol. 44, No. the Wellcome Trust in London, also in 2009.

16 Nick Collins, Alex McLean, Julian Rohrhuber and Adrian Ward, 36 There have been several incarnations of Music from Colour. It has “Live Coding in Laptop Performance,” Organised Sound 8, No. 03 been exhibited at the London Science Museum’s Lottolab and used (2003) pp. 321–330. for holding “Synaesthetic Workshops” in throughout the U.K. 17 Joe Erickson, Hacking: The Art of Exploitation (San Francisco, CA: 37 Ernst H. Gombrich, The Story of Art(London, U.K.: Phaidon, 1995). No Starch Press, 2008).

18 The Art of Hacking,exhibition, retrieved 11 October 2012 from . Manuscript received 16 October 2012.

Bergstrom and Lotto, Code Bending 31

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 Color Plate A: C ode Bending COLOR PLATE A

Ilias Bergstrom, several Processing sketches (each a small image at the top) are layered within the Mother program to produce a single complex output. (© Ilias Bergstrom)

13

Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021