Photo by Maria Baranova

This week we break from esoteric programming for a look at how code and human expression interact in theatre. In Annie Dorsen’s Yesterday Tomorrow, three performers (Hai-Ting Chinn, Jeffrey Gavett, and Natalie Raybould) sing Paul McCartney’s “Yesterday” repeatedly while it transforms in small incremets over an hour – according to a computer-generated score – to eventually arrive at “Tomorrow” from the musical Annie. In the middle of the transformation, the lines of music take on “an eerie liturgical quality, as if each singer were performing an individual Gregorian chant” according to the New York Times. In 2012, Dorsen wrote On Algorithmic Theatre, describing modes of algorithmic practice that challenge basic notions of what theatre is and how it functions.

Pierre Godard wrote the code for Yesterday Tomorrow and provides technical info about the process. He has created or contributed to a number of performative works that make use of code, including the recent dance performance For Claude Shannon.

» How did you first arrive at the concept of Algorithmic Theatre?

Annie: I’d already made Hello Hi There, or rather I was in the late stages of that process, when I invented that term. I’d started getting a sense that I was on the edge of something much larger than any one project, and that could perhaps initiate an entirely new way of making theatre. The beginning of Hello Hi There was actually the debate between Noam Chomsky and Michel Foucault. I thought I’d do something or other with that dialogue, it wasn’t clear what, and I met with a composer friend, Joanna Bailie (who is the musical director of Yesterday Tomorrow), to see if she might write some music for the project, and at some point in our discussion she mentioned Alan Turing and the 1950 essay “Computing Machinery and Intelligence.” Once I read it the whole project took shape in my mind. Not to go too far astray from your question…Turing’s essay argues that the traditional way of thinking about developing AI was no good – that trying to create the property of thought in a machine would never work, mostly because we don’t really understand what “thinking” is – we humans don’t know very much about consciousness, how we do it, how it works, and so on, so how could we possibly create it outside of ourselves? He proposed rather that we work on trying to persuasively convince a human observer that thought is taking place in a machine – in other words, that we try to create the effect of thought rather than thought itself. In his formulation, thought is in the mind of the observer, not an inherent property of a thing/being itself. It’s obviously one of the giant ideas of the 20th century, and when I read his essay, I realized how provocative it was for theatre. It’s inherently theatrical, it’s about the audience, it’s about the impact of an illusion on a human viewer. So that became the basis for Hello Hi There – to explore ideas about human nature, language, consciousness, natural language programming, and the relationship of all those to politics, by stirring together Alan Turing, Noam Chomsky and Michel Foucault in a big pot.

As I got further in that work, I began to get excited by the theatrical potential of algorithms more broadly. I started to see algorithms almost like little dramaturgs and little performers all in one, ordering and sorting information and presenting their results. There’s a kind of old cliché about theatre, originally from Stanislavski, you hear it in theatre classes all the time: “theatre is action.” And it was this quality of algorithms to act autonomously (or semi-autonomously) that really got me thinking about a whole range of projects I could do that would explore algorithms as theatre artists. 

I have always been more interested in theatre machinery, the structure, the whole apparatus, than in acting or in playwriting. I liked very much that by making theatre with computers as my primary collaborators I could dispense with a whole lot of theatre traditions and so-called accepted truths. Since then I’ve done a big research on early algorithmic visual art, and I think what I’m doing with theatre is analogous to the work of that first generation of computer artists, who were really experimenting with how to work with computers as compositional partners. I’m trying to bring algorithms into the theatre on the ground floor level, so to speak, and there are some challenges that arise, really fascinating problems to try to solve.  

» Is it important to the concept of the piece that the work be different each time it’s performed? How have the performers responded to this challenge? 

Annie: Oh yes, definitely. For one, that gives the work it’s live aspect – the computer system is improvising, each time. It’s not functioning as a playback machine, but rather is doing some creative work in real time. The focus is on the algorithm’s performance as well as that of the singers.

But maybe more importantly this is connected to the notion of multiples, there is no canonical ‘fixed’ version of the music (or in the case of Hello Hi There of the dialogue, or in A Piece of Work of the adaptation of the Shakespeare text). The music any given audience hears is just one possible output. The code is the fixed element and each night’s expression of that code is contingent, one of many.

In Yesterday Tomorrow the singers have no idea what music will be coming at them in the moment, and I think it’s big big fun for them. It’s not only an interesting challenge for musicians as skilled as they are – but it also gives them this kind of game to play, there’s an urgency and spontaneity to the performance that’s important to the thematics of the piece. They are forced to stay in the moment and to let the computer-generated music pass through them – so they become in a way part of the interface, part of the construction that allows the computer to present its work.

