Piano Phase (1967) an identical twelve note phrase played by two pianists who are playing at slightly different tempos. As the piece progresses the two phrases drift further and further out of phase with each other.
The 12 note phrase is:
E4 F#4 B4 C#5 D5 F#4 E4 C#5 B4 F#4 D5 C#5
or in MIDI notes:
64 66 71 73 74 66 64 73 71 66 74 73
This is how the piano phase patch looks in Max:
This is how the patch works in Max:
- The 12 note phrase is stored in a table object an labelled pianoPhrase.
- Two metronomes with slightly different tempos send 'bang' pulses to counters.
- These counters are connected to the table pianoPhrase object, this object reads through our stored piano phrase. Note the difference between this and our PureData implementation.
- This is then sent out to a makenote and noteout object to create and output MIDI notes.
The good thing about implementing algorithmic compositions in a computer is that once you have created the process, you can tweak it and create brand new versions. Try the same process with a different melody by altering the notes stored in our pianoPhrase message. You could also try adding a 3rd part with a new tempo, by duplicating and modifying the relevant objects.
We'll implement some more of Steve Reich's compositions in future posts in PureData, Max, Lisp, OpenMusic and more..