A Perspective
This presentation is about making music
by designing systems that make music.
System
- A set of things working together as parts of a mechanism or an interconnecting network; a complex whole.
- A set of principles or procedures according to which something is done; an organized scheme or method.
Oxford English Dictionary
For his 1965 composition “It's Gonna Rain”, Steve Reich designed a generative mechanical system.
Steve Reich: It's Gonna Rain (1965)
It was a system of two tape recorders.
A system of two tape recorders
Reich had made field recordings of speech on tape.
With recorded speech
He made two short identical loops from his recordings. One for each tape recorder.
Two identical loops
The tape recorders were set to slightly different speeds.
One would play a little faster than the other.
With slightly different speeds
This started a phasing process. A continuously changing soundscape was generated from the short loops.
A generative phasing process
Once Reich had discovered this generative process in tape, he applied it to other media.
Reich's phasing process in other media
Brian Eno was inspired by “It's Gonna Rain”, and used the same phasing process on “Music for Airports” in 1978.
Brian Eno: Music for Airports (1978)
His design had seven tape recorders instead of two.
A system of seven tape recorders
And the tape loops were a lot longer. Each had slightly different length.
With long loops, different length for each
Eno recorded one musical note on each loop.
One musical note per loop
This is the system that generated track 2 of “Music for Airports”.
A generative phasing process
Terry Riley’s “In C” from 1964 is a composition expressed as a set of principles and procedures.
Terry Riley: In C (1964)
It consists of a sequence of 53 short loops… …and a set of instructions for playing them.
53 short loops… …instructions for playing
Every performer can repeat each loop for as long as they like.
As long as collectively the group stays within a few loops of each other.
Repeat each loop as many times as you like
With this simple blueprint you get a system that generates a new version every time it's played.
No two performances will ever be the same.
A new realization of the score generated every time
The system is simulated here by a quintet of marimbas.
Use the slider to see how they generate a different performance every time.
No two performances will ever be the same
Generative Method
“It's Gonna Rain” and "Music for Airports" were made using generative methods.
But the results don't retain that generative nature. Every time you listen to these pieces, you hear the same thing.
Generative Product
“In C“, by contrast, is a generative product. It was not just generated once by the composer, but is generated anew every time.
For “In C” the system itself is shared, not just its outputs. Anyone can use the score to generate a new version. That happens somewhere in the world almost every day.
Eno's latest album, Reflection, is both:
A generative product made using generative methods.
Brian Eno: Reflection (2017)
Both generative method and product
You can get “Reflection“ as an app.
The generative system itself is installed to your phone.
It produces an infinite stream of unique music.
App edition contains the generative system itself
“Reflection” is a generative software system. That makes it easy to deliver to listeners.
Much easier than reel-to-reel tape recorders.
This presentation is another example of that convenience: Several generative software systems are embedded right onto this webpage.
Software Systems
Apart from the ease of delivery, software systems have a few other benefits.
Other Benefits of Using Software
One of them is their capability to make lots of random choices efficiently.
And randomness is an incredibly useful generative technique.
Randomness
Here's an example of a generative tool that is all about randomness.
Generative Randomness
It's a drum machine. One that generates random drum patterns.
A Stochastic Drum Machine
You can generate as many patterns as you want and never get the same one twice.
Never generates the same pattern twice
That's because there are about 12,000,000,000,000,000 different possible combinations.
About 12,000,000,000,000,000 patterns
The “Deviations” slider turns up the randomness even more.
You can use it to explore the border between order and chaos.
Crank randomness up to 11 with “Deviations”
John Cage was a pioneer in the use of randomness in music composition.
John Cage's
Chance Procedures
His method ever since the 1950s was to
“ask questions rather than make choices”.
This is a generative system.
“Asking questions rather than making choices”
A question creates a possibility space
By then letting a random process answer the question, you generate the result.
Random selection generates an answer
Almost all generative music systems are elaborations of this core idea.
This is also what the drum machine does. We ask "what drum pattern should I use?" and the system randomly selects an answer.
In the drum machine: “What drum pattern should I use?”
Another thing software is good at is algorithms.
Algorithms
That is, following a clear plan, making calculations, and doing formal reasoning.
Following a plan,
making calculations,
doing formal reasoning.
Generative grammars represent an algorithmic approach to music generation.
Generative Grammars
The idea comes from linguistics, where it was first developed by Noam Chomsky in the 1950s.
From linguistics, Noam Chomsky
It's about formalizing the rules of language into a system that is capable of generating sentences of the language.
Formalizing the rules of language into a system
For Chomsky it was all about natural language. But it can also be applied to musical languages.
For musical language too?
-
pattern
cell
cell pattern
-
cell
twoBeatCell
threeBeatCell
-
twoBeatCell
eighth eighth
quarter
-
threeBeatCell
eighth eighth eighth
eighth quarter
quarter eighth
-
quarter
-
eighth
Let's define a generative grammar for additive rhythm.
An additive rhythm grammar
Additive rhythm patterns consist of rhythmic cells. A cell can be either two or three beats long.
Consists of cells that are two or three beats long
A two-beat cell is either two eighths or one quarter.
A two beat cell is two eights or one quarter
A three-beat cell is either three eighths, or an eighth and a quarter in either order.
A three beat cell is three eighths, or an eighth and a quarter.
Each quarter and eighth can be either a note or a rest.
Now we have hierarchically defined what a “cell”
means in this language, all the way down to the atomic level.
Quarters and eighths are notes or rests
A full pattern is either a single cell, or a cell followed by another pattern.
This definition is recursive, and makes it possible to express multi-cell patterns.
A pattern is a cell or a cell followed by another pattern.
A recursive definition.
Once you have a grammar, you can generate rhythm patterns by expanding it.
Generating patterns from the grammar
Whenever there are two or more options, you choose one randomly.
When there's more than one option, choose randomly
So randomness is again the tool that wields the generative power here.
It's just used in a more constrained form this time.
Randomness in a very constrained form
When you generate two or more patterns simultaneously, you get polyrhythms.
Multiple patterns make a polyrhythm
Software also makes it easy to connect systems to the external world.
Connected Software
The devices running these systems are equipped with sensors, interfaces, and network connections.
Through sensors, interfaces, network connections
That means you can make a generative musical system that plays off of other systems.
Generative systems that play off of other systems
Helsinki
This system generates music from the Helsinki tram system.
Generating music from the Helsinki tram system
It is using real-time data to track where each tram is right now. It's likely to be quiet now because few trams run at night. Check back later ;)
Using real time tracking data
The trams are playing a pentatonic scale, mapped to central Helsinki.
A pentatonic scale mapped to central Helsinki
In some sense, this is just randomness again.
The music is incidental - the tram drivers aren't deliberately playing music to you.
Randomness again - because mapping is incidental
But the conceptual layer is significant.
The idea that you're listening to the city's nervous system changes the way you experience the music.
Conceptual layer adds meaning - “listening to the city”
- E4
- D4
- C4
- A3
- G3
- E3
- D3
- C3
- A2
- G2
This was an example of data sonification:
Generative musical systems riding on events or data produced by other systems.
Data Sonification
Speaking of connecting musical systems to other systems, how about the most interesting systems of them all: Human beings?
The most interesting systems in the world: Human beings
This is the realm of
interactive generative systems.
Interactive Generative Systems
Eno's “Trope” is an example of a generative system that's also interactive.
Brian Eno & Peter Chilvers: Trope (2009)
It lets the listener complete the music.
The listener completes the music
This starts to blur the boundary between composer and listener.
Blurring boundary between composer and listener
On the one hand, the composer gives up some control by leaving artistic decisions unmade.
Composer gives up control,
leaving artistic decisions open
On the other hand, the composer still has the ultimate control, as a system designer.
They design the generative space the listener explores.
Composer as system designer
These interactive generative systems can be designed to give the user varying degrees of freedom.
Degrees of freedom for the user vary
When there's more freedom, the interaction becomes about co-creation between a musician and a generative system.
More freedom leads to co-creation between musician and generative system
Laurie Spiegel's “Music Mouse” from 1986 is a seminal example of such a system.
Laurie Spiegel:
Music Mouse (1986)
It contains algorithmic and random procedures for generating and timing notes.
Algorithmic and random procedures
But ultimately it lets you, the musician, control the structure of the music.
The result is a collaboration between you and Music Mouse.
But you are in control
Another form of human-machine interaction is teaching machines how to do things.
Teaching a machine to do things
Rather than design a generative system, you can have a computer learn one
by showing it examples of the kind of music you want it to generate.
Not designing a generative system, but having a computer learn one
This is what machine learning is all about.
Machine Learning
Markov chains are an old, but still effective, example of the machine learning approach.
Markov Chains
A Markov chain is a mathematical model of how events follow other events over time. Events such as notes in a melody.
Mathematical models of events over time
You can train a Markov chain by playing it some music. It learns the music you play and builds up a graph model of it.
Train a model by playing music
You can then generate new music by having the Markov chain randomly walk its graph, following the connections it learned.
Then generate from the learned model
It's a limited method because such a simple model can only capture a limited amount of information. In this case it only learns about short-term melodic progression.
But it can still be useful.
Limited but still effective!
Markov chains are an ancestor of contemporary machine learning approaches to music generation, such as deep neural networks.
Contemporary machine learning: Deep neural networks
Deep neural networks are highly complex statistical models and they're usually trained using large amounts of data.
Large amounts of data, complex
But fundamentally they work just like Markov chains: You teach the machine how music works by showing it examples. It builds up a model of the music and then uses the model to generate new music.
But still about teaching the computer by example, like Markov chains
Systems
This is what the generative music landscape looks like to me.
The generative music landscape
It is inhabited by various kinds of systems.
Inhabited by systems
Making generative music is all about the process of designing those systems.
Making generative music is systems design.