Back in December 2013 I had the joy of working on the Come Heavy Sleep production by Kindle Theatre. The story is loosely based around Othello (I started in a production of this back in 2009):
Come Heavy Sleep is a passion-fuelled murder story that takes inspiration from Shakespeare’s Othello. This performance tests ideas that will eventually develop into a large-scale ensemble spectacle, fronted by the band The Come Heavies with bold choreography, chopped-up narrative and stunning visuals. The music moves from 16th Century Lute to Noise Pop into Industrial Grindcore and 1950′s-style romantic ballad.
The two performances at The REP Studio acted as a kind of development snapshot for the piece (the previous snapshot took place in 2012) which I believe will grow larger and go on tour in the future (I could be making this up).
I was approached by the group to provide visual projections that would accentuate the performance. They explained to me that they wanted to recreate the night club atmosphere, something which colourful visuals could facilitate. One source of inspiration for them was the opening title sequence to Enter The Void:
Recreating this was the easy part, as rapid colour font and font changes are very easy. In fact, many of the visuals were fairly easy to create, the challenge came from making them reproducable and synchronised to the performance. Unlike my approach to doing visuals for live music, I had much less space to improvise. Of course I was able to use my creative input when devising the visuals, but during the performance itself I had to be sure that the visuals were executed precisely.
For this challenge (and pretty much every other live visuals challenge) I used Pure Data. My approach to constructing the patches was to fully construct each scene in the patch and then use a series of triggers, in this case manual key presses, to advance to the next section.
I quickly learnt that having a “back” button is just as important as things sometimes do go wrong!
The first challenge was fading out a scene. When using video files this is easily accomplished by setting the values of [colorRGB] to 0 or to the colour of the background. However, dealing with 3D objects is slightly different. I could change the [colourRGB] to match the background, but if a [world_light] is present and lighting is turned on, the shading of the objects could potentially still be seen.
The solution here was to add an [alpha] channel to the objects and instead gradually bring that down to 0.
For reasonson mainly concerning render chains, particly velocities and buffers, I decided against building one monolithic patch to use throughout the performance. The only other option was to do live patch switching! *gulp*
To switch patches seemlessly I first set my desktop background to black. It was the blackout colour so, y’know, it made sense. When the scene ended and all the objects had faded to black I very quickly quit Pure Data (in turn reveleaing my black desktop), started the new patch and created the black, borderless [gemwin].
What the audience sees when I switch patches. NINJA!
This was a potentially very risky thing to do. Each time I opened the program the window could have either extended to the other screen or opened on the other screen. Luckily this didn’t happen, but I would be interested to know of a method of ensuring it never will.
The final challenge I faced concerned switching buffers in Pure Data. The Kindle Theatre team required me to recreate the animation you see when you complete the game of good ol’ Solitaire but using stars instead of cards. Recreating this animation in Pure Data was fairly simple. By sending the [buffer 1( message to [gemwin] before its creation you are able to have a trail of the stars be left behind as it moves. If you have Pure Data (extended) you can even try the code out yourself.
Of course, life isn’t always as easy as this. I faced a problem because this scene came immediately after the one before it with no time for patch switching. Additionally, due to the way the previous patch was constructed, the [buffer ( needed to be set to 2, which meant I couldn’t fade between them and still have the trailing effect.
What this meant is I had to retire the use of this effect in favour of a different one. The stars still moved in the same way but instead of having a (semi) permanent trail the stars had a shadow that followed them:
Perhaps the original effect could’ve been recreated using the [repeat] object, but with limited time I could not explore this possibility. There doesn’t appear to be any plans to add live buffer switching in Pure Data/GEM (I’m not even sure if it’s technically possible), so for now it seems you have to pick either one buffer or two from the start and stick with it 🙁
Kindle Theatre reiterated several times that they wanted me to feel at ease and just do whatever the hell it is I do regularly. I quite admire this relaxed attitude and thank them for giving me a lot of creative control. Despite this, I really enjoyed having a new set of challenges, which has given me a lot of think about in terms of constructing visuals for use with actors.
I also learnt that I’d make a terrible DJ.