Live Coding: Code as Performance

Fall 2026

Prof. Mark Santolucito

Wednesdays 6:10 - 8:00 PM, Computer Music Center, Columbia University

Summary

This seminar explores live coding: the practice of writing and modifying programs as they execute in real time as an artistic performance practice. We will study the design of programming languages built for live coding (TidalCycles, SuperCollider, Sonic Pi, Strudel, Hydra), asking what makes a language good to perform with rather than just to program with. What is the human element of designing a programming language. We will engage with live coding as an artistic practice - its history, its communities (TOPLAP, algoraves), and its aesthetics of liveness, risk, and error. Finally, we will ask what code as performance means in the age of AI: when machines can generate code, what is the value of a human writing it live? How can the AI assisted generation of bespoke programming languages change live coding?

Students will read and discuss key texts, develop their own live coding practice, and perform.

Course Structure

Each week combines seminar discussion of readings with hands-on live coding practice. Every student will lead at least one discussion during the semester and post a short reading response before each class. Alongside the readings, students will develop a personal live coding practice through a series of short in-class performances (études).

One of the most important parts of Live Coding, as with any performance practice, is practice. To the end, we will have a component to this class which involves regular public performance of life coding. Our plan is to set up a Twitch live stream, for which we all have access, and will live code on. Everyone will be required to live code for one hour a week on this channel. You’ll also be expected to do 20 minutes (across 2 periods of 10 minutes) of listening on this channel to your peers, and to leave comments during their sessions. The goal of this is both to get practice live coding, but also to practice live coding in (virtual) public setting.

Grading:

Schedule

Schedule and readings are tentative and will be adjusted as the semester progresses.

1 — September 9

Basics of live coding in Rattle, communities

hw live code on stream with rattle https://forg-lab.github.io/rattle/

2 — September 16

MaxMSP

hw live code on stream with strudel https://strudel.cc/

3 — September 23

An impressive display of manual dexterity

Installing Tidal locally pattern based languages with Strudel/Tidal, visuals with Hydra

hw practice vim bindings https://vim-adventures.com/ https://www.vim-hero.com/

4 — September 30

From Vim to Autocomplete to LLMs. The meaning of intention and control in code.

5 — October 7

Language paradigms - ergonomics of syntax and semantics

hw vibe code your own live coding language

6 — October 14

Algorave - rattle at Movement Lab

7 — October 21

Showcase/critique of student languages

8 — October 28

Algorave - your own language at Movement Lab

9 — November 4

Live coding beyond music - dance, textiles, games

10 — November 11

going beyond the screen - connecting to physical interfaces

hw connect some external device for parameter control

11 — November 18

Laptop Orchestras: Networked live coding

12 — December 2

Algorave at Movement Lab

13 — December 9

Liveness, risk, and error. reflecting on the semester