Live-Coding: Insider Nerd Art, High Wire Act, or Virtuoso Music?
Written by: Perry R. Cook, PhD
Emeritus Professor, Princeton Computer Science (also Music)
Co-Founder and Executive Vice President, Kadenze, Inc.
Research Coordinator and IP Strategist, Smule, Inc.
The house (or club) lights dim…. Two figures sit on stage, poised at their laptops with laser focus. By the end of this “live-coding” performance, it will be clear to the audience that these performers/hackers were NOT checking their emails or balancing their budgets. In fact, the audience might have learned some new things about computer coding and computer music. And if the laptop musicians have done their job, all will have had a deeply aesthetic experience. In clubs and concert halls around the world, the sub-genre of electronic music called “live coding” continues to morph and grow.
It’s probably important to define “coding,” otherwise we might end up talking about live DJs, “Controllerists”, or others who take the stage with one or more laptops as their primary musical instrument. In fact, DJs “program” live, but programming in that context means selecting and sequencing the cuts and tracks that will be played. Yes, I know DJing is more than that, but you’ll soon see that it’s not live-coding.
Controllerists are also brave souls who perform live with a laptop, but they are using various non-keyboard/mouse interfaces, such as drum pads, fader boxes, game controllers, or custom-built thingamabobs, connected to a computer to make and perform on a new instrument of their own design and making.
So how is live-coding different? While our two laptop-ists were using the standard computer keyboard in concert, and maybe the mouse, they were NOT using packaged software for looping or synthesis or playback of sound/music files, and they weren’t using external controllers to influence the sound. Live-coders actually perform for an audience by typing and running computer programs, in real time. “On-the-fly programming” is another term for this, coined by Ge Wang, creator of the ChucK language, an Assistant Professor of Computer Music at Stanford’s CCRMA, and co-founder of popular music app company Smule.
Aside from some older pre-PC era academic experiments (as far back as the 1980’s), people started risking live performance with computers creating the sound, in solo format (Ron Kuvila, 1985), duets, and even larger ensembles. Likely, the first ensemble formed to investigate and perform — using live-coding — was “The Hub” (1986, John Bischoff, Tim Perkis, Chris Brown, Scot Gresham-Lancaster, Mark Trayle and Phil Stone).
The Tokyo Laptop Orchestra (simply called Laptop Orchestra, and likely the first to use that term) was a duet formed in 2002. Other live laptop ensembles began to form after that. By 2005–2010, larger ensembles (PLOrk (Princeton, 2005), SLOrk (Stanford, 2008), and dozens of other *Orks) were beginning to sprout and take root. In 2012, the Symposium on Laptop Orchestras and Ensembles (SLEO) convened in Baton Rouge Louisiana. More than 30 separate laptop groups presented papers and/or performances there.
Let’s drop back for a moment and note that Laptop Orchestras aren’t necessarily live-coding ensembles. In fact most LOrk-ish compositions don’t involve programming live-on-stage during the performance.
Most LOrks have experimented with on-the-fly performative programming, however, and many have a number of live-coding compositions in their standard repertoire. Communities and web resources such as TOPLAP were formed to support and advance the cause. A CD called A PreHistory of Live Coding was released by TOPLAP in 2007. It features much of the art form’s history from 1985 to 2007.
Live-coding is not just for the crazy avant-garde. As espoused by computer educator Mark Guzdial of Georgia Tech (and others), live coding is a powerful method of teaching computer programming. The Journal of Music, Technology & Education dedicated a special May 2016 issue to the topic of Live-Coding and Education.
Languages used for live-coding can of course include C or Java, but it can be difficult to keep sound going while editing, re-compiling, and re-running code in languages like these. Some popular live-coding languages were designed more specifically for musical tasks, including the now-ancient HMSL (used by the HUB) and more modern languages such as ChucK and SuperCollider. Because of their popularity with music and sound artists/programmers, and the graphical GUI-oriented nature of the programming interface, Max and PD are also used by some live coders. A fairly complete list of languages used for live coding can be found here.
By now you’re probably wondering, where’s the art in all of this? Is live programming really like playing an instrument or singing? We should remember that music has been about technology since the beginning. Adding pegs (then gears) to a stringed instrument for tuning, valves to a bugle to make a trumpet, or hammers, levers and more to the harpsichord to make a piano, doesn’t cause the art made on them to be called into question.
Quite frankly, computer code already makes, modifies, or processes almost all music we hear today. Live-coding just does that in real time, and in front of an audience. Live-coders oftentimes project their laptop screens for the audience to see what’s being typed. This allows observers to enjoy or puzzle at what’s happening, and hear the results immediately.
A quick browse through Google — searching for “live-coding music,” “on-the-fly performance,” or similar — will return many links, including some noteworthy YouTube performances and demos. I can’t help but include another plug for ChucK and its associated Audicle/miniAudicle. It’s not just because I co-created the language, but because it was designed from the ground up for on-the-fly programming (and other things where real-time, sound, music, and control are important). ChucK’s power was demonstrated early on, and quite well in this video from way back in 2009.
Music created on-the-fly isn’t limited to the techno genre. Just like any of us can use a computer to calculate our taxes, or write a letter, or make a Skype call, live laptop coders can make a huge variety of different types of music. Take this 2012 piece by the BLOrkestra (Barcelona), live-coded in SuperCollider.
Convincing you to go find and attend lots of laptop music concerts wasn’t my only motivation in writing this (though that would be cool). I’m much more interested in convincing you to learn programming and “join the band.” There are lots of online resources for learning real-time laptop music coding, including a SuperCollider Tutorial by Live-Coding guru Nick Collins, LORK code resources from PLOrk, SLOrk & others, and an online ChucK course on Kadenze. Dive in and join the fun!