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 *must** 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?


Additionally, 10 points are given for showing up to the Live Code Jam Session on Nov 22 and performing something for your block of time. If you don’t show up and perform you don’t get these 10 points.

Lecture 2-1: Technicals of Audio

Nov 10

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 12

Slides for Lecture 2-1

Installing and 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 1.1, 2, 2.1, 2.2, 2.3, 2.4, 3, 3.1, 3.2, 4, 5.2, and 9.2 in the Sonic Pi tutorial.

To turn in:

Once you have completed the above tutorial sections you will have a good foundation to start live coding yourself. Record a video of you live coding in Sonic Pi. It doesn’t have to be fancy or long (less than 30 seconds is fine) - though 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 in a .txt file!

A note on recording

Please be sure you are recording the sound directly from your computer, and not record the output of your laptop speakers. If you are using zoom, you will want to share computer audio. Be sure to also go to “More” > “Select sound sharing mode” > “Stereo (high-fidelity)”. Be sure to mute your microphone. Follow analogous instructions for other screen recorders (e.g. quicktime). Once you have made your recording, be sure to listen to it once to make sure the audio has recorded properly and has not picked up your roommates’ conversations.

Lecture 2-2: Live coding Ethos

Nov 15

Slides for Lecture 2-2

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?

Lecture 2-3: Live coding visuals

Nov 17

Live coding in Hydra - how to program in a language you have never seen.

Lab 5: Project 2 help

Nov 18

Lecture 2-4:

Nov 22

Live coding Jam Session in the movement lab!

You will perform for ~5 minutes in front of your peers!