Get in touch
Engineering

Live Coding

Programming as Performance Art

As I step into the arcade, harmonic feedback hits my ears. Projected on the walls is the earth, as seen from 250 miles above on the International Space Station, slowly rotating as a filter sweeps across the sound, accentuating sympathetic frequencies along the way. Sharing the screen to the right of earth, is a text editor with dozens of lines of Python code. Below the screen are two humans, each hunched over a laptop.

They’re natalie[dot]computer and Andrew Yoon, members of LiveCode.NYC. And while it might appear at first like they’re hacking in private, in fact they are cooperatively “live programming” the audiovisual experience, with the source code laid bare before an audience of artists, musicians, programmers and other technologically-curious people.  

Humans have been using computers to assist with the playing, recording and creation of music for over half a century.  As technology progressed, computers have become essential to the production of music. Digital Audio Workstations (DAWs) like Ableton, Garage Band, and Pro Tools have abstracted the computer into graphical interfaces that enable artists to produce, manipulate, and perform music without writing a line of code. 

The development of DAWs has played a massive part in the explosion of music created today by making digital music production cheap and accessible. But within the last decade artists started to elevate the act of programming music production to an art in and of itself.  I’m referring to the “live coding” movement, where artist-coders (alone or with collaborators) program computers to produce audio-visual compositions in real-time before an audience. 

With live coding performances, sometimes referred to as algoraves, the means become the end as the programmer’s screen is projected for all to see exactly how the musical sausage is made.

Algo-What? 

Despite the name, music at algoraves is not limited to electronic dance music. By means of sampling audio records, programmers can create music ranging from jazz, ambient or even pop. However the repetitive and rhythmic features of dance music make the genre a well suited for programmatic composition. 

What separates an algorave from the run of the mill techno rave is the radical openness into the creative process. Electronic music has a storied history of secrecy, from DJs obscuring vinyl record labels from the prying eyes of trainspotters to accusations that electronic music superstars are doing nothing more than pressing play on a pre-recorded set. As a weathered fan of electronic music it’s refreshing to see a musical scene prioritize openness against  the gatekeeping tendencies of the past.

How can I learn more? 

If you’re curious about the larger electronic music scene’s thoughts about live coding, both Resident Advisor and The Guardian recently produced short documentaries about the nascent movement. Even the financial times of all places recently featured a piece about algoraves. Beyond that, you can find an awesome catalogue of all things live coding on GitHub.

What do I need to get started? 

A computer and curiosity are the only requirements, but unless you want to start from scratch you’re probably best of starting with a programming language or library specifically designed for live coding. Despite a relatively short existence and limited popularity, there are a plethora of open source programming languages and libraries for live coding music and/or visuals, each with their own approach. 

Those new to programming might find SonicPi as easy entry point. With its friendly Ruby syntax and integrated programming environment, SonicPi enables artists to focus solely on programming without having to finagle with setting up a programming environment. 

For fans of functional programming there is TidalCycles, a Haskell DSL for describing rhythmic and melodic sequences synthesized by the 23 year old SuperCollider platform. 

Lispers and other lovers of parenthesis will find themselves most welcome in the live coding community. There are a multitude of live coding frameworks utilizing Lisp’s dialects including  Clojure based Overtone, Racket based Fluxus and Scheme based Extempore

Or perhaps you’d rather not bother yourself with programming syntax and prefer to program via GUI. In that case there is Max and it’s open source cousin PureData. Max is also an excellent choice for users familiar with Ableton Live as it has a native integration via Max for Live.

How Do I Join the Community?

Given the openness inherit to performance, the scene is welcoming to outsiders interested in learning more about live coding. TOPLAP and algorave.com are excellent hubs for finding meetups and events worldwide, as well as for forums for connecting with other folks interested in live coding. 

For those in proximity to New York City, livecode.nyc is a great community with regularly schedule workshops and performances. Finally, if you can’t find any live coding events nearby, there’s the helpful guide from algorave.com on running your own algorave.