Module 1: 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 1: Live coding with Sonic Pi

Your goal is to experience first-hand the practice of live coding. You will be using Sonic Pi and will record a video with audio of you live coding.

During your performance, you must:

Some language features you *must** use include:

The recording should last roughly 10 minutes (10 points). Note that in order to achieve this length, you will need to improvise a bit with your code in real-time. Do not plan out all 10 minutes exactly ahead of time, but instead have “goalposts” as discussed in class (10 points). Demonstrate familiarity with a core subset of the language (10 points). Make sure to have a focus on building a “soundscape” as a opposed to replicating your favorite sound (5 points).

Key tips

What to hand in?

How am I graded?

Rubric


Lecture 2-1: Technicals of Audio

https://docs.google.com/presentation/d/14o-OaOWX7zwejh8IHnCKAh89SrrJ3vnTPMu60T6Wqxk/edit?usp=sharing

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?

Lecture 2-2: Live coding How to

https://docs.google.com/presentation/d/1GRB-i_KYCa-KAku-XM8XZEPdbnenraJ5bXYKBnguwsY/edit?usp=sharing

Lab: Sonic Pi

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, can record your audio and code at the same time, and can post a video online. 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-3: Live coding ethos

https://docs.google.com/presentation/d/1RTROZiomVgFj6PGKguJcqWhoqLcFnBGo83bCgl388Fk/edit?usp=sharing

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-4: Live coding visuals

https://docs.google.com/presentation/d/1C1to9CnMwM2WImtZL5XSJmPFrzmHkb5minvRBjVurko/edit?usp=sharing

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

Lab 5: Project 2 help