» As the Yesterday song takes on aspects of the Tomorrow song, the first thing that’s noticeable are small rhythm changes. Do rhythm, melody, and syllables change independently of each other in the algorithm? Were there other dimensions of the music that change from the first song to the second?  

Annie: Yes, we alter everything separately – each aspect is changing according to independent equations. These kinds of decisions were a big part of the rehearsal process for the piece, setting some parameters for the overall shape of the music. The other external logic we imposed was the tempo – that was in a way an obvious thing to alter through the course of the piece, to hear the results of the algorithm as completely as possible. During the music’s most chaotic scrambled phase we do a shift to very very fast (300bpm) down to very very slow (20bpm) – so that we experience it in radically different ways. And then from a theatre perspective of course, it also allows a shift in perception, which makes some relationship to the notions of past, present, and future we’re playing with.

from “Hello Hi There,“ photo by w.silveri/steirischer herbst

» Could you tell us a bit about what type of algorithm was used, and how it was developed? Did you know the work was going to be about an hour when you started? I’m curious about when these parameters became clear and how they were refined as the software was developed.

Annie: I went through a couple of different versions of the code. To begin with, I wanted the primary system to be a genetic algorithm, so the computer would have to arrive at “Tomorrow” through a learning process. I was attracted to the evolutionary model for the match it made with the metaphoric layer, but it quickly became clear that that was not a great way to go. I was working with a different programmer at that time, and he wrote a very clever program, but it just never got anywhere near “Tomorrow.” Not even close. And I knew I wanted that moment of arrival – I didn’t want to set “Tomorrow” as a goal but then just see what we got at some arbitrary end point – I really wanted to have the complete path. So we ended up using a kind of migration algorithm that would shift the pitches and the durations of each note from “Tomorrow” to “Yesterday” in a series of steps. So the number of steps is decided by us – we started with 40 I think, our first tests, but we felt it was too long, we were in the scramble for too long to stay interesting. So we kept shortening it until it felt right, now we’re at 30 steps. Some of that also had to do with the physical limitations of the singers – I wasn’t interested in totally exhausting them, or in them killing their voices, and it’s not such an easy score to sing – so we kept it reasonable, both for their sakes and for the audience’s attention.

Most of our rehearsal work was spent finessing the algorithm – the equations that govern the rates of change, the tempo shifts, and of course setting up and debugging the interface, how the score will appear visually so it makes sense in terms of musical notation and the singers can read it. 

The core team in all this was Pierre Godard (programmer) and Joanna Bailie (composer) and me – we each have a different area of expertise, you could say, so there was a kind of productive push pull around the integrity of the algorithm, the integrity of the music, and the integrity of the event or experience as theatre.

Will let Pierre answer in more detail…

Pierre:  So the migration in Yesterday Tomorrow is relying on iteratively mixing gaussian distributions centered around “paired” notes from Yesterday and Tomorrow. The pairing is randomized for each performance (if i remember correctly, Tomorrow had more notes and so it was necessary to drop some of them randomly to have a one-to-one association with Yesterday’s notes, and then eventually re-inject them later in the process). Once every note from Yesterday is associated with a note from Tomorrow (the “target” note), we decide for each note with a certain probability if its pitch should be changed or not. This probability is very low at the beginning of the migration and increases (according to a sigmoid “S-shaped” function) to reach 1 at the end of the migration. If we decided (or rather the pseudo-random number generator did) to change the pitch, we make the mixture decision: is the new pitch going to be drawn according to a gaussian distribution centered on Yesterday’s note’s pitch or Tomorrow’s? At the beginning of the migration, we’re more likely to be centered on Yesterday’s pitch and as we move forward, more likely to be centered on Tomorrow’s pitch. Then we draw a new pitch (which also involves choosing a standard deviation, that also evolves throughout the migration and is at its highest in the middle of the piece. Note here that Joanna proposed to use a chosen “musical” distance rather than just a pitch difference, so a perfect fifth is for example a smaller jump than a minor second). We repeat this for duration and syllables, which gives us a modified version of Yesterday, and we iterate the whole process from this current version of the song. I should add that when we have reached either the target pitch (or duration or syllable) of one of Tomorrow’s notes, the probability of changing it equals 1 minus the “sigmoid” probability i mentioned above. That, together with the evolving standard deviations we chose, ensures that the whole thing converges to Tomorrow.  

