Luke Noonan

Infinite C

“In C” by Terry Riley is a special piece to me. It was one of the most important works in forming my creative practice.

In the piece Riley specifies 53 short phrases. Performers in the ensemble are to start at the the first phrase and start repeating it at tempo. Individually they each decide when it is time to continue on to the next phrase in the set. When they decide they move on to the second phrase in the set and start repeating that one. As the ensemble moves through this progression of phrases the overall sound shifts through a number of different textures and polyrhythms. When a performer gets to the final phrase they hold there until all of the performers reach the end, then the ensemble does a unified crescendo and decrescendo and then ends.

Why is this piece so compelling

In short, I find the way it uses algorithms and chance, to be amazing. The use of procedural algorithms in music composition is a common thing. Just looking at the musical staff, quantized discrete notes, Who could blame a composer for getting a little math-y? Some schools of composition, like Schoenberg’s twelve-tone technique and the rest of the Serialists used algorithmic operations fairly explicitly. It is easy to see something a like a symphony for the giant math puzzle it is. (I bet you could write an entire book on set theory using nothing but key signatures and theme & variation as examples.)

The use of chance operations, while less common, can be found through the history of western music. The “Musikalisches Würfelspiel” (German for “Musical Dice Game”) asked players to roll dice to arrange various sections of a composition. The most famous of these was supposedly written by Mozart. More recently we can see the work of John Cage and many of the computer musicians that followed as pushing the limits of chance in sonic compositions.

In C is built on a particularly elegant set of algorithms. One of the core challenges in generative and algorithmic art is constructing your processes so that they take you in interesting places but don’t spin out of control. It does this in a number of ways but I think the most interesting is they way it engages the performer’s judgement and intuition in the algorithm. Players must decide when to advance and when to hold on a phrase.

“Patterns are to be played consecutively with each performer having the freedom to determine how many times he or she will repeat each pattern before moving on to the next.”

They are encouraged to listen to the ensemble and modulate what they are playing based on what they are hearing.

“it is very important that performers listen very carefully to one another and this means occasionally to drop out and listen. […] The group should aim to merge into a unison at least once or twice during the performance. At the same time, if the players seem to be consistently too much in the same alignment of a pattern, they should try shifting their alignment by an eighth note or quarter note with what’s going on in the rest of the ensemble.”

Riley uses the player’s intuition as a self correcting pressure. As a creator who designs algorithmic art that is mostly executed by machines, the ambiguity in this score seems truly brilliant.

Infinite-C

Infinite-C is my loving interpretation of Riley’s “In C” In it I created an ensemble of 12 AI to play In C. While I had to take a couple of liberties and diverged from the initial instructions a bit I would say it Infinte C is a pretty straightforward interpretation of the original.

Process

First I tracked down a copy of the original score, which was pretty easy to do online. Then I transcribed it into Muse Score. Then I had to export each phrase as a midi clip being careful to maintain any rests in the phrase. From there I pulled them into Ableton Live and rendered out each phrase in each of the 4 voices of a string quartet.

With the stack of 200+ phrase clips I moved over to Unity and started assembling the scene. I built each AI performer to pick a duration to loop the current phrase for. after each repetition of the phrase they check to see if it is time for them to switch to the next phrase. I set the duration of to be within the 45-60 seconds that Riley suggested in the note for the original score.

When it came to the appearance and number of performers, I tried a number of different configurations. Initially I had four performers, to test the four different voices. The original performer notes called for 30-40 performers. When I tried that many it really just seemed to muddy up the sound. This may have to do with Unity’s audio implementation or it may have been how I rendered out the phrases. In the end I settled on 12 as enough to get the original compositions textural variations without getting muddy. Each of the performers appear as a pulsing column of colored light. This not only gave me a chance to use a recent new Alloy feature, the “tube lights”, but it also seemed appropriately minimal. I actually turned off rendering on the ground plane and just left two large metal spheres to in the middle of the ensemble to reflect the shifting lightscape generated by the performers.

I was pretty pleased with most of the project but I was still left with what sort of interaction(s) I wanted between the player and the performers. I played with a couple of ideas but in the end decided to let the player wander around the space taking the role of a conductor of sorts. The player can walk up to each performer and direct them to play louder or softer. I also wanted a more subtle interplay between the player and the performers so I slowed down the timers, though not the playback, of each of the performers based on distance from the player. This means that if a player hangs near one part of the ensemble they will hold on each section longer. I felt like this relationship seemed a reasonable substitute for the effect each performer had on each other.

After some playtesting, I decided to give the performers some color. I wanted an appropriately minimal way to give the user a little more feedback as to where in the performance they were temporally. I mapped the saturation of the color of the performers light to the volume they are playing. I mapped the hue to the position in the performance. This resulted in a wonderfully slow color shift which gave each part of the piece a distinctive visual feel to go with its sonic feel.

Reflections

This project was, first and foremost an experiment, a small one at that. I have been ranting about the state of game audio for the past couple of years, to lots of people in my circle. It’s not that it is bad, I am often somewhat intimidated by the amazing virtuosity I see in the game audio community. Rather, it is kinda boring. It just feel like game audio has ignored all the most interesting parts of the past 50 years of computer music. Videogames are not linear albums, yet we keep treating them like one. They are necessarily running on powerful computers that can do all kinds of cool stuff, but it feels like the most interesting thing you ever hear is dynamic layering, (“when you get to the boss fight … we turn on the drum track”) It seems like the game audio community (with some notable exceptions) hasn’t even done the “easy obvious stuff” yet.

So all this being said, how do I feel about the project? Overall I would call it a success. I think that the aesthetic results of the app are pretty compelling. Of course it sounds good, Riley knew what he was doing.

So if anything, this experiment showed me the value in getting off my ass and doing the “easy obvious stuff” myself. Infinite-C was not a big risk. I took a 50 year old score, of a well regarded piece of minimalist music, and turned it into a minimalist virtual space. Infinite-C was only a tiny little step but importantly, it staked out a staked out a little more of the territory I want to explore. If nothing else, I like how it sounds.