» There’s a note on Wikipedia that algorave “is said to have originated in 2011, after two live coders (Nick Collins and Alex McLean) tuned into a happy hardcore pirate radio station on the way to a performance.” What is Algorave and how did it emerge from other livecoding performance?

Well algorithmic music and techno have had a long standing relationship, Autechre being the archetypal example.. But Algorave is about bringing algorithms a bit more into the foreground, haunted a bit by rave; some promise of less focus on the musician and more on each other, and a serious kind of dedication to having some fun. 

It’s something I’ve always been interested since I started making generative music around the year 2000, through working with Adrian Ward on a project which became our band Slub. We didn’t live code much at the start, but everything was generated by our own code, and we got the first room full of people dancing to it in the Amsterdam Paradiso in 2001. The live coding community came then together as TOPLAP in 2004, triggering a frenzy of activity, new environments, collaborations and ways of working. It levered a shift away from both software and music as end product, instead bringing code and sound together, improvising music through code.

So when we came up with the name Algorave in 2011, there was nothing really new, but it was an identity for a community to fill out and grow around.. But really the concept of an algorave is still pretty incoherent, what goes on depends on how it’s organised and who turns up. But Algorave isn’t just about live coding, there are other approaches to algorithmic music going on there. 

There is a big tension.. To make the notion of an algorave meaningful, the code kind of needs to be visible, but by doing that you run the risk of being seen as didactic, or a horn-tooting virtuoso. For me at least it’s just wanting to make music in a way that feels natural for me, to get absorbed in the experience of making live music with some good people. The word ‘algorave’ helps with this I think, because you can’t take yourself too seriously.

So what is algorave? I think it’s something like an experimental, live event, where gestures in sound and/or light are structured by a codified meta-medium (e.g. a programming language), which people experience through their own movement. (There’s some pushback against using the word 'experimental’ for any electronic music that is a bit strange.. But I think the word makes sense, where you’re not quite sure what will happen or whether it’ll work..) 

» What environments / languages do you use for livecoding? While the performance is by its nature open source, does that extend to the tools as well?

I use a language I made called Tidal, which is embedded in the Haskell language, and I use an old school text editor called emacs. Tidal doesn’t make sound but triggers sound on other software or devices, I use a mix of a handmade sampler written in C, supercollider and outboard synths. Almost all live coding environments are free/open source software, it’s just part of the culture. I use Linux, although those other operating systems are probably more common.. 

» Pair programming can be stressful enough. What’s it like having dozens of people essentially looking over your shoulder while writing code in a dance club?

I love it, it’s great to be locked in a state of flow, fully immersed with a language designed for improvising the kind of music I want to make, while also being aware of the people moving in front of me.

Programming is usually focused on linguistic symbols, but involving bodily movement turns it into a whole experience. It can be a little stressful when playing solo, and when the ideas aren’t flowing for whatever reason.. Which is why I most often collaborate on performances with other live coders (e.g. as Slub) or with instrumental improvisers (e.g. Canute). 

If things go wrong though, mainly if the soundsystem is really bad or impossible to hear, it can be pretty awful. Because it’s improvised, if you can’t hear the sound very well, you really can’t play at all.

Even in live coding, listening is still the most important part of improvising. If you can’t hear what you just did properly, you can’t decide what to do next.

» How did runme.org come together (as a site and as a community)? What was the software art landscape like in 2004 when it began?

Ah that’s a blast from the past! runme.org came from the Read_me festival, organised by Olga Goriunova and Alexei Shulgin. I guess Software Art has a long history via its predecessor Computer Art, but Software Art was a distinct iteration, focused around the Readme festival, and the Transmediale software art award. It was a concern that no one really paid attention to software art, and that it would be lost along with old operating systems and so on. There was also concern that if software art existed, it wasn’t self-aware (I remember taking part in a panel session at Transmediale titled “Software art artistic future or curatorial fiction?”). To counter this Olga, Alexei got together with Amy Alexander and myself to make a software art repository. It was a really good project, we coded up the website really quickly and got quite a lot of contributions. It lies dormant now, and Rhizome have taken an archival copy. 

When TOPLAP formed in 2004, Software Art was probably at its peak (the third and final Readme festival was in 2005), and I think helped provide a theoretical and critical environment in which live coding could grow into a movement.

» Runme.org (like esoteric.codes) brings hacker folk art into dialogue with more academic work. Did these points of view ever come into conflict, or how did the repository serve different points of view? As an example, Whitespace (one of my favorite esolangs) is tagged as “formalist” and “conceptual” – certainly appropriate for this provocative language but likely not part of the creators’ intent. Was there much discussion around these issues?

We did talk a lot about the categories and keywords. On the front page there’s a list of categories on the left which are rational in a ridiculous kind of way. Then on the right are a mess of keywords - which I think is one of the first tag clouds ever. As I remember, we set these against each other to challenge the imposition of database structure on messier ways of thinking. So yes, the subjectivity of these keywords is certainly something we would have thought about..

» Yeah, I think of runme.org as solidifying the term Software Art to mean work that emphasizes or directly engages with code (as opposed to broader labels like digital art).

I think if you look at the entries in runme.org, it’s broader than that.. Code art is one category of many.

I think of software art as difficult to separate from its particular context, the early 2000’s where software was really hyped commercially, but disregarded as a cultural medium. In the UK at least, the computer art pioneers were ignored, and software art was a fresh attempt to consider software as something that could be art. 

» You are often labelled as a software artist – is this how you think of your practice, and what does software art mean to you? Are your students engaged with this type of practice – or with creative coding or whatever younger people are calling it? :)

