Thursday, 15 April 2010

Piano Phase - Max

In a previous post we implemented Steve Reich's Piano Phase in an algorithmic composition patch in PureData. Today we have a similar implementation in Max.

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.
I recommend creating the patch yourself by copying the layout of the screenshot, however you can also download it here.

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..

No comments:

Post a comment