Prof. Mark Santolucito
Wednesdays 6:10 - 8:00 PM, Computer Music Center, Columbia University
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.
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). The final étude asks each student to design - with AI assistance - a small bespoke live coding language of their own and perform in it. The course culminates in a final performance and an accompanying written artist statement situating the work in the ideas of the course.
Grading: participation and reading responses, discussion leading, études, and the final performance and writeup. (Exact breakdown on the syllabus.)
Schedule and readings are tentative and will be adjusted as the semester progresses.
Week 1 - Class introduction: code as performance, performance as code
Week 2 - Histories and communities
Week 3 - Language design for liveness: SuperCollider and just-in-time programming
Week 4 - Patterns as programs: TidalCycles and Strudel
Week 5 - Notation, instruments, and the human element of language design
Week 6 - Live coding beyond sound: visuals with Hydra, live coding in education with Sonic Pi
Week 7 - Liveness, risk, and error
Week 8 - Show us your screens: projection, legibility, and the audience
Week 9 - Embodiment and virtuosity (études showcase)
Week 10 - When the machine writes the code: LLMs in live coding; authorship, labor, and the value of writing code live
Week 11 - Languages on demand: AI-assisted design of bespoke live coding languages
Week 12 - Final performance workshop
Week 13 - Final performances + course wrap-up