I’ve mainly been engaged with research, and have only really started teaching the past few weeks, so can’t talk about my students too much.

I rarely use the term 'software artist’ any more though, as I say I feel it’s a term placed in the last decade. That said I still think about my practice in much the same way, using code as material, working in free/open source software, and questioning conventional divides between designer, programmer and end-user. 

» You mentioned responding to the dancing crowd in your improvisations – does that flow from the crowd to you to your code to the music and back to them have a similar dynamic to improvising on a traditional instrument?

I’ve had the pleasure of improvising with excellent jazz improv instrumentalists, the combination works, and so I believe live coding and improvising on instrument can be equivalent, musically. Even though I miss out on the physical interaction with instruments, I’m still physically touched by the sound waves that comes from my code via speakers. I’m still also aware of the atmosphere in the room, although I have to get into a state of flow with my code, which makes it impossible to focus on anything beyond the code, sound and general crowd feel. 

» Are the algorithms fairly complex – do they rely on probabilistic strategies, or often surprise you with what they serve up – or are you always a few steps ahead of them, controlling it as the improviser?

My understanding of the way people make new things is that if they are several steps ahead, they aren’t making something really new. Donald Schoen’s reflective practitioner, Paul Klee’s productive and receptive movements, Tim Ingold’s textility of making, all put the maker in balance with their material, with creativity being as much as perceiving the results of a change as making the change. As an improviser I choose to bring this uncertain state of making to live performance, where I’m still learning about the structures I’m working with, and discovering new musical ideas within them. I do want to try out making some 'polished’ performances where I am reworking pre-composed music/code more, but I think I have to invent a new persona for that.. It would be a very different approach. 

That said I rarely make explicit use of random number generators, I find more music in for example gradually pushing the complexity of Tidal algorithms (which at the end of the day are all simple functions of time) to the limit of perception, and then bringing back.

» Could you tell us a bit about your collaborations with percussionists and performance artists? How does that work from a technical perspective – are you responding to them directly, or are they interacting with Tidal, or through environments like extramuros?

