Null is a live-coded audiovisual performance exploring emptiness, transformation, and the unknown. It moves through three stages: a medieval dungeon, where dungeon synth conjures eerie ruins and forgotten myths; a Buddhist-inspired space, where chants and bells create a meditative stillness; and a posthuman future, where sound fragments into glitches and abstraction. In programming, null represents absence—a space waiting to be defined. In this performance, it becomes a journey through lost worlds, shifting identities, and the void that connects them all.
Performed by Wes Firestone, Kiri Tian, Katy Wang.
Our initial plan was to alternate roles among the three members, ensuring that each stage featured a different duo while the third person focused on debugging. Stage one: Audio by Wes, visuals by Kiri; Stage two: Audio by Kiri, visuals by Katy; Stage three: Audio by Katy, visuals by Wes.
However, during the actual performance, we encountered numerous technical errors and spent too much time trying to adhere strictly to our plan. This backfired, leaving us completely off track. As a result, we were only able to complete the first stage and the beginning of the second.
After reflecting on our experience, we adjusted our approach and re-performed the piece for ourselves. This time, Wes and Kiri focused on executing the audio design for the first and second stages, along with all the transitions. Meanwhile, Katy took charge of the visuals, working with materials collected by Wes and aesthetic ideas from Kiri, as well as the audio for the third stage.
Audio
- There was some unexpected distortion in the sound, which added an interesting texture I hadn’t planned for. I didn’t create it intentionally, but I learned to embrace distortion as a creative element rather than seeing it as a flaw.
- Our group ran into issues with embedded sound samples, but I realized that many of Strudel’s built-in sounds—like the crow and bell—are already rich and dynamic. It was fun to manipulate these simple sounds and see how unpredictable and layered they could become.
- What I really enjoyed about performing the audio was finally getting to try out a progressive layering process. It was exciting to build up and break down the sounds gradually, letting them evolve over time.
Visuals
- I originally wanted to use video sources, but they didn’t run smoothly in Flok. Switching to images turned out to be a blessing in disguise because I discovered how much I could do with them in real time. I also found it super convenient to keep an image folder on GitHub and embed them on the fly while adjusting effects during the performance.
- At first, I was frustrated that I couldn’t use patterns to sync visuals with the audio in Flok. But after playing around with more images and modulation, I realized that manually syncing them to the beat was actually pretty straightforward and less complicated.
Process
As a group, we started by discussing our interests and references, looking for common ground. From there, we developed the theme “null,” which tied together the three main concepts we wanted to explore: medieval, Buddhist, and posthuman. We also agreed on a dark, ambient aesthetic to unify the performance.
After refining the theme and gathering more references, we held another meeting to define the different stages and assign tasks.
We then had about a week to develop our individual sketches. Throughout this process, we supported each other by sharing ideas and resources. After that, we met again to discuss transitions and ensure everything flowed smoothly.
Finally, before the performance, we held a last rehearsal to fine-tune the details.
Experience
There were quite a few technical issues during the performance—I got logged out of Flok three times. For most of the performance, we were stuck in the first stage, where my role was supposed to be assisting Wes and Kiri with debugging, but I felt like I didn’t contribute much. That said, it was still exciting to present our work on a real stage. Surprisingly, I didn’t feel nervous—I was so focused on the live sketches that I didn’t have the mental space to overthink.
One moment that really stood out to me was when I tried to add an external image but got logged out, accidentally leaving a mess on the screen. Just as I was processing what had happened, Kiri quickly fixed it by adding the correct link, which saved the scene. That experience reinforced what I love about live coding—it fosters collaboration and gives me a strong sense of security as a performer, knowing that my teammates can step in when things go wrong.