this was a great reading, and captured precisely why I am grateful I majored in this hodgepodge field despite kind of sucking. I read a book about mycelium-inspired-anarchy a little over a year ago, and a lot of the aspirations expressed in this reading echoed it. Through live coding, we can discover what we should cherish and encourage within ourselves and among each other. For example, this resistance towards being defined, of having to be boxed in. Running away from the idea that you have to know or control something to love it. It is possible to love even if you can’t do both those things, which is fearlessness I guess. Unashamed love. I am still trying to get around to this idea regarding this major, and actually, probably regarding everything, now. I’ve been getting into rituals and these sorts of things, but I acknowledge that live coding can be another practice in order to lean into that way of embodied living. It actually is probably a good thing for me to do, which is why I took this class. Get more comfortable opening up in the world, real time! Literally real time. I’m a reader, and I think this always gave me a sense of safety and distance. I liked processing and analyzing things from afar, and pressure is probably one of the scariest things to me. So truly, this idea of REAL TIME. We’re all here right now. I’m 22, and I never expected to get this far, and the fact that I’m 22 and still required to figure it out as I go is insane to me. Like, I can never quite wrap my head around the absurdity of it. It’s all really real-time. How does live coding open up? How do you open up? We’ll see, I guess.
I also really liked the idea of “thinking in public.” I am a bit ashamed to admit that I have incel-tendencies. But people are not something you should be afraid of. I think I learned this because of the times I am in, but this idea of thinking in public really resonated with me. Like it’s no big deal. In fact, being around people is magic, and leads to magical times. Sweat and breath in a dance room, you know?
Something else that hit was this quote: “This way of computing . . . helps me ‘unthink’ the engineering I do as my day job. It allows for a relationship with computers where they are more like plants, rewarding cultivation and experimentation.” I think, in the modern world, and for a lot of human history, we maintain the relationships that we are required to to survive, but we also know there is a better way of being in the world that feels like beauty, feels lighter, and feels true. Live coding is a way to be that way, I understand. Sort of a release, something you GET TO DO rather than something YOU HAVE TO DO.
I also really liked the idea of presenting “familiar things in a strange way.” I think a lot of things look dead to us and we have to shake things up to recognize them as alive. It goes hand in hand with this idea: “This is a problem for her (and us) inasmuch as Big Tech wants computers to be invisible so our experience of using them becomes seemingly natural.” I like minimalism, but it is also a trap of invisibility and complacency. A really well-designed snare. So keeping things strange and LOUD and VISIBLE appeals to me. And the point of all this is, exactly as was written here: “The capacity of live coding for making visible counters the smart paradigm in which coding and everyday life are drawn together in ways that become imperceptible. The invisibility here operates like ideology, where lived experience appears increasingly programmed, and we hardly notice how ideology is working on us, if we follow this logic, then we do not use computers; they use us.” How do you learn to SEE what can’t be seen? How do you learn to acknowledge that it takes two to tango and it’s not just you running things? I think live coding makes you sharper, or rounds out the depth in the back of your eyes. There’s this great Susanne Sundfor quote: “We don’t do life. Life does us.” And yep, just about. I don’t believe it in my bones yet. Another reason why I took this class.
And the last thing I want to write is that the nature of computers is soooo hyper hyper intimate. It’s like your pet dog except that dog is a mirror and a portal to any world you want to go to. A magical object! The art that has come out of computers consequently has this…feel. It feels kind of windy and spicy, and like an igloo. But then bringing that hyper super intimacy into a public space…? It’s kind of like you’re opening up that intimacy to everyone. It’s safe vulnerability. So wow.
“To define something is to stake a claim to its future, to make a claim about what it should be or become. This makes me hesitate to define live coding.” Starting my understanding of live coding with such a statement really set things in perspective for me: why give a non-traditional form of coding and performance a tradition definition? As someone who is drawn to experimentation and exploring the limitations and possibilities of different programs and techniques, the idea of live coding as something that resists being pinned down feels right. It suggests that live coding is less about arriving at a finished product and more about staying in process. The emphasis on not defining it too rigidly made me think about how often coding is treated as something that must be efficient and goal-oriented, rather than exploratory or expressive. Live coding seems to push back against that mindset by valuing risk and improvisation. I also found myself thinking about the idea of “thinking in public” and how vulnerable that can be. Showing the screen and showing the code as it’s being written means showing uncertainty and mistakes in real time. Instead of hiding behind polished results what live coding seems to do is invite the audience into the process of creation itself. That feels intimidating but at the same time freeing, especially in contrast to how coding is usually preformed behind the scenes.
This reading made me reconsider what I thought live coding was, in the sense that I may have understood it in a more traditional sense, computing-wise. For example, I would liken it to an interactive DJ set, but after the reading, I’m not sure I would still describe it like that. I feel like every time I tell someone I’m taking this class and they ask me to explain what it is, I come up empty, so this really helps kind of clear the air. I was also really intrigued by the mention of the political angle, and how showing the screen and the code you go against what Big Tech essentially wants, which is to make the computers feel invisible so our interactions with them are “seemingly natural”.
At first, I thought live coding was just coding in front of people, but after reading, I understood that it is more about changing the code while it is running and treating it like a performance. I liked the idea that the code itself is shown and becomes part of the artwork. It made me think about programming in a different way, more like playing an instrument than writing a normal program.
In the Hydra chapters, I learned that textures are just patterns, not colors. For example, osc() makes stripe patterns, noise() makes cloudy patterns, and voronoi() makes cell-like shapes. One part I was a bit confused about is modulation, but I think it means using one pattern to change another pattern. I want to try this myself in class because it seems like small changes in the code can create very different visuals.
I was really struck by the idea of live coding as a “technique of making strange.” The text mentions it in a creative sense, but what I noticed is how deep this simple act feels to me. When I use apps or websites, everything is designed to be smooth and invisible like the code is hidden and the choices are pre made. I just click and things happen. It feels easy, but also a little like I am being led.
Live coding by putting the raw code on screen for everyone to see, does the opposite. It makes the machine visible again. For me, that seems powerful. It turns coding from a private and technical task into a public conversation. That act of showing feels like a small act of resistance in a world that wants technology to feel natural and unchallengeable. It reminds me that I am a user, not just a consumer and there is a big difference.
The reading states that “Live coding is about making software live.” As an aspiring software engineer, my experience with coding has always involved writing an algorithm, testing it, debugging it, and deploying it. Essentially, I have always programmed software to execute tasks that, once deployed, perform the same actions repeatedly for users. However, I realize that throughout my programming experience, I have never once treated the software as a live entity with which I could interact in real time. The software was always pre-programmed, static. Therefore, I find the concept of live coding (where the software feels alive and can be interacted with during a performance) a fascinating way to blend artistic expression with such rigid field of programming.
To prove the liveliness of coding, the reading also points out that live coding is similar to live music performance. The real, social, and spiritual experience of music happens in the moment of performance, with the presence of the musician and the audience. Similarly, live coding embodies the same principle. It is a performance where the creation of music (through writing code happens) live, in front of an audience. There is no pre-recorded track, the music is generated in real time from the performer’s actions. Thinking about learning live coding seems a bit intimidating to me at this point. However, I find the idea of learning the algorithms and methods to manipulate my laptop screen to express my ideas truly exciting.
Our process began with a clear vision of the environment we wanted to create, an abstract narrative that subtly tells the story of a group of friends watching TV and embarking on a surreal, psychedelic trip. While we didn’t want to portray this explicitly, the goal was to evoke the strange sensations and shifting experiences they go through, using a mix of visual cues and atmospheric design. With the concept in place, we knew that the project would need creative and unusual visuals right from the start, paired with immersive psytrance or liquid drum and bass audio to match the tone and energy of the story.
Once we had a solid sense of the visual and sonic direction, we dedicated ourselves to an intense 12 hour live coding jam session (with a couple of runs to the Baqala for snacks), which we streamed on Instagram. This session became a space of spontaneous experimentation and rapid development, where we started shaping the core of the experience. Although we made significant progress during the jam, the following days, especially after Tuesday, revealed some lingering technical issues and problems with timing that still needed to be resolved. These challenges became the focus of our attention as we worked toward polishing the final piece.
Audio
Aadil and I mostly handled the audio. Here we focused on using some effective voice samples to bring out parts of the performance we thought needed more attention. We just used samples from our favourite songs (e.g., Everything In Its Right Place by Radiohead) and favourite genres (Techno, Hardgroove). We had a buildup using layers of ambient textures and chopped samples with increasing intensity to simulate anticipation. Specifically, we manipulated legato ambience, gradually intensified techno patterns, and used MIDI CC values to sync modulation effects like low pass filters and crush.
In the midsections, we used heavy 808 kicks, distorted jungle breaks, and glitchy acid lines (like the “303” patterns) to keep up the tension and energy. For the end sections, we wanted to have some big piano synths that brought home the feeling of a comedown. The tonal shift was meant to echo that feeling of emotional release, what it feels like when a trip starts to settle.
Visuals:
The goal was to mirror the full arc of a trip, with visuals locked to every change in the track. Mo Seif first sketched a concept for each moment, then built the look layer‑by‑layer, checking each draft against the audio until they matched perfectly. We had seven primary sections, each tied to a distinct musical cue.
Intro – “Sofa & Tabs”
Us slouched on a couch, half‑watching TV. They decide to take a journey of their lifetimes; the trip timer starts.
2. Onset – “TV Gets Wavy”
The first tingle hits. The TV image begins to undulate – colors drifting, lines bending. A slow warp effect hints that reality is about to buckle.
3. First Peak – “Nixon + Rectangles”
Audio: vintage Nixon sample followed by drum drop.
Visuals: explosion of rectangle‑shaped, ultra‑psychedelic patterns that sync to each snare hit. The crowd pops; everything feels bigger, faster, weirder.
4. Chiller Section
A short breather featuring three “curated” GIFs:
Lo Siento, Wilson – pure goofy laughter.
Sassy the Sasquatch – laughter + tripping out
Pikachu tripping – those paranoid, deep‑thought vibes.
Together they nail the mood‑swings of a trip.
5. Meta Moment – “Pikachu Breaks the 4th Wall”
Pikachu dissolves into a live shot of the same GIF playing on my laptop in the dorm while we’re editing. Filming ourselves finishing the piece made it hilariously meta; syncing it to the beat was a nightmare, but it clicked.
6. Street‑Fighter Segment – “Choose Your Fighter”
Inspiration: I was playing GTA once back and saw myself in the game as Trevor. So we wanted to recreate that feeling and put us in the video game.
Build: we took 4‑5 photos of each of us, turned them into looping GIFs, and dropped them onto the classic character‑select screen with p5.js.
Plot Twist: Mo’s fighter “dies” (tongue out), smash‑cut to an Attack on Titan GIF – like he resurrected.
7. Final Drop & Comedown – “Hard‑Groove + CC Sync”
The last drop pivots to a hard‑groove techno feel. Every strobe and colour hit is driven by MIDI CC values mapped to the track. We fade back to the original couch shot: the three of us staring straight into the lens, coming down – sweaty, wired, grinning.
Here are the gifs we made for the street fighter visuals:
Here is the code we used: Tidal:
--Lets watch some tv + mini build up + mini drop (SEC 1hey guys why dont we watch some tv
d1 $ chop 2 $ loopAt 16 $ s "ambience" # legato 3 # gain 1 #lpf (range 200 400 sine)
once $ "our:3" # up "-5"
d10 $ fast 2 $ "our:4" # up "-6"
d2 $ slow 1 $ s "techno2:2*4" # gain 0.9 # room 0.1
--cc (eval separately)
d16 $ fast 16 $ ccv "<0 100 80 20 0 100 80 20>" # ccn "2" # s "midi"
d4 $ ghost $ slow 2 $ s "rm*16" # gain 0.75 # crush 2 # lpf 2500 # lpq(range 0.4 0.6 sine)
d5 $ stack [
n "0 ~ 0 ~ 0 ~ 0 ~" # "house",
n "11 ~ 11 ~ 11 ~ 11 ~" # s "808bd" # speed 1 # squiz 0 # nudge 0.01 # release 0.4 # gain 0.3,
slow 1 $ n "8 ~ 8 8 ~ 8 ~ 8" # s "jungle"
]
d6
$ linger 1
$ n "[d3@2 d3 _ d3 _ d3 _ _ c3 _]/1"
-- $ n "[d3 d3 c3 d3 d3 d3 c3 d3 f3 _ _ f3 _ _ c3]/2"
-- $ n "[f3 _ _ g3 _ _ g3 _]*2"
# s "supergong" # gain 1.2 #lpf 100 # lpq 0.5 # attack 0.04 # hold 2 # release 0.1
d7 $ stack [randslice 8 $ loopAt 8 $ slow 2 $ jux (rev) $ off 0.125 (|+| n "<12 7 5>") $ off 0.0625 (|+| n "<5 3>") $ cat [
n "0 0 0 0",
n "5 5 5 5",
n "4 4 4 4",
n "1 1 1 1"
]] # s "303" # gain 0.9 # legato 1 # cut 2 # krush 2
d10 $ fast 2 $ ccn "0*128" # ccv (range 200 400 $ sine) # s "midi"
--at the end of first visual
d1 silence
d2 silence
d5 silence
d6 silence
d7 silence
-- drugs r enemy (before the drop)
once $ s "sample:2" # gain 1.2
-- THE drums (the drop)
d11 $ stack [fast 2 $ s "[bd*2, hh*4, ~ cp]"] # gain 1.2
--after drums
d9 $ stack [
slow 1 $ s "techno2:2*4" # gain 0.9 # room 0.1,
stack [
n "0 ~ 0 ~ 0 ~ 0 ~" # "house",
n "11 ~ 11 ~ 11 ~ 11 ~" # s "808bd" # speed 1 # squiz 0 # nudge 0.01 # release 0.4 # gain 0.3,
slow 1 $ n "8 ~ 8 8 ~ 8 ~ 8" # s "jungle"
],
linger 1
$ n "[d3@2 d3 _ d3 _ d3 _ _ c3 _]/1"
-- $ n "[d3 d3 c3 d3 d3 d3 c3 d3 f3 _ _ f3 _ _ c3]/2"
-- $ n "[f3 _ _ g3 _ _ g3 _]*2"
# s "supertron" # gain 0.8 #lpf 100 # lpq 0.5 # attack 0.04 # hold 2 # release 0.1 ,
stack [randslice 8 $ loopAt 8 $ slow 2 $ jux (rev) $ off 0.125 (|+| n "<12 7 5>") $ off 0.0625 (|+| n "<5 3>") $ cat [
n "0 0 0 0",
n "5 5 5 5",
n "4 4 4 4",
n "1 1 1 1"
]] # s "303" # gain 0.9 # legato 1 # cut 2 # krush 2,
fast 16 $ ccv "<0 100 80 20 0 100 80 20>" # ccn "2" # s "midi"
] # gain 0
d11 silence
d9 silence
-- START XFADE WHEN READY FOR GIF MUSIC
d10
$ whenmod 16 4 (|+| 3)
$ jux (rev . (# s "arpy") . chunk 4 (iter 4))
$ off 0.125 (|+| 12)
$ off 0.25 (|+| 7)
$ n "[d1(3,8) f1(3,8) e1(3,8,2) a1(3,8,2)]/2" # s "arpy"
# room 0.5 # size 0.6 # lpf (range 200 8000 $ slow 2 $ sine)
# resonance (range 0.03 0.6 $ slow 2.3 $ sine)
# pan (range 0.1 0.9 $ rand)
# gain 0.6
-- -->7
d16 $ fast 16 $ ccv "<0 100 80 20 0 100 80 20>" # ccn "2" # s "midi"
-- GIF section Sudden drop from the mini drop, chill background matching music + sample audios for gifs (SEC 2.1)
-- GIF SECTION MUSIC
-- 1) DONNY
-- 2) WILSONNNNNN
once $ s "wilson" # gain 1.4
-- 3) PIKAPIKA
once $ s "pikapika" # gain 1.4
--backgroung silence WHEN ICE SPICE
d10 silence -- aadil
-- Ice Spice Queen (SEC 2.2)
once $ "our:5" #gain 2.5 --j
-- Start boss music LOUD, reverse drop off glitchy into us fighting (SEC 3)
d1 $ fast 2 $ s "techno2:2*4" # gain 1.2 # room 0.1
--SELECT UR FIGHTER CC VALUES
d10 $ fast 4 $ ccn "0*128" # ccv (range 200 400 $ sine) # s "midi"
-- d16 $ slow 1 $ ccn "0*128" # ccv (range 0.9 1.2 $ slow 2 $ rand) # s "midi"
-----------------------------------------------------------
--cc for street fight
--d16 $ fast 16 $ ccv "0 60 0 70" # ccn "0" # s "midi"
--
-- WHEN STREET FIGHT MO VS AADIL
d2 $ stack [
sometimesBy 0.25 (|*| up "<2 5>") $
sometimesBy 0.2 (|-| up "<2 1>")
$ jux (rev) $
n "[a4 b4 c4 a4]*4" # s "superhammond" # cut 4 # distort 0.3 # up "-9"
# lpf (range 200 7000 $ slow 2 $ sine) # resonance ( range 0.03 0.5 $ slow 3 $ cosine) # octave (choose [4, 5, 6, 3]),
sometimesBy 0.15 (degradeBy 0.125) $
s "reverbkick*16" # n (irand(8)) # distort 0 # speed (range 0.9 1.2 $ slow 2 $ rand) # gain 0.9
] # room 0.5 # size 0.5 # pan (range 0.2 0.8 $ slow 2 $ sine) #gain 0.9
d5 $ fast 2 $ (|+| n "12")$ slowcat [
n "0 ~ 0 2 5 ~ 4 ~",
n "2 ~ 0 2 ~ 4 7 ~",
n "0 ~ 0 2 5 ~ 4 ~",
n "2 ~ 0 2 ~ 4 7 ~",
n "12 11 0 2 5 ~ 4 ~",
n "2 ~ 0 2 ~ 4 7 ~",
n "0 ~ 0 2 5 ~ 4 ~",
n "2 ~ 0 2 ~ 4 ~ 2"
] # s "supertron" # release 0.7 # distort 10 # krush 10 # room 0.5 #hpf 8000 # gain 0.7
-- silence d2 when the next DO starts playing
d2 silence
-- Quiet as in im dead, mini build up, mini drop after lick (SEC 4)
do {
d5 $ qtrigger $ filterWhen (>=0) silence;
d4 $ qtrigger $ filterWhen (>=0) $ stack[
s "hammermood ~" # room 0.5 # gain 1.8 # up "8",
fast 2 $ s "jvbass*2 jvbass*2 jvbass*2 <jvbass*6 [jvbass*2]!3>" # krush 9 # room 0.7
] # speed (slow 4 (range 1 2 saw));
d3 $ qtrigger $ filterWhen (>=8) $ seqP [
(0, 1, s "808bd:2*4"),
(1,2, s "808bd:2*8"),
(2,3, s "808bd:2*16"),
(3,4, s "808bd:2*32")
] # room 0.3 # hpf (slow 4 (100*saw + 100)) # speed (fast 4 (range 1 2 saw)) # gain 0.8;
}
d1 $ "[reverbkick(3,8), jvbass(3,8)]" # room 0.5#krush 6 # up "-9" # gain 1
--
drop_deez = do
{
d5 $ qtrigger $ filterWhen (>=0) $ fast 4 $ chop 2 $ loopAt 8 $ s "drumz:1" # gain 1.8 # legato 3 # cut 3;
d6 $ qtrigger $ filterWhen (>=4) $ s "jvbass" # gain 1 # room 4.5;
d10 $ qtrigger $ filterWhen (>=6) $ loopAt 4 $ s "acapella" # legato 3 # gain (range 0.7 1.5 saw);
d7 $ qtrigger $ filterWhen (>=0) silence;
d8 $ qtrigger $ filterWhen (>=0) silence;
d2 $ qtrigger $ filterWhen (>=0) silence;
d3 $ qtrigger $ filterWhen (>=0) silence;
d4 $ qtrigger $ filterWhen (>=0) silence;
d9 $ qtrigger $ filterWhen (>=8) $ s "amencutup*16" # n (irand(8)) # speed "2 1" # gain 1.8 # up "-2"
}
d11 $ slow 1 $ ccn "0*128" # ccv (range 1 62 saw) # s "midi"
drop_deez
--after drop settles
do
d1 silence
d6 silence
-- Quieting down with the couches, drug bad sample (SEC 5)
do {
d2 $ qtrigger $ filterWhen (>=6) silence;
d6 $ qtrigger $ filterWhen (>=4) silence;
d9 $ qtrigger $ filterWhen (>=0) silence;
d10 $ qtrigger $ filterWhen (>=0) silence;
d5 $ qtrigger $ filterWhen (>=8) silence;
d1 $ sound "our:1" # cut 4 # gain 1.5;
d12 $ qtrigger $ filterWhen (>=0) $ slow 4.1 $ ccv "10 5 4 3" # ccn "0" # s "midi";
}
d1 silence
once $ s "drugsrbad" # gain 1.4
hush
I think at one point we had two drops and we just couldn’t proceed creatively from that point on. But we went back to all of our previous blog posts and realized that we could just think of something and really we already have the tools to do it.
Thank you Aaron for all the help and I think I speak for all three of us when I say that we really needed the fun we had in this class as graduating seniors.