Something I’ve noted between this reading and the past few readings on the ‘liveness’ of live coding is that many of us does not really have a choice in how we approach our performances yet. The ideal ‘live’ coding as presented by the author is a spectrum of options — those that create everything from scratch in their performances, those that ‘pre-gram’ some parts of the performance and those that simply reorganize functions.
I think that even in our drum circle sessions, it is clear that it is difficult to start from scratch/ only pre-gram some parts, and most of us have thus far preferred to pre-gram and rehearse the performance. It is thus more of a ‘coding performance’ than a ‘live coding performance’. I am not saying this is a bad thing — as the differences are indistinguishable for the untrained eye ( probably only the professor could tell if someone was done ad-hoc or if it was pre-planned simply by looking at it ), but simply a reflection of the experience we have with the live coding environments thus far. It might be possible for us as students to approach the ‘from scratch’ end of the live coding spectrum in the future, but for now, it is something that I can only look at and think about. It’s akin to the journey of a person learning the piano — they would learn how to read and play sheet music first before learning to write their own.
The text explores different approaches to live coding, with some individuals relying on pre-written code, while others start from scratch with no preparation. It notes that the emphasis on “liveness” in live coding is not meant to undervalue or underestimate the programming and practice that occur behind the scenes or before a live coding performance. Instead, the goal is to draw attention to the unique dynamics that arise during real-time live coding.
In my experience, the main factor that prevents me from adding new layers live is the unpredictability of the notes I might enter. For example, what if the notes I play clash with the current sound? What if they’re in different keys, creating harsh dissonance? I think these concerns stem from my past reliance on traditional digital audio workstations (DAWs), where I would improvise on a MIDI keyboard to determine which notes to use. Even when I prepare for a live coding performance, I often rely on this method to generate new ideas for my code. Besides this, I try to experiment more with adding effects and functions to my existing code during live demonstrations.
The text also notes that “live coding involves a sense of embodied awareness, where knowing how and when are just as important as knowing what. Unlike some forms of computer-generated performance, live coding demands heightened levels of dexterity, focus, cognitive agility, and tactical intelligence.” This resonates with me because I tend to trigger new lines of code only at the end of a cycle or a four-beat loop, which helps smooth transitions.
I also want to point out that the “liveness” in coding is not just about the interaction between the performer and the computer, but also about the interaction between the performer and the audience. This made me wonder how that human-to-human interaction could manifest in live coding performances.
The exploration of “liveness” in live coding provokes a reconsideration of how we define and interact with both technology and performance. The distinction between live coding and generative processes in audiovisual performances, where the latter is pre-coded and the former improvisational, raises questions about authenticity and originality in digital art forms. The text’s analysis of how live coding practices serve as a model of liveness — integrating human-machine interactions into a hybrid and complex system — challenges our traditional views on performance and audience engagement.
By reframing liveness not as a mere authentic experience but as a dynamic and interactive one, the text invites us to think about the implications of these live coding practices. For instance, how do these practices alter our understanding of control and creativity in performance arts? The idea of “machine liveness” — where technology responds instantly and semantically to the coder’s inputs — raises intriguing questions too: How does this immediacy transform the creative process? What does this seamless integration of action and response reveal about our potential to harmonize with increasingly intelligent systems? By emphasizing the continuous and collaborative nature of live coding, where technology is not merely a tool but a partner, the text invites us to reconsider our roles as creators and interactors within the digital landscape. This perspective not only challenges our traditional notions of artistic and technological domains but also suggests a future where the boundaries between creator, creation, and audience are fluid and dynamic.
The difference between live coding and traditional programming is funny. essentially they are both the same, predefined functions, known variables and different ways of variable manipulation that changes how things are from input to output. The difference stems however in how manupilatable this output is and a chance to completely change the output of a function based in one keyboard symbol to get a string of completely different outputs that were not exactly planned by the function creator is even more interesting.
“Rejected the use of prewritten code and structures” in favor of “acting in the moment, responding to context… developing a structure as we work, continually creating and resolving tension”
ALGOBABEZ (Shelly Knotts and Joanne Armitag)
Live coding brings the definition of expected/planned output to a different form of adapting to the user response. Not a coded reaction, not an expected reaction, but a way of letting a human determine the next course of action in a way that combines the viewer’s reaction with the artist’s to create an instant change that combines both together. It’s like the authors said,
Yet, for all that computing neglects— those bodies hunched over keyboards and mice, at their desk- and- chair sets in the offices of the world— the live coding performer is unavoidably embodied (“made flesh”)
Live coding brings the person manipulating the code to life in a way traditional coding does not.
Something else that also stood out to me in this chapter is comparing the live coding to a performance. If we think about dance, then all traditionally dancing is the same as traditional programming, but maybe more contemporary, like an unpracticed dance performance, a free dance performance with code. The dancers know the dances, the programmers know the code, but neither know the trajectory of the performance
liveness as a connecting principle for exploring the relation between live coding (performing with programming languages) and live art (performing with actions).
In what sense is live coding “live”? Live coding is live in that it is an active conversation between the coder, the machine, the audience, and everything else that surrounds and permeates the setting at hand; live coding is live in that it proceeds in a constant state of spontaneity and is characterized by its resistance to being defined and boxed. Live coding is an amorphous creature, very much alive in that it is never stagnant and craves change. It materializes not just as lines of code or musical notes; live coding is a representation of the relationships that manifest between everything that is present and around the performance itself.
As described in the excerpt, live coding by nature resists a singular definition—and in turn, a singular liveness. It thus demands a nuanced understanding that takes an array of perspectives into account: “The interdisciplinary nature of live coding . . . requires that its very liveness be understood from more than one epistemological and ontological perspective” (159). Live coding is unique in that it transcends spatiotemporal conventions. A performance may exist and be experienced in the present, but certain sequences and samples may be prescripted and prerecorded. Then there is the concept of the undetermined future, which live coding embraces in all its uncertainty. Live coding also creates a platform upon which the physical and digital coexist; it lives in the in-between.
What emerges from a live coding performance is vastly different for each individual that experiences it, whether they be the live coder on the stage or a member of the audience. Live coding is thus an indeterminate manticore that assumes a different form to all and can only be defined through this ambiguity. Live coding is alive, thriving and pulsating in the bricolage of the predetermined and the yet-unborn.
The underlining of the various intersectionalities that live coding exists between, by performance scholars Matthew Reason and Anja Mølle Lindelof, helped me internalize the multiplicities inherent in this medium we have been practicing. Reason and Lindelof bring up live coding’s position between music studies and media studies, and extend this into the various definitions of the word “live” in this field. They note how music studies views liveness in terms of recording while media studies views it with a focus on transmission. Hence, the exploration of “liveness” that we have been doing over this semester is a nascent concept, with spontaneity, improvisation and performance elements borrowed from multiple disciplines.
The paper later on highlights the somatic and corporeal nature of live coding as well. Viewing our performances from a kinaesthetic lens, the author highlights our physical interaction with the machine: “a sensorimotor movement vocabulary of micro adjustments, changes, and shifts performed in the frantic keystrokes, in the shuttling of the cursor around the screen, in the flash points of activation and execution”. This brought me back to our discussions regarding adding a performance element to our final showcase. While certain traditional instruments, like a piano or violin, lend a formality to music performances akin to an orchestra, live coding can be seen in the same paradigm as DJing perhaps. Many DJs construct a performance element around otherwise kinesthetically simple action, like pushing faders and turning knobs, successfully transforming what would be a mundane performance into stadium-selling events.
In the chapter on Live Coding’s Liveness(es), the author discusses the concept that “for some live coders, nothing is saved, recorded, or archived in support of future replaying: the performance both begins and ends with the blank screen/slate.” This idea prompted me to consider the role of archiving in live coding, especially given its spontaneous real-time and potentially ephemeral nature.
Recently, I came across an essay in the book “Electronic Superhighway: From Experiments in Art and Technology to Art after the Internet” that discussed Performative archiving. The author critiques the notion of ephemerality as an excuse for relinquishing control and suggests that “materiality” is a more fitting term, one that evolves over time and through performance. The essay also reflects on how materiality is represented in museums, particularly during the 1990s and 2000s, noting the practice of listing the materials used in net artworks on wall labels, treating digital materials as physical substances.
I found it fascinating that even something as live and real-time as live coding can evoke a sense of materiality. This prompted me to think about the complexities of defining and preserving works in digital realms or those of a performative nature. When we view live coding as an art form, can it truly be considered as such without being archived? Is it the very act of documenting it that solidifies its significance within the discourse?