(max) phase music using counter and modulo (%)

Using the counter object you can create a version of Steve Reich’s phase music. Reich’s phase pieces work by having two instruments play the same pattern. After a number of repetitions, one of the performers shifts their pattern relative to the other performer, creating a “phase” difference, or phasing. With each change in note offset you get a different interval combination pattern.

Implementing a phase piece in Max is fairly easy given the objects we already know. The only new object we need is the modulo object (%).

modulo (%)

Modulo is a math operation that takes a number, divides it by another number, and then outputs the remainder. The modulo sign is the %, and that is what is used in Max. Modulo is the same process used in counting pitch classes, which is a modulo 12 system. It you start with pitch class 2 (D) and add an octave (12), you end up with 14. In pitch class number terms it is still the number 2. 14/12 = 1, remainder 2.

phase music

(download ReichPhase.maxpat)

The basic elements of phase music is a pattern stored in itable, a counter,  two outputs from the counter, and an offset/modulo combination of objects. The itable has the first melodic pattern from Steve Reich’s Piano Phase stored as intervals.

One output from the counter goes directly to the itable. Consider this direct connection part 1. The second output from the counter goes to an addition object, which provides the offset for the second part. The output of the offset goes to the modulo object, so that the index number will wrap around and always stay within the index range of the table. This second output, offset, and modulo is part 2.

Change the offset amount in number of notes for part 2, and you have the same part played in a phase delayed relationship with itself.


Leave a Reply