“Not knowing is not only to be overcome, but sought, explored and savored; where failure, boredom, frustration and getting lost are constructively deployed.”

I feel Like this quote is something I one tries to understand on a deeper level to be able to live code. The idea of knowing for science and not knowing for art is sometimes bigger than just a know-how and a no-how, like a balance between both is also at some level required. The author talked in the reading about the idea of knowing how something works is not exactly required for creating in a live coding environment; that is is more about the exploration, the errors, the questions raised and the answers (or possibly answers?) found. It is about feeling the music in some way, feeling the visuals and trying to find a common ground for which you can go forward.

However, as the authors explained,

“Both ancient weaving and live coding involve a live, embodied process of decision-making and knowledge activation that operates in excess of or between the lines of conventional notational systems.”

the know how is also always in a way required. The idea that some sort of knowledge is required, but experienced level knowledge is not. That by live coding you need to keep the next part of the carpet unknown to keep going, yet you base what is to come on what was, and what is to come is what bases layers and layers of code to reach the end of the carpet. That the knowledge of how to code, how to weave, at a basic level, needs to be acquired before live coding, that some idea of color and music needs to be there. But that is the idea, that knowledge of some is all that is needed for one to have the ability to live code. It is more a talent of how to build layers over one another, the unpredictability and the block of advanced scientific knowledge that is needed.

Forcing yourself out side the box of science and thinking else where. That is what live coding needs, that is what comes from pushing yourself, exploring something new and seeing the things you know from the things you do not know to find an area where art shines.

The reading presents live coding as a dynamic interplay between problem generation and problem-solving, where practitioners continuously test the boundaries of possibility. This unpredictable and experimental nature resonates with my own experience in preparing for class demonstrations, where the journey often involves navigating uncharted territory and embracing the unknown. Most of my class demo preparation so far involves trying different things, testing, adding new things, and experimenting without knowing the answers until I end up somewhere. It’s like driving without a destination, exploring the possibilities, and ending up wherever my curiosity takes me.

The concept of embodied knowledge and “knowing-in-action” reminded me of the quote “Knowledge is a rumor until it lives in the body” from a Sci-fi TV series The OA. While the practice of live coding itself requires a preconceived knowledge, I appreciated how the text pointed out that a risk and uncertainty are innate parts of the practice. It explains how Live coding performances actively disclose to an audience their moments of not knowing, of trial and error, and of testing something out. Therefore, embracing failure and trying to figure out how to make it work is part of the live coding process. However, This is easier said than done since one can sometimes panic and mess up even more when they are presenting in front of an audience.

In this text, the author discusses the cognitive process of Live Coding and how it encompasses different ways of thinking. For example, the author states that live coding “pressures the if-then thinking of computational logic toward the what-if of speculative experimentation.” It is interesting to view live coding as an experimental way of computing where open experimentation is actively encouraged compared to the standard way of programming. In some way, I felt the same way because, in live coding, you first try something, modify it, and expand on it until you like the outcome, while in the standard way of computing, you want to have logic in mind before you start typing. However, I think both are similar when you start improvising the code. In both scenarios, you want to understand what you wrote and improve – to make the codes perform what you imagined and to make them cleaner. For example, in live coding, you might want to group multiple sound layers into a structure or assign them to a variable after you find something you like. Similarly, when writing codes for software, you want to remove unnecessary lines or structure them in a more consistent way after you implement the functionality. Therefore, I think there are some areas in the process where live coding and other ways of computing overlap and differ.

I found the reading made me critically consider how complex live coding is, especially in relation to software engineering. Having a SWE background myself, I primarily saw programming as a way to fulfill requirements and the trial and error involved were always roadblocks to the end goal of creating a program that meets certain specifications. However, working in Hydra and TidalCycles, I found myself agreeing with the idea that the process of trial and error leads to roadblocks but also innovation. I may have a certain sound I’m trying to create, but in trying to do so, I may create a completely different sound I enjoy and incorporate into my final piece. The idea of no-how adds to this, with uncertainty of how something might look or sound comes new innovation and avenues of artistic expression.

This excerpt from Live Coding: A User’s Manual describes live coding as a unique hybrid art form that questions traditional assumptions regarding knowledge and challenges the categorical divisions of epistemology. Indeed, live coding is a multidisciplinary practice that draws on various modes of knowledge and the expression of said knowledge. If one is to envision knowledge as a spectrum ranging from the tacit and unconscious to the structured and explicitly taught, live coding is a practice that wills the practitioner to utilize both ends of the spectrum. And in doing so, live coding “demonstrates the coexistence, cooperation, and even complementarity between seemingly divergent knowledge paradigms” (219).

I have always felt that much of the appeal of live coding lies in its highly experimental nature. The philosophy of live coding encourages experimentation and contingency—in fact, it is very much defined by this acceptance of indeterminacy. Though the practice may demand some form of background competence (in computing and art, for example), the knowledge required most by live coding is that which enables one to interact with uncertainty. Live coding is thus an art form that is fueled by no-how rather than know-how; there is no set methodology or script that it abides by. It was fascinating to engage with the thought that the very existence of live coding, in embracing indeterminacy as a core tenet, prompts conversation regarding the subsequent need for alternative ways of and terms for understanding knowledge at large.

The epistemological survey of live coding through the guise of it being artistic research was a particularly eye-opening exploration of this medium for me. I appreciate these readings, as they help us place live coding – a relatively new practice – in broader contexts and conversations regarding media, art, technology, music, and culture. Live coding existing as a paradigm and a way of thinking at the intersection of all these goes to highlight the novel experimentalism of this language the author highlights. The discussions regarding improvisation, “making mistakes” and play during live coding as forms of experimentation, help me start seeing how we might approach this practice as a live band improv jam/open jam rather than a carefully rehearsed orchestra performance (a mindset I had been approaching this with).

The author explores the intersection of life coding with artistic research, delving into its fusion of technical expertise and intuitive, craft-based approaches. This blend fosters a dynamic interplay between problem-solving and the generation of obstacles. Viewing life coding as a discipline of trial and error, akin to “feeling one’s way,” highlights its reliance on technical computational knowledge while embracing a more intuitive process. In the realm of creative coding, the author often employs a technique of constant questioning, applying logic to resolve challenges in a perpetual cycle of doing and undoing, ultimately culminating in something beautiful. Yet, akin to art, determining the endpoint of this process proves elusive, as completion remains subjective.

Live coding, performed within a defined timeframe, prompts reflection on the nature of performance art—whether it is an ongoing process or a singular event. The author draws inspiration from Paolo Virno’s assertion that performing artists’ actions lack extrinsic goals, existing solely for their own occurrence. This concept reminds me of the Chafa Ghaddar’s fresco currently exhibited at the NYUAD Art Gallery. The fresco’s creation was partly performative, completed within the span of just a week, and the temporal constraints faced prompt contemplation regarding its ultimate completion. Ghaddar’s acceptance of presenting an unfinished piece reflects the essence of life coding, embracing real-time creation over finality.

Contemplating the eventual loss of Ghaddar’s fresco underscores the notion of permanence. The act of producing and subsequently losing artwork prompts deeper reflection on the essence of art itself, its ability to provoke thought, and its intrinsic value beyond material existence.