CONDUCTOR. Keep time at 140 bpm exactly. Visually inform the ensemble of the current Tier they are to perform within. Progress from Tier 1 to Tier 7 over the space of 15-20 minutes. Allow Tier 6 the most time.

PERFORMER. Choose a Cell within the Current Tier as decided by the conductor. Maybe, for a short time, do not progress to the conductor's current Tier. Repeat the cell several times, all in the space of one large breath. Consider this a single "cell performance." Begin each cell performance quietly and crescendo until halfway through. Then diminuendo until the cell performance is finished. Follow the conductor's tempo exactly. Pause for a time before choosing another cell to perform. This pause between cell performances should decrease as the piece progresses to Tier 6 (the climax)—meaning, your cell performances should increase in frequency and intensity as the piece progresses. Treat the timing of your cell performances during Tier 7 (the conclusion) as if they were Tier 1.


  • 1.James Tenney – Prompts, Composition of a Musical Process
  • 2.John Cage – Chance, Spiritual Composition, I Ching, Loops
  • 3.Le Monte Young– Spiritual Composition, Summation Tones (didn't quite achieve Difference Tones)
  • 4.Steve Reich – Phasing, Ostinato, Loops
  • 5.Louis Andriessen – Harmonic Territory and Ostinato
  • 6.Christian Asplund – Loops, Loops Species
  • 7.Anthony Braxton – Migrating Sound Territories
  • 8.Iannis Xenakis – Sound Mass


As If In One Breath takes on several identities depending on the ensemble performing it, and depending on whether it is a Generated Performance or a Live Performance. There are complications unique to both the live and the generated scenarios.

A live performance benefits by having a greater presence of choice and chance. However, this is dependent on the ensemble's attention to the arc of the piece and their ability to maintain individual responsibility. As simple as the prompt is, performers tend to synchronize. This is inevitable to occur a few times, but if the result is nothing but waves of sound mass then silence, the performance has fallen apart and lost all intended identity.

Another major issue of live performance is keeping time. My experience has been than even with exceptional musicians, maintaining a consistent 140 bpm without a defined down beat can be confusing and takes immense focus. Maintaining this for 15 to 20 minutes proves even more difficult. Therefore, practicing the piece does not necessarily require improving a performer's ability to read the music or perform with a correct texture, but instead requires improving the performer's ability to stay in time with the conductor, and to maintain a focus on the frequency of their cell performances.

A generated performance has many complex issues. A machine does only exactly what you tell it to do, and cannot understand a prompt to "increase intensity" based on intuition. The machine needs to be taught these things, and even then, the results are often too "perfect" in one way or another. For the machine to make performance choices, it is necessary to make it aware of the relationship between the progress of the piece and frequency of cell performance.

There are some things that the machine can't, or rather, shouldn't do in reconstructing the basic prompt into a command-centric process. For the generated version of this piece, I decided the machine should not attempt to sing or perform an instrument. There are tools and processes available to synthesize instruments and the voice, but they are not satisfactory in creating a human experience. The program instead uses pre-recorded audio libraries of my voice and a few recorded instruments. The number of recordings within each library determines the fluidity of each performance. Though, it does not take many distinct samples to recreate the potential fluidity experienced during any ensemble's live performance.

Issues of Shape and Density:

As discussed previously, the shape and density of a live performance of As If In One Breath depends greatly on the ensemble's ability to focus on their individual cell performance frequency. This is something a human can learn in a matter of minutes, and master after a single practice session. Teaching the machine to maintain a growing shape with increasing density on a specific timeline is the core of the generative algorithm. Achieving interesting shapes is simple, but achieving the shapes and densities outlined in the prompt is not. All functions within the program are centered around informing the machine of when to perform.

To deconstruct the musical process as outlined in the work's prompt, it is necessary to mentally go through the process of how the individual should perform on a moment to moment basis. The program simulates 24 instances of a performer, allowing for each individual performer to manage their own choices. This piece does not call for the conductor to cue every performer for every cell performance. Rather, the piece is centered on performers making individual choices with a common goal.

Each digital performer needs to know a few things:

  • 1.When to start playing the piece
  • 2.When to stop playing the piece
  • 3.When and how often to play each cell (or audio clip)
  • 4.Which cell to play
  • 5.When a cell was last played
  • 6.Tempo
  • 7.Current Tier

To unify the performers, a conductor is simulated. This conductor sends "pulse" messages at 140 bmp. Each performer receives the message and can make a choice—not unlike a live conductor to a live ensemble. The performer now can make a choice of whether to perform a cell. This choice should not just happen at random, as if flipping a coin. A live performer chooses whether to perform based on when they last played and what the current Tier is. To solve the issue of making each machine performer aware of these things, the concept of "resting" simulated. This takes the form the variable "pauseCount."


Giving each performer a pauseCount allows for them to compare how many pulse messages they have received since they last played a cell. For example, if the pauseCount is 100, then the performer will play a cell, then wait for 100 pulses before playing the next cell. By shifting this variable as the piece progress form Tier to Tier, the frequency of each cell performance increases—as does the piece's density.

The only issue with having a single pauseCount across every performer is that they will all play their next cell at the same time. To solve this issue, a system of machine choice comes into play. After each cell performance, an individual performer chooses their pauseCount within a threshold. Initially, all performers were given a pauseCount threshold of 20-40 pulses. All performers were playing an audio clip every 12 seconds on average. This means that a 20-40 pauseCount threshold creates one large sound mass with relatively consistent decibel levels.

This result is not terrible. In fact, I enjoy it as a means of meditation. I do not see this single constant sound mass as undesirable and I had even considered this version to be definitive for a time. To maintain the original goal of the piece, however, there needs to be a function that allows for shifting density. To achieve this, it is necessary to establish pauseCount thresholds that shift as the piece progresses. These thresholds are the key to the shape and density of the piece. Minor changes in them had a greater impact than expected. Like walking in a single file line, individuals will naturally synchronize their steps. This behavior occurs between performers in a live setting of this piece. In the machine performance, this synchronization of digital performers still occurs with most threshold arrangements, as if naturally unable to avoid the phenomenon. Therefore, the configuration of the pauseCount thresholds must yield the perfect amount of density and flux without too much performer synchronization or silence.

One solution to Density involved adding performers as the piece gradually went on. This went against the spirit of what I was hoping to accomplish, and theoretically would yield a synthetic result.

The Problem with Beginning:

Initially, all machine performers began at the same time. This causes waves of audio clips rather than a consistently smooth ebb and flow—interesting to listen to but not the intended result. Correct timing of the first cell performance of each performer is essential for achieving the correct shape of the piece.

To address the issue, an initial pauseCount for every performer is used. Instead of hard-coding the initial pause counts, they are generated evenly by a looping function. This function loops as many times as there are performers. This allows freedom to change the number of performers in the piece, and the algorithm will scale accordingly. Every loop of the function adds an integer that is evenly interpolated from 0 to a maximum count. Ex: If I wanted 10 amounts from 0 to 20, the function would yield 0, 2, 4, 6, 8…up to 18. The equation is as follows:

Maximum Count * (Loop Number / Amount of Performers).

Maximum count is predetermined and is currently at 100 pulses. Loop Number is the iteration of the loop. Once the performer receives their initial pauseCount, they can choose to alter it slightly, furthering the sense of choice and randomness.

Another important aspect of As If in One Breath is the blurring of one Tier into the next. This is created by the ability of each live performer to remain in the previous Tier for a "short time." To simulate this in the machine, each performer has the choice to progress to the conductor's Tier before they play a cell. A random number between 0 and 2 is generated. If 0 is generated, then the performer will progress. Thus, every time a cell is performed, there is a 1 in 3 chance of progressing to the current Tier.


Understanding my motivation to create a generative version of this piece may be found in considering why the piece should be "generated" and not "concrète". Live machine performance should be associated with the task of deconstructing a human process, identifying both determined and undecided variables, then reconstructing it in the form of basic commands. The result is a fluid performance allowing for the shifting of variables. This cannot occur inside a concrète work, as implied by the medium's name.

There is something sublime and cathartic within the process of teaching an inanimate object to choose and behave as we might. It requires holding a mirror to human nature and tendency. It reveals the most personal of human quirks and shortcomings. Accordingly, the experience of a generated work is less of a reporting of what was once done, and more of a meditation on human expression.

Leave a comment

Log in with to leave a comment.