Some thoughts on live coding (of music)
Nobody's fault but Nick Collins
Immediacy is the immediate problem. Traditional musicians and their indoctrinees, faced with live coding for the first time, can be forgiven for focusing on the paucity of gestural information. 'You might be revealing the whole instrument', they might say, 'but it's not what I class an instrument! The haptic rate of your typing might be fast, indeed, virtuosic (though have you really been practising for four hours every day over twenty years?), yet I feel that what is lacking is the immediate connection of thought into aural resultant, of improvisation into action'.
There is no way to meet this response but to point out a few facets where live algorithm programming is interesting, exciting, and challenging. I shall use the term 'musician' for the practioners of live coding without guilt or provocation.
There is no evil break with music traditions; this is simply what happens when a new medium might provide some refreshment. We can choose our constraints as composers, and choosing those terms where few have ventured before gives some chance of new discoveries to stimulate our minds and ears.
Live programming is always about writing algorithms for event generation; it is a form of improvised algorithmic music. This is a higher level compositional concern than the immediacy of specifying every event. Why is improvising on that basis wrong? Are there more natural ways than using programming languages to tackle such an aim?
The whole point of programming is its generality. Still, to be effective as musicians we focus on some smaller problem. But the balance of power is in the live coder's favour. He who prepares the whole interface cannot change the nature of improvisation itself as they go.
Some have pointed out the vulnerability of programs. I think immediately of the beautiful but fragile existence of proofs in mathematics. And errors are dangerous. Yet this is just a new tightrope for the concert performer to confront, another kind of concerto. Some live coding performances may thrive on the difficulty. If we want more modern excuses, the possible mistakes in conception and coding can be part of the glitch aesthetic.
I do not seek a situation where the output is irrelevant and the coding itself is the performance. Many members of TOPLAP would never place themselves in a traditional 'stage' presentation anyway. Where the musician sets themselves up as a performer, however, I am certainly convinced by the necessity of fully revealing interfaces, and do not consider this to trivialise the experience, or be over pedagogical. Try closing your eyes if it bothers you as an audience member, or use a small projection or audience accessible monitor as a performer. It is only about a level playing field, and an integrity to performance.
Is there a tradeoff between immediacy and preview? These may seem linked. Note how DJing is mostly preview, without music creation. Instrumental performance has only mental preview, and works very efficiently in a fly by wire approach. Live coding can be done without preview (just run the code as soon as possible).
Perhaps live coding works best in a collaborative performance where more than one musician can have necessary preparatory time. Or we must allow setup time, in silence if needs be, or the performer to run mostly pre made patches in the initial part of their set while they build up their work. once the algorithms are constructed and being manipulated, the architecture is in place for very radical changes of audio at a higher rate (less programming legwork). We must allow time in live coding performances for things to get going.
You can't tell me that musicians are at their best at the very beginning of a performance.
Improvisation has a wonderful heritage through music history, and automata also go way back. Yet who improvised new automata on-the-fly before the current age? Live coding is not DJing (being a compere for) generative music; it is a way to improvise it.
The typing world record is about 12Hz. The maximal musical haptic rate is about 15Hz. Both of these assume some serious chunking of actions. how much of improvisation is licks and muscle memory? But muscle memory plays no part in forming the algorithms of live coding themselves.
Nothing says that live coding is the sole musical interface. It can be part of whatever means the musician uses to makes their sound worlds in the hope that others will respond. Given time, live programming can be part of the repertoire and mainstream of musical culture. We should set up an academy and have grade exams in performative coding.
I improvised this impromptu of course.