My collaborations take a varied approach, with extramuros we just have live coders improvising together. With Kate Sicchio, we try to set up a balance between us where we interfere with each other’s live notation systems (choreographic systems on Kate’s side, and musical on mine) so that a feedback loop of influence travels from Kate’s choreographic system, to the movements of her body, which interfere with my live coding environment, which I’m trying to control to make music, the sound of which interferes with Kate’s choreographic system.

With percussionists it’s a more straightforward group improvisation, we listen and respond to each other, although with Matthew Yee-King he also live codes his electronic drum kit, and generates Tidal patterns from his drumming which he sends to me over a network to manipulate.

In practice I rarely work with these patterns he sends me and we just play together. 

My favourite collaborative performance in recent memory is with Yee-King in Karlsruhe, we hadn’t practised at all (we never have a chance, living in different cities), but there were so many moments where it just came together perfectly.. Full of those mind-melds where we both changed direction, or stopped together. The crowd was going for it, so it felt dangerous – the possibility of failure is so much more palpable when people are dancing. But the ideas flowed.. I’m not sure why.. Maybe 30% nice crowd of friends, 30% quality stage monitoring, and 40% mescal.

» You mention in the recent xCoAx paper that such experiments are often designed to fail – in terms of the question above, is it important to you to not have too much control over the outcome?

I don’t think my collaborations are ever designed to fail (did I say that?), but they often involve struggle and interference, and are generally experimental, in the sense that there is a very real possibility for them to fail. Failure is difficult to quantify, I’ve done terrible performances that have gone very badly, but others have enthused about how wonderful they were.. I don’t relish failure, I’d rather make successful performances that people get something out of, but I’ve accepted that to push things forward, involves standing despite all chance to fall.. and sometimes you do just fall over. 

I do take full responsibility for the outcome of my performances, although in collaboration of course that responsibility is shared.

Despite the formality of code I do like to think of it as something I embody, something I use to work through ideas. In this sense I don’t control the code, but it is part of a feedback loop of control.

Therefore I don’t locate my music in my head, as something that I use code to externalise, but locate it in the feedback relationship between myself and the code. It’s still *my* music, it’s just that I make it not just by writing some code, but also by listening to the output, and deciding what to do next based on what I perceive in it. 

» How much do live coders build on each others languages – are there many shared libraries or toolkits?

Probably the most shared 'toolkit’ is supercollider, the supercollider language is pretty standard for full stack improvisation (from sound synthesis to patterns), and it has a huge free/open source library of unit generators that people can explore in developing their own sound.

Several languages use it as a basis for live coding language (notably Sonic Pi and ixi lang), and Julian Rohrhuber has made a massively exciting framework that brings Tidal and Supercollider into partnership.

» How would you suggest people start designing their own languages?

Using an existing one and gradually start extending it. Watching people use Tidal is really interesting, they extend the language in all kinds of ways, often simply by combining two functions together in some way, but that’s enough to create a new affordance with huge musical consequences.. 

I’m slowly working towards doing a 'make your own live coding language’ workshop though.. I got somewhere with Nora o Murchu, helping her with the foundations of her “cat++” VJing system. I think there’s a lot of fun to be had with simple physical models, and higher order commands.. 

» How much does the livecoding community build on or tie into the hacker community / demo history / academic music world?

I guess the short answer there’s all kinds of people involved, there are as many stories and histories as people.. 

Strangely, the chiptune connection is probably strongest amongst the visual live coders though, via hellocatfood and rituals. I don’t think there is such a thing as a “hacker community”, which I see as a mess of open source neoliberals and free software socialists, all somehow coexisting with the same licenses. I feel a strong affinity with the dorks though, the people involved with the more independent, volunteer-run side of creative technology, particularly dorkbot (I’ve co-organised about 80 of them in the UK) and EMFCamp. I’m hoping that there will be an algorave tent at this year’s EMF. I’m not sure what “academic music” is at this point, although I’m involved with academia I’m more comfortable playing at festivals, and many people I talk to are disillusioned with the big academic conferences.

For more info: Alex McLean’s work can be found at http://yaxu.org/ Slub is at http://slub.org/