orchestration algorithm in
“days with glass edges”


days with glass edges (chasing the butterflies in my wallpaper), for fifteen-piece ensemble and 4-channel electronics, was premiered at the NOW! Festival by the Folkwang Modern ensemble conducted by Eva Fodor in the Essen Philharmonic on October 26th 2019. A documentation recording is given above and here is a short pre-performance discussion with my fantastic colleague Günter Steinke, in German:


The piece uses a new orchestration algorithm developed specially for the piece (but of course applicable elsewhere) using my algorithmic composition software slippery chicken. Before the orchestration algorithm did its stuff, the piece was conceived, generated, and elaborated in software for four generic chord-playing instruments. The harmony investigated here was obtained from frequency analysis of the steady-state spectra of the four bronze bells used in various ways by the woodwind players throughout the piece. (I sourced these bells myself in an enormous shop in Bangkok’s China Town back in 2012.)

What I love about working with these unique bell spectra—besides the process of filtering and the obvious first step of manipulating them so that they are playable on the chosen instruments—is walking the tightrope between unconstrained microtonal dissonance and syrupy triad or octave-dominated tonal reminiscences. It’s all about the mapping and being open to the Aha! moments which arrive whilst evaluating material you have explicitly derived but which you’d perhaps never intuitively reach for.

Once the whole form of the piece was propagated in software and my ears were happy with the results, the orchestration algorithm steps in and seeks particular groups of instruments to map the chords onto—again, it’s all in the mapping. The resulting software-generated score became a framework to further stimulate more direct responses and editorial interventions to achieve the final score via standard composerly means, i.e., with pencil and paper, where a lot of the work still remains in almost all my algorithmic works.

By the way, the title is a composite drawn from two Charles Bukowski poems found in the collection Burning in Water, Drowning in Flame (Part II, 1963-65). Here are two short extracts, one from each:

something for the touts, the nuns, the grocery clerks and you…
we have everything and we have nothing —
days with glass edges and the impossible stink
of river moss

don’t come round but if you do
maybe I have broken my jaw
and am looking for wire
or I am chasing the butterflies in
my wallpaper
I mean if I don’t answer
I don’t answer, and the reason is
that I am not yet ready to kill you
or love you, or even accept you

Algorithm Details

The orchestrate method arranges the chords and single pitches in an existing slippery-chicken object, mapping the existing players’ pitch events onto a group of new players: a combo. These combos should range from two players to however many we’ll need to play the existing chords, and takes into account, of course, that some instruments can play chords themselves whilst others can’t.

The procedure assumes that the existing music is more horizontal/harmonic than linear/melodic, particularly because the mapping process treats each chord separately and potentially maps each of them onto different groups of players. (The choice of whether to change ensemble is decided by an object which handles activity levels but also by the number of notes in any given chord and whether it’s possible to play any subsequent chord on the same instruments.) The method also assumes that each virtual player in the existing slippery-chicken object has a sequence of one or more chords which can be separated into phrases surrounded by rests.

Whether a chord is playable by a given combo is determined by the range of
the chord and the instruments of any given combo, along with those
instruments’ abilities to play chords and/or microtones (if the chord is
microtonal). When trying to determine whether a given combo can play a
chord, the possible instrument orderings are permutated to see if the pitches
are in range. If desired, natural and artificial harmonics are also tried for notes
normally considered too high for any given string instrument. If the perfect combo can’t be found for any given chord, the algorithm keeps track of the best match and, if the user allows, uses that instead of backing out completely.

Here’s a page of unedited MusicXML code generated by slippery chicken and imported into Dorico. The four ‘generic keyboard’ voices are at the top, with the results of orchestrating them onto the ensemble below (the ensemble was a little different at that point: no flute but horn). Clicking the image will allow you to download the complete PDF which was used to edit into the final score for performance:



Featured image: Rebecca ter Braak

Share Button

← Previous Post

Next Post →


  1. Its a very “zen” piece. I feel like I am in nature just listening. Awesome as always Michael.Reference

  2. Thanks Rafael!

Leave a Reply

Your email address will not be published. Required fields are marked *