John Cage’s ‘Five’ : a 365-days project

I’m starting a project where I will post each day an algorithmically generated version of John Cage’s Five on Youtube. I’ve talked multiple times on this blog about John Cage’s Number Pieces, time-brackets, and how we can approach these through statistical analysis and the algorithmic generation of multiple versions.

This was something I did for the Number Pieces ‘Three²’, ‘One⁴’, and ‘One⁵’, but the process was relatively slow. I managed recently to speed it up so that I’m able to automatically generate a sound file and the associated video each day. Which I will do now with ‘Five’ for a year ! Check out today’s version.


The piece ‘Five’ is one of the earliest Number Pieces written by John Cage (1988). It is scored for five unspecified instruments or voices, as long as they can play the notes indicated. Each part has five time-brackets, the middle one being fixed (starting time: 2’15”, ending time: 2’45”) for all of them. Using the methodology I introduced before, it is possible to define a random variable X_t for each time t, taking its values in the 136 possible set classes with five sounds. Using a uniform distribution for choosing the starting and ending times of the time-brackets, we can empirically calculate the probability distribution of X_t, giving us the heatmap below (in log scale).

As each time-bracket in ‘Five’ can have one, two, or three notes, this gives a lot of possibilities in terms of set classes, which the above picture shows. It is also interesting to notice that the output can be more or less varied in time (which obviously depends of the time-bracket contents).

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s