Tuesday, 23 March 2010

Piano Phase | PureData

Steve Reich was an algorithmic composer. His composition Piano Phase (1967) involves two pianists playing an identical twelve note phrase, however one is played at a slightly faster tempo than the other.

Gradually as the piece progresses the two parts drift further out of phase with each and listening, you can hear new melodic fragments appear created by the combination of the two parts.

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

If you want to implement the patch in Max there's another algorithmic composition post here.
Here is a PureData algorithmic composition patch that realises Piano Phase. Here's how the patch works:
  • 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 a tabread object, this object reads through our stored piano phrase
  • This is then sent out to a makenote and noteout object to create and output MIDI notes.
Here's a screenshot of the finished patch, you can view a larger version by clicking on the image.


As ever I recommend creating the patch yourself by copying the layout of the screenshot, however you can also download the patch here.

The good thing about creating a computer version of Steve Reich's algorithm is that it's easy to manipulate. If you want to try the same process with a different melody then alter the notes stored in our pianoPhrase message. If you want to try adding a 3rd part with a new tempo then it is easy to select and duplicate the necessary objects.

We'll implement some more of Steve Reich's compositions in future posts in PureData, Max, Lisp, OpenMusic and more..

No comments:

Post a comment