Piano Phase - After Steve Reich
Steve Reich's "Piano Phase" piece requires two parts to run at different tempi. This is achieved in this example by reducing the note lengths of one part slightly to simulate the difference in tempo. It can also be done by setting different parts or phrases to different speeds using the setTempo() method. The compositional principle is that as the 3 beat phrase is repeated over and over the slight tempo difference results in a 'phasing' offset between the parts. This continues until they meet up again some time later one beat apart. The last few bars of this example have the parts in sync again but at a one beat displacement. In Reich's score this process continues through all beats of the phrase.
To hear the result play the MIDI file.
The first technique we will investigate is writing
for a single part containing multiple lines/voices. Take a good look at
it as it contains many things that you will not have seen before.
The fisrt thing is to bring in the jMusic classes
required for this program:
Create the jMusic data objects to hold the score. One part for each of the two pianos, and the first phrase:
There is only one phrase in the composition and the treatment of it is what is of interest. This is the basis of 'minimalism' as a style - minimal amounts of material treated in interesting ways, often with lots of repetition.
After the phrase is created it is repeated and added to the part, and score:
The second phrase, like all others, is a copy of the first. The 'trick' is that it plays slightly faster than the original phrase.
This is done by shortening the length of each of the notes slightly:
Other phrases are created, transposed, and repeated as required to meet the score. This example simply mimics the first minute of Steve reich's piece:
The phrases are added to the parts, then parts to the score. Finally, the score is rendered to a standard MIDI file.
The Play.midi() method plays the score back using Java's inbuilt software synthesizer.
|© 2000 Andrew R