Module 2: Audio

Here we look at code as a performative interface. Looking beyond code as a fixed object, we find artistic value in the process of code evolution. We explore experience of writing code in front of an audience and accepting imperfection. In a more practical sense, this is particularly good training for coding interviews.

Project 2: Live coding with Sonic Pi

Your goal is to experience first-hand the practice of live coding. You will be using Sonic Pi.

During your performance, you must:

Some language features you should use include:

The recording should last roughly 10 minutes. Note that in order to achieve this length, you will need to improvise a bit with your code in real-time. Do not try to plan out all 10 minutes exactly ahead of time.

What to hand in?

How am I graded?


Lecture 3: Technicals of Audio

Nov 12

What is digital audio? How is sound represented in a computer? What new challenges arise in programming audio as opposed to non-time domain programming?

Lab 2: Sonic Pi

Nov 13

Download slides for Lecture 3

Installing finding your way around Sonic Pi.

The goal of this lab is for you to install Sonic Pi, learn the basic interface, and make a short recording.

Complete sections 2.1, 2.2, 2.3, 3.1, 3.2, and 4 in the Sonic Pi tutorial.

To turn in:

Record a video of your coding in Sonic Pi. It doesn’t have to be fancy - a loop that plays a single note is enough. This is to confirm that you have the tool installed, understand the basic usage, and can record your audio and code at the same time. Post your video recording publicly, and save the link. For the lab, simply submit the link!

Lecture 4: Live coding Ethos

Nov 19

Download slides for Lecture 4

We start be examining the design of languages around creativity - how does the structure of a programming language encourage exploration and creativity? We then look at the practice of live coding and algoraves. How can language design guide us to ensure code does not break on stage? We ask - if code is art, what is virtuosity in code?

Lab 5: Project 2 help

Nov 20