The scene at an algorave is often what you’d expect from any good techno night – a dark room, engaging visuals, a decent, bass-heavy speaker set-up, and lots of people ready to dance. Except instead of a DJ up in a booth, or a producer tapping away behind a glowing Apple logo, performers at algoraves respond to each other and the audience in real time, often projecting the lines of code onto the walls as they type. lt’s coding as improvisation and experiment, and over the last decade and a half this kind of live coding has become increasingly visible, popping up at dedicated club nights and festivals around the world including Sonar, Ars Electronica and Transmediale.
Now Alex McLean, a research fellow in human/technology interfaces at Leeds University and one of the instigators of algoraves, has been chosen as the Open Data Institute’s first sound artist in residence, in association with Sound And Music. He had been working with live coding since 2000, when he met Adrian Ward, one of his partners in the long-running live coding ensemble Slub. “We didn’t really know what we were doing, we just had this idea of somehow wantıng to make music with programming languages. We all llstened to Autechre, and at the time the idea of the creative coder wasn’t…” he shrugs, continuing, “programmers were seen as people who implemented designs.”
Ward was doing a media arts course in Plymouth where he was introduced to generative music, “He started making his own software to generate his music, and just leaving it running on stage.” says McLean, “but when we met up in London, and started first talking about bringing this live, there was a new version of [the computer music language] Supercollider which allowed live coding, and also a new language. ChucK, came out in the States. It just seemed like there was a moment where everyone – OK, not everyone, a really small group of strange people – thought it would be a really good idea to start making systems for writing live code to make music.”
Tidal – unrelated to a certain Jay-Z connected music streaming service – is the open-source language that McLean created to allow quick- response improvisation, now used by hundreds of musicians around the world. “I felt the need to develop something that was more immediate, because I was working with percussionists and finding that it would take several minutes before I could make a sound.” Tidal uses simple, one-word commands to apply functions to a pattern, and can link several computers over a local network to sync to a control pulse.
Watching him work, chopping and changing the lines of code that controls his loops by changing a number or adding a word to change a function, is like watching a graphic designer who has memorised keyboard shortcuts and can transform an image in seconds. Complexity emerges from simple instructions. With a few keystrokes, McLean transforms an arpeggio and a simple set of beats into complex polyrhythms that pan in decaying arcs across speakers. He granulates sound patterns and reverses them, and creates blobby, queasy Aphex Twin-style textures before switching up samples to produce something nasty and sputtering, like the filthiest work of The Bug. It’s pure concentration and flow, and in an algorave setting it can throw up quite a few surprises.
As well as other coders. McLean performs with musicians who play traditional instruments, as well as live artists and choreographers. But successful improvisation depends on communication between players – and how does this square with the concentration needed to live code? He describes watching a video of a performance with collaborator Matthew Yee King, in their group Canute: “We’re next to each other on the stage, and there’s quite a lot of points where I’m iooking at him, and that performance was, I think, quite possibly the best I’ve done. There’s a lot of points where we both finish at the same time, just somehow communicate an episode so we time it and change, which has been quite rare for me.”
This kind of rapport becomes more difficuit when working with choreographers or performance artists. He did another piece with the performance artist Suzanne Palzer, where she stepped on and off a platform. Her movement off the piatform caused the screen showing his code to go biank, and it would light up again when she stepped back on. She was, McLean says “trying to interrupt and interfere – and I was trying to remember where my code was! Suzanne’s work is about digital art but without computers, just these off and on movements.”
Apart from its use in improvising music. Tidal can be used to apply functions to patterns of any kind, not only sound. McLean will be working with the Open Data Institute to take aspects of large public data sets and represent them in new ways. In one of his academic papers that explains the pattern functions of Tidal, McLean uses visual representations – coloured blocks layered in rows to demonstrate the effects of functions on the code.
His examples look like knitting patterns, and another of his collaborative projects explores weaving. “The idea is to try to represent the weaves with code – and there are all of these problems.” he says, discussing everything from the three-dimensional nature and tactile properties of different materials to the ‘edge problem’ – many commercial textile software programmes ignore the edge of the fabric. “People think of code as being really complicated, and weaving as really simple and repetitive, but when you actually look at weaving, it’s incredibly complex.” He gives workshops to introduce non-coders to Tidal, and “people who haven’t programmed anything before start making music together in a couple of hours”, he says, smiling. “It’s kind of on the level of understanding knitting patterns or something like that.”
(a thought in progress..)
Like many I’ve been preoccupied with thoughts about the writing of Mark Fisher, and his untimely death. As Nathan Jones put it, “Mark Fisher was a giant. Such a cruel irony that the man who so eloquently and honestly articulated the links between mental health, politics and economics would be taken from us like this, at this time.”
It’s OK to be unsatisfied with the way things are going, culturally, politically.
I’m starting to think about the next AlgoMech festival, and Peter Rollings got in touch about his Experimental Sonic Machines. He doesn’t have a website, but intrigued, I searched out this documentary someone had made about his machines and street performances:
I can’t really summarise this, it has to be watched. The work with found materials, the open, reflective approach to creativity, the machines, the self-deprecation against the startling, edgy music.. I love it.
There’s more videos on youtube, footage of some pretty amazing looking performances and constructions.. and also Rollings appearing on Britain’s got talent. From the start it’s stomach churning, childish playground bullying, mocking someone because they don’t fit with sickly, oppressive norms. After the previous video, it’s a miserable experience. Adds something to the classically-Guardian headline “Is Simon Cowell to blame for the end of western civilisation?”
How can we strip away this awful, retrogressive misery, and make space for genuinely new culture+ideas to emerge? On this tip, it’s good to hear that Alexandra Cardenas is taking her live coding to street performances, like Rollings, finding public space to try new things out.
I’ll leave you with this from Fisher:
From around the year 2000, musicians, visual artists and choreographers have been popping up around the world to form a community of live coders. This community uses programming languages to create live work, predominantly in the performing arts. This idea appeared from different places in various flavours, such as just-in-time programming and on-the-fly programming, although the term live coding has became standard.
Patchwork portrait of seminal live coding band Powerbooks Unplugged (2004-),
film by Jonas Hummel (2010)
But, liveness and code form an unlikely friendship. On one side, liveness is about direct, unmediated connection, in the moment. On the other, code is about abstraction, generalisation, procedures to be replayed across different timespans and media. From this perspective live coding is almost oxmoronic — liveness is about now, code is about whenever. It is no wonder that many live coders purposefully embrace error and failure — their practice runs against our understanding of what code is for.
But when we write code not to make reuseable software, but to create in the moment, it takes on a very different quality, something closer to the embodied experience of speech. Live coders can work across networks or across disciplinary boundaries, pushing against the distinction between natural and computer languages.
Shared Buffer (Alexandra Cardenas, David Ogborn, Eldad Tsabary, Alex McLean)
@ Pikselfest Norway, 2014
Live coding has developed and grown over the past 17 years into a thriving, international community, meeting to create symposia [1,2], festivals [1,2], conferences, concerts and long nights of techno. All these performances involve the act of computer programming as performance: instructions are written and modified by a human while a computer executes them. Proclaiming “show us your screens”, live coders open up the developing structure and movement behind their work by projecting their screens, so the audience can experience the code grow alongside the development of its output.
Study in Keith, Andrew Sorensen
The experience of live coding is a strange one. Locked in a state of creative flow, working in a world made entirely of symbols, words and text, while simultaneously hyper-aware of the passing of time, and of the sound generated from the composition of those symbols. Hearing is a sense of touch, a way to feel the code. This is amplified further by the presence of others in the room, whose expectations you play with and respond to.
Kindohm @ ICLC 2016, Hamilton
Live coding isn’t a genre, or a set of tools, but a community of diverse practices, rolling back history to look for paths not taken — stripping back the graphical user interface to find the language machine underneath. Then, not using the language to describe already-made designs but to explore live thought, externalised through language.
REPL Electric — The Stars
I’ve ‘deactivated’ my facebook page, for the usual reasons – the inability to actually share things with people without being filtered out, privacy concerns, general lack of transparancy and annoyance. It’s a pretty strange process, a bit like changing your ADSL provider, where the site proposes various arguments for why you should stay, puts you on guilt trips about the people who will miss you, etc.
Then when it’s finally done it turns out that all you’ve really done is the equivalent to blocking all your friends. If they go to your page it will pretty much look like you’ve blocked them, harsh! There’s no way of leaving a ‘I’m taking a break’ message or anything like that. So this is the main reason for this (fairly boring, sorry) blog post, to let you know that I haven’t blocked you on facebook!
It’s also extemely easy to re-activate your account – you just log back in and you’re insta-restored.. So quite a lot of friction to leave, and none whatsoever to return.
There are alternative ways of deactivation, as kindohm pointed out on the twitter, you can just unfollow everyone and everything. I found some tips here that make this easy, it’s a nice way of deactivating on your own terms, not facebook’s.. But still it wasn’t quite enough for me, so I’ve gone the official route.
I haven’t decided whether I’ll return or not, but in the meantime you can find me on the TOPLAP slack, twitter, send me an email, or drop by to chat in person either at Access Space labs on Fitzalan Square in Sheffield UK, or Deutsches Museum in Munich DE, or somewhere between..
Update – started getting people asking why I’d unfriended them so reverted to the Hodnick method, reactivated but not following anything. Harumph.
I’ve been reminiscing about the early days of live coding, living in London UK around the year 2000 and taking part in experimental electronic music events there. There is some kickback for the phrase “experimental music”, it doesn’t make sense as a genre label (once it’s a genre, is it still an experiment?) or an institutional alignment (could/should institutions experiment on culture?), but I think it makes sense to talk about experimental events where new ideas and software are tried out, which might result in failure.
One place was the Foundry, a pub on Old Street/Great Eastern Street where I spent a lot of time. You never knew what you were walking into, from full-on digital noise to (actually, more often than not), a lady reciting poetry about worms, uncontrolled explosions in the vaults.. If you wanted to do something yourself you just spoke to Gimpo and would get a date in the diary.
The pub was closely associated to the KLF, and a framed poster by Bill Drummond was on display titled “I COULD FUCKIN’ DO BETTER THAN THAT”. On reflection I think my life would have been very different if I hadn’t read it. We organised quite a few VXSLAB events here, even a generative art exhibition in the basement (old bank vaults). The ethos of doing stuff without looking for permission or funding, just doing it is something we took into many dorkbotlondon and other free events.. Making things happen felt easy.
- not to solicit activity, all activity had to be self initiated, volunteered or uninvited
- not to say no to anything, reject anything but attempt accommodation in some way
Slub played here regularly, at events like the Sunday Deriver, and Plug and Play. The space had a projector (they were starting to become affordable), so we were able to start projecting our screens..
With venues like Fabric closing in London, lets not forget the other end of the spectrum – venues created for open experimentation, existing for art outside of funded institutions and commercial venues. They open up where artists can move in, before property developers push them out. Without these spaces, I wouldn’t be making music or events now. Do they still exist in London? Sheffield has Audacious, Access Space, DINA etc, long may they continue..
I had an enjoyable, far-reaching chat with Emily Bick and the results are in the March issue of The Wire magazine. Emily has managed to fit in quite a lot about Algorave, Slub, Canute, Tidal, Weaving Codes and Susanne Palzer. The last time live coding was featured was March 2008, in a review of the first (and so far, last) TOPLAP CD including a track from Slub:
A prehistory of Live Coding TOPLAP CD
Four years ago, in a smoky bar in Hamburg, Toplap was formed — an organisation dedicated to promoting live algorithm programming. So far, so niche. Defying expectation however, it has since exploded into a fully functioning electronic music scene, with hundreds of practitioners improvising with live coding languages such as SuperCollider and ChucK. That is, writing, rewriting and modifying music software on the fly during performance (often with the rapidly changing code projected on a screen).
The cream of this scene’s live recorded output has now been collated on Toplap’s inaugural release. Despite superficially geeky origins — many performers are coders first, musicians second — the music here is stacked with depth, guts and soul. Opener “Water Surface” by Ron Kuivila is a featherlight study, shimmering with static broken by bursts of bee-like feedback. In contrast, The Hub’s “Hub x 6” is an
analogue-style fun fest of farty trumpet bursts and spaceship noise. RedFrik’s ticklish “Aug 19” is Luke Vibert-style acid, but with enough rhythmic aberrations to take it beyond twee. “20060401folded” by scene forerunners Slub is a compelling, edgy slice of rollercoaster Techno. In truth, it’s hard to believe much of the music here is essentially freewheeling software reined in by finger tapping humans. Live coding has so far flourished, but under a bushel. Perhaps it’s time the rest of us got a look in. Susanna Glaser
I think it’s a nice bushel, I hope we can stay there a bit longer.
I’ve just published the ICLC proceedings, a learning process, trying doing things a little differently, so thought I’d share. I’m by no means an expert on e-publishing, feedback is very much welcome in the comments.
Nothing out of the ordinary for peer review — we used easychair. This is standard in computer science but I probably wouldn’t choose it again, particularly after they made features premium while I was using them, without warning, and had very little communication about their downtime. I’ve been happy with self-hosted OCS in the past.
I blogged before about how I wanted to achieve conference template utopia, by offering a paper template in markdown. This went surprisingly well, I made simple templates in both word and markdown formats, and about half the authors chose markdown. I had very few people reporting problems with the template, and with a little bit of wrangling I was able to use pandoc to generate nice PDFs via xelatex, and reasonable HTML. It would be good to push this further when academic markdown tools are more developed, but for now I think it’d be unfair to expect everyone to use pandoc, a commandline tool. I don’t see a reason to continue inflicting LaTeX on anyone, though.
Many conferences have eye-wateringly high registration fees, and it can be hard to understand why when performers have to pay them as well. I think part of the reason for this is publication costs; if you want your conference proceedings to be published by a respected publisher, you have to pay them (and then readers may well have to pay to read them as well). We decided not to go this route, at least for the first edition. Instead we decided to just share the proceedings as PDF, getting all the authors to provide their papers under a permissive Creative Commons Attribution license.
It was clear from asking authors that they would particularly value having an ISBN for the proceedings. You can register as a publisher in order to allocate ISBNs yourself, although in the UK this requires buying them in batches of 10 for some reason. After asking around the University of Leeds it turned out that someone in the Secretariat could allocate an ISBN for me straightforwardly, by filling out a simple form. I specified the format as e-book, and price as £0, which doesn’t seem to have been a problem.
The ISBN satisfies the beancounters in terms of making the proceedings an official publication in some way, but actually isn’t very useful beyond that, as far as I can tell (correct me if I’m wrong). You could use it to locate my physical address and ask for a PDF, but you’d be better off searching for the name of the conference in google.
DOIs are perhaps more useful as a way of linking to archival documents long term, even if they don’t carry the gravitas of an ISBN. I found the free Zenodo service, which archives research data for you (on CERN’s servers), providing DOIs in the process. I put all the papers in their web interface one-by-one, a bit tedious, but worth it I think. If you do the same, then it’s worth filling out both the ‘conference’ and ‘book’ sections, you then get decent BibTeX export records etc via the site. I also made a Zenodo ‘community’ for the conference, so you can see the papers collected together there.
Zenodo are also happy for videos to be uploaded, that’d be a nice way to make the peer reviewed performances in the conference citeable. We’ll see.
Aside from a small matter of very many spreadsheets, that’s it! Open and accessible conference proceedings. Thoughts welcome!
(We will go a more formal route as well by the way, following on from the conference, Thor is leading on a special issue of Performance Arts and Digital Media.)
Time to reflect on a busy year.. I’ll probably edit this post a bit as I remember things.
2014 started with a workshop with Thor Magnusson at Access Space, introducing our mini-languages Tidal and ixilang. This went really nicely, and lead into a really great pubcode in the Rutland Arms opposite, where workshop attendees passed around a wireless keyboard, taking turns to make some background music with Tidal, nice to have some collaborative live coding as background to drinking and chatting. Here’s a video of that. It would be great to find time to do more of these events..
I had a few days residency with Ellen Harlizius-Klück and Dave Griffiths, hosted by Julian Rohrhuber in the Robert Schumann School, Dusseldorf. We presented our work to the students and worked on the funding proposal which was to become the Weaving Codes, Coding Weaves project.
I also collaborated with Thor on another ixilang and Tidal workshop, this time in dotBrighton. One day we’ll have time to share what we learned as published research..
There was also a trip to London, speaking at the Roundhouse Rising festival, and then heading to the White Building for a fun improv with Leafcutter John. Here’s the video from the latter, featuring some fine audience participation:
Things started heating up in March, starting with the first drum and code collaboration with Matthew Yee-King as Canute, at LIJEC in Leeds. I also did a solo performance there, which Ash Sagar kindly recorded:
I also did a performance-lecture in February with Geoff Cox in Aarhus, not in person but by making a custom Linux distribution, and Geoff playing back my recorded keystrokes to ‘live code’ some stuff including manipulating his voice.
It was this month that Thor and I kicked off the AHRC Live Coding Research Network with a fine event in London with some great speakers reflecting on the field.
I also did an online streamed performance for the Rhizome telethon, which you can retrospectively watch here.
April opened with a great fun, but sadly unrecorded drum and code Jazz Improv performance with Paul Hession, at my old haunt in Goldsmiths, and with an associated AISB paper which you can read online. Here’s one of Paul’s showreels, featuring a snippet of one of our practice sessions from the 15:50 mark.
Another collaboration explored this month was with the multi-talented Ash Sagar as Algorithmic Yorkshire, playing up in the Gateshead Algorave. Here’s a practice session recording:
The algorave coincided with the national maker faire at the centre for life, where we did a TOPLAP stall, and I did a solo performance slightly upstaged by a clown walking up and down making explosions.
May started with a dream event “Sonic Pattern and the Textility of Code“, which I organised in collaboration with Karen Gaskill of the Crafts Council. The line-up was fantastic, looking at aspects of code, sound and textiles from multiple perspectives, and the venue filled right up.
There were quite a few other talks and performances in May, a solo streamed performance to Trix in Antwerp, and the first “Shared Buffer” performance with David Ogborn and Eldad Tsabary, using my Tidal live coding language in a shared web environment made by David called Extramuros, so we could play together despite being in different countries. Here’s the recording of this first set, fully improvised (we never have found time to practice properly):
It went nicely, I’ve not had much chance to play together with other Tidal users before.
There were also talks at Culture Lab Newcastle, Connect the Dots festival in Sheffield, the University of York, and a rare Slub performance at Thinking Digital Arts in Newcastle, although the latter was compromised by problems with sound.
This month saw the final two performances of Sound Choreographer <> Body Code with Kate, in Rich Mix (as part of a Torque event) and in Frankfurt organised by the Node crew, where I also did an algorave style performance. Well maybe not final, but Kate has since moved to New York City, and we both want to develop a new piece for future performances. In search of residencies..
I also had the pleasure of performing with improviser Greta Eacott at the ISCMME conference in Leeds, who happens to be the daughter of John Eacott, who I know as an early supercollider live coder from back in the day. Here’s a recording:
End of part one.. Part two to follow hopefully before the end of the year.
Hack circus is a great new quarterly magazine about all the ideas between art and technology. I wrote an article for the first issue, and have an interview between me and Kate Sicchio in the upcoming second one. It seems each issue has a live event attached to it, and Kate and I will be doing a performance at the next one, on the 15th March in Site gallery Sheffield.
Here’s the unedited version of my piece in the first issue. It’s about time travel and computer programming.
A performative utterance is where you say something that *does* something. Classic performative utterances are “Guilty as charged”, “I forgive you”, or “I promise”. Computer programming is when you type something that does something in the future, when the program is run, a kind of promissory performative. Programmers are basically future typists, making promises which get fulfilled more than once, maybe a million times, toying with the lives of different kinds of people, sensing whatever the future state of the world is and doing different things in response. Einstein described the wire telegraph (a prototypical Internet) as a very, very long cat, where you pull its tail in New York and its head meows in Los Angeles. Programming is like that but in between pulling the tail and the cat meowing, its front half might have moved somewhere else, maybe even Sittingbourne, or maybe splitting into a million catty tendrils across the four-dimensional space-time of Kent. These are the kinds of problems that programmers have to deal with all the time. Worse, programmers don’t get to actually travel with their code into these multiple futures, there are many sad stories where programmers do not see their work being used, and the users might not register that their software was made by a person at all.
Programmers rarely get to travel backwards through time either. The reason for this is that programmers have been trapped in a capitalistic ideal of linear progress towards an idealistic future which doesn’t arrive. The overiding metaphor of time in software engineering is of a tree of development, with its roots in the past, its trunk in the present and branches into the future. The metaphor falls down because what programmers want is for the branches to reconverge back to a new trunk, with all feature and bug requests fulfilled. The point isn’t to blossom into a million different possibilities of the future, but to clump all the branches back into a single woody stump.
When computer programmers finally give up on the future, we could rethink programming around the idea of cyclic time. Instead of writing code to engineer some future design, programmers could write code to try to get software to work as well as it did a few years ago. So far the “revision control” systems which look after these branches of code development do not support merging a branch back to a past version of itself. You can “backport” critical bugfixes, but not twist a branch round to connect the future with the past. If this was better supported, all sorts of interesting applications could appear. The coming apocalypse is one obvious application, requiring current strands of development to connect back to previous ways of life.
Südthüringer-Wald-Institut is a research institute working exactly on this kind of “technocratic doomsday fetishism”, developing technology to support post-apocolyptic research in a cave 200m below the Southern Thuringian Forest in the former East Germany. With a large percentage of technological research ultimately targetting military purposes, programmers and other technologists should certainly bear in mind the possibility that their future may involve a jump back to the past.
So far so gloomy, lets move on to talk about socks. We knit socks and other tubes by using circular needles, not back and forth but around and around in a loop. Programming can feel this way too, particularly when programming while drunk, at night, with a couple of hundred people dancing to the code you’re writing. This kind of activity is known as “live coding”, and is live in a number of different ways. Firstly there’s a live feedback loop between the programmer and their code, sometimes helped along by live data visualisation. Then there’s the feedback loop between the programmer and the music; writing some code, which generates music, which the programmer hears, and responds to by changing the code. Then there’s another between the programmer and the live audience, the audience responding to the music, and the programmer responding to their movements.
But in some sense, programming cannot be live at all. Programmers don’t program *in* time, they program *with* it. Back to that knitting analogy; programmers work with the thread of execution, or the timeline, by working on the higher-order level of the knitting pattern. The thread of time does not run through their fingers, but it does run through their ears, and their computers. Their fingers are instead working on the knitting pattern which are working outside of time, controlling the whole process, composing and manipulating patterns for present and future iterations.
No wonder then that live coders rarely look present at all in the performances they give. Their audience experience the music now, but the live programmers step out of time, abstracted out into an amodal, ungrounded timeless void. In a strange reversal the audience create all the spectacle, and the performers sit quietly in the corner, completely still apart from flurried typing and the occasional sip of mezcal. Maybe the next step for programmers is to learn to work with time while being in it.
This article was written during a residency at Hangar Barcelona as part of the European Culture ADDICTED2RANDOM project.
You can subscribe to hack circus over here.