When Harry Met Iannis - 2014

Short Form


An exploration of music composed and synthesized by open source software. This piece has been through three incarnations - 2001 (Perl and Sfront), 2004 (Lisp and MIDI) and 2009 - back to Perl and Sfront (https://soundcloud.com/znmeb/sets/when-harry-met-iannis-2009).

It's time to revisit 'When Harry Met Iannis' - better algorithms, more modern languages, and more complex instruments.


Iannis Xenakis passed away on February 4, 2001. When he arrived in Heaven, he sought out his mentor, Olivier Messiaen. Messiaen said, “Iannis, there’s someone here I want you to meet.” The two walked over to a small sidewalk cafe, and there sat Harry Partch.

And so from this fanciful meeting in Heaven, “When Harry Met Iannis” was born. From Partch, the piece inherits the 43-tone just scale, tuned to G = 392 Hz. Also from Partch, the piece inherits the need to build instruments to play in the Partch scale. The harmonies in “When Harry Met Iannis” are derived from the Tonality Diamond.

Now we have the harmonic structure – the Tonality Diamond. This is where Xenakis comes in. Xenakis was a pioneer in stochastic music – music composed algorithmically by using chance elements. The Perl script that composed “When Harry Met Iannis” was given an initial state – a chord on the Tonality Diamond – and a duration for the piece. All the other elements of the score are derived stochastically by a random walk.

The duration for each note is chosen at random. Whether the note is sounded or silent is chosen at random. And the progression of chords around the Tonality Diamond is chosen at random. At each transition, one of four chord transformations is chosen at random:

  • The tonality can change from an Otonality to the corresponding Utonality or vice versa.
  • The chord structure can stay the same but be shifted up or down an octave.
  • A new Numerary Nexus can be chosen for the chord, with the rest of the structure remaining the same.
  • An Odentity or Udentity can be added or deleted, with the rest of the structure remaining the same.

Because some of these transitions can take the piece out of a practical performance range, if the piece goes out of range, the operation is reversed. For example, if the chosen transformation is to go up an octave and the resulting chord would be pitched too high, the next chord is instead chosen by going down one octave. If removing an Odentity or Udentity would leave an empty chord, one is added instead.

Once the score has been computed, the piece is rendered. For the 2001 and 2009 versions of the piece, I used a little-known digital synthesizer called sfront. Sfront is similar in principle to the much-better-known CSound digital synthesizer, but sfront code is vastly easier to read than CSound code. The synthesis consists of sung vowels with reverberation, and the position of the chord from left to right between the two stereo channels is chosen at random.


algorithmic composition, digital sound synthesis, Harry Partch, Iannis Xenakis, microtonality

Speaking experience

I've been speaking since I was a child. ;-) But seriously, I used to give sales presentations and demos for high-performance computing, I was on Jeopardy! and I was in 25 plays when I was a graduate student - in applied mathematics.