Programming Steve Reich’s Piano Phase in SuperCollider
ezralafleur.com
ezralafleur.com
main(){int l=999,i,j;int v[]={133,119,89,80,75,119,113,80,89,119,75,80};for(;;){putchar(250*(j++%v[i%12]&&(j+i)%v[i%12]==0));i+=(j%l)==0;}}
Just compile and run that with "a.out | aplay".
It's been a while since I wrote this, and I remeber cheating a bit somewhere, but not surprisingly I can't figure out what it's doing much less how it's cheating.
Some favorite pieces of mine are:
- New York Counterpoint (esp the version with Evan Ziporyn on overdubbed clarinets)
- Electric Counterpoint (esp the version with Pat Metheny on overdubbed guitars)
- Different Trains
- Variations for Winds, Strings and Keyboards
- Tehillim (probably not good coding music)
The 5 disc Nonesuch retrospective is a really great entry point / survey.EDIT: here is my favorite recording of this masterpiece by ECM: https://www.youtube.com/watch?v=ILpCKQlDmhc
and Come Out
Drumming is fascinating to watch players perform
Come Out has amazing analog audio tape phasing
[1] https://www.youtube.com/watch?v=FcFyl8amoEE
[2]] https://apps.apple.com/us/app/steve-reichs-clapping-music/id...
Mf18M and MfMIVO always put me in a very contemplative mood.
And for anybody reading who might be interested in other pieces of minimalistic music, I might recommend
- Hallelujah Junction - John Adams
- Common Tones in Simple Time - John Adams
- Harmonliehre - John Adams
- Nixon in China - John Adams
- The Dharma at Big Sur - John Adams
- Music for Blocks of Wood - Steve Reich
- I am Sitting in a Room - Alvin Lucier (particularly the extended version)
- Glassworks - Phillip Glass
- Music in Twelve Parts - Phillip Glass
- Metamorphosis - Phillip Glass
- Phillip Glass Buys a Loaf of Bread - David Ives
I asked a musician theorist friend and he said Minimalism, but that doesn't seem quite right.
For a more all-encompassing take on music that evolves over time and where the tie-in to minimalism might be, Generative Music as originally conceived by Brian Eno (https://inmotionmagazine.com/eno1.html) is where it's at