Musical instructions

Ben Swift

22 May '19

can y’all keep a secret?

enough about me…

tell me about you





music, maths, computers: what’s the connection?

what are computer programs good at?

what would a song performed by a computer program sound like?


what is (pop) music?

activity: (low-tech musical instructions)

livecoding: (high-tech musical instructions)

what is music?

music (n.)

a series of pitched “events” over time

pedantry alert.

lots of patterns

but how do we express them?

the traditional way

“dimensions” of a musical note

  1. time
  2. pitch
  3. loudness


what aspects of the music does it influence?

why is it important?

how do we measure it?


what aspects of the music does it influence?

why is it important?

how do we measure it?


what aspects of the music does it influence?

why is it important?

how do we measure it?

maths recap 1: functions

function f(x, y) takes two parameters/arguments and returns a result

e.g. f(x, y) = 8x + 2y

parameters are input, the function does something with the inputs to produce an output

maths recap 2: modular arithmetic

arithmetic which “wraps around”

0, 1, 2, 0, 1, 2, 0, 1, 2, … instead of 0, 1, 2, 3, 4, 5, 6, …

the modulus can be any integer, e.g.

  • 7 mod 4 is 3
  • 18 mod 7 is 4

example: clock




so let's find them

activity: musical instructions

how to play

split into pairs

I’ll tell one person (person A) the name of a song

person A will write down (in English) instructions for how to play the song (no conventional music notation allowed)

person B will read the instructions, “sing” them, and try to guess what the song is

scales (just a warm-up)


We Will Rock You

remember: you have to describe the instruments, not the vocal track

This is America

your choice of song


what was the hardest part?

what was the easiest?

was it easier/harder than you expected?

how would you do it differently next time?


what I’m gonna do

learn a new song (by ear!)

figure out how to turn it into code

find a bunch of sounds which sound (approximately) like the recording

lay down a vocal track (maybe)

make the whole process make sense to you guys

what you’re gonna do

help me choose the song

be kind when I make mistakes

clap politely at the end (even if I flame out)

reminder: domain model

time (in beats), e.g. 0, 1, 2, 3, 4, 5, 6, 7, 8

pitch (in MIDI note numbers), e.g. middle C as 60, C# as 61, etc.

loudness (0 is silent, 127 is super loud)

extempore: a livecoding language

extempore is a programming language designed for musical livecoding (written Andrew Sorensen and me)

mplay is the key function:

;;                pitch loud duration   instrument
(mplay *midi-out* 60    80   (* .5 dur) 1)

don’t worry about the syntax, I’ll explain enough for you to follow along

I'm old...

let's choose a song

what did we learn?

pop music isn’t black magic, it’s a domain with lots of structure/patterns

we can write instructions which express those patterns

computers/code are really useful for modelling/exploring this stuff

this is not AI, either

c/c/c studio

in 2020 I’m starting an art+music+code extension program at the ANU

we’ll do stuff like this (and lots more)

if you’re interested, let me know 😊


[email protected]

creative-commons creative-commons-by creative-commons-nc creative-commons-sa twitter github vimeo envelope