This program is rather ad-hoc, it does what it’s supposed to do and doesn’t have too much of a gravity center on its own conceptually. However, as Annie was saying, a lot of work went into finessing it and fine-tuning its parameters. Each step of it is very simple, but its iterative nature makes some complexity arise, and intricate effects start to manifest. You inherit anything that happens throughout the process. Faster change rates at some point in the migration can lead to slower ones later, or more noise lead to a more abrupt “resolution” into Tomorrow.

» What was the code written in?    

Pierre: The code producing the score is written in Python, but all the interface for the singers is built with Max, and a Max library called ”bach“ developed by composers Andrea Agostini and Daniele Ghisi.

» Annie,  in your "On Algorithmic Theatre,” you talk about the algorithm as both performer and collaborator. What was it like adding human performers to the mix, mediating the algorithmic output? I’m curious if the mix of comfort and rigor on the set references this collaboration (the couches, those boot/sock things, etc).

Annie: The design of the piece has more to do with what I refer to as the theatre-side of things, by which I really mean the metaphoric aspect. I was thinking about my own experience of change over time – that days, months, years pass but there is a certain continuity, especially of the most banal aspects of living: sitting on a couch, brushing your teeth, making tea, that sort of thing. At one point I was thinking about each move on a sofa kind of standing in for a different moment, like if you would take a photo once a day for a year, you would have all these images of different positions on the same piece of furniture. The weather outside would go from winter to spring to summer to fall, wars might start or end, love comes and goes, and all that - but inside at home the person is just one day sitting with legs crossed and the next day has an arm over the back of the couch.

Once we put the whole thing together, I found it was a good opportunity to make some associations with the ubiquity of algorithms in our lives, the extent to which we are already 'taking direction’ from them, how much our daily lives are entwined with and shaped by these little pieces of code. The sofas, the laptop, the TV, the iphone – that staging became a way to bring out what was already inherent in the piece: three hopeful humans with their eyes (of necessity) glued to a screen, being kind of bossed around by this computational system. I’ve been putting it like this: you don’t choose what you get from the world, but you do choose what you do with it, sometimes only in limited ways. But still and nonetheless, those choices matter.

Photo by Maria Baranova

» Your algorithmic theater work and pieces such as “Democracy in America” take a theater-as-experiment approach that feels informed by contemporary art as much as theater. Could you talk about influences from outside theater on your work?

Yes, contemporary art, but equally contemporary dance. I started to get a bit of a dance education in the mid-2000s, at a place called Performing Arts Forum in France (it’s an amazing place, I won’t go into it but interested people can check out In particular, two aspects to what people were doing there drew my attention. The first was the overall project to posit thinking as a physical action, and physical action as a form of thinking. When I began to explore what that notion could mean to me in my theatre practice, I imagined a form of theatre in which an idea, rather than a represented character, would take the place of the protagonist. In other words, the audience would be tracking the development and changes and so-called 'arc’ of an idea rather than that of an actor playing a role. The second aspect was a methodology; most of the choreographers I met at or via PAF were making dances through the development of a score, or a precise procedure. That wasn’t new to dance in the 2000s, of course, but it was new to me, coming from the New York theatre scene. And that way of thinking about process opened a big new field of experimentation.

The influence of visual art came a little later (except insofar as the dance works that influenced me were themselves influenced by conceptual art, minimalism and other postmodern forms of the 60s and 70s.) I’d started looking into the work of early computer artists, Manfred Mohr and Roman Verostko and others. I mentioned above that as I was in such an early stage of development with algorithmic theatre, I felt I could learn a lot from the corresponding early stage of computer art. I read some texts by Manfred Mohr from the late 60s that struck me as really helpful, some artist’s statements he’d written that laid out the basic principles he was working from. Those writings helped clarify some questions I’d had already, and alerted me to some fundamental differences in medium between visual art and theatre that provoked some good thinking. At times during the creation of A Piece of Work, it seemed like anytime I was stuck I could go back to one of Mohr’s texts and find he’d dealt with some analogous problem in his own work. A lot of the issues have to do with how to define the steps involved – so you can teach a computer how to do it. That means being able to make the process rational and concrete, which for all kinds of reasons is a different ballgame in theatre than in two-dimensional graphic art works. I have decided to pursue a back and forth between me and the algorithm, a mix of the rational and the irrational, the mathematical and the aesthetic. My big interest in this work, after all, is to understand something about how humans and the tools we create mutually transform each other, how we create the tools and the tools create us back.