Conversation with Three Canadian Live Coders
Muck in and find your own way to be part of it
On 16 February 2021, Scott Wilson, Norah Lorway and David Ogborn held a video chat reflecting on the history and development of live coding as viewed through the prism of their own practices. In preparation for its publication in eContact! 21.1 (May 2022), the transcript of their video chat was edited slightly for the sake of readability.
More than 15 years on from the Toplap manifesto, three of Canada’s leading advocates for live coding, Norah Lorway, David Ogborn and Scott Wilson, came together via video chat in February 2021 for an informal discussion of how live coding (as movement, genre, approach, etc.) has evolved, where it’s going and how that’s been reflected in their own practices. The transcript of the video chat has been edited lightly for content and clarity.
Origin Stories… (or not)
[Scott Wilson] Right, so it’s really nice to be here today with Norah Lorway and David Ogborn, and I think we have three people who’ve in various, different ways been very active in the international live coding world, movement, or whatever you want to call it. Maybe something we can talk about today is actually: What is that? What is this thing that we three have been talking to each other about for more than a decade now, and how is it developing?
So we’re going to have a very sort of loose, relaxed conversation here, but maybe just to start, it would be interesting just to talk to both of you about how all three of us got started with live coding and where that came from and how that kind of came into our personal practices, because I think it probably was in different ways. I don’t know if one of you wants to kind of dive in on that… Norah?
[Norah Lorway] Okay, I can’t remember exactly when it was, I think I was probably going to… it wouldn’t have been an algorave officially, but some kind of live coding event that I think Alex McLean and Dave Griffiths put on as Slub. This was years ago, so like 2011 maybe. I think shortly afterwards we formed BEER [the Birmingham Ensemble for Electroacoustic Research]. It was mostly live coding when we started BEER I think, wasn’t it?
[NL] Fuzzy now, but so that was early 2010s basically.
[SW] Ten to eleven years this year.
[NL] Yeah, wow!
[SW] Ten years, I think, so the first premiere was 2011 — it’s been ten years of BEER (Fig. 1).
[NL] Yeah, yeah.
[SW] So you came into it by sort of seeing other people doing it, and got interested?
[NL] Yeah, I thought it was really interesting what they were doing, but there were not a lot of people that I saw doing it. I think then it just kind of kicked off a bit more — not like there were thousands of people doing it, but it was definitely more people. Then the algorave stuff started in 2012, 2013, and I got involved more heavily involved in that.
[SW] So David, what about you? I don’t know if I’ve actually ever heard the story from you of how you got into live coding, or came upon it, or entered that world.
[David Ogborn] Yeah, I think it’s complicated, and in general I try to resist origin stories because they…
[SW] [Laughing] We do think of you as a superhero, of course!
[DO] [Laughs] … because I think the thing with origin stories is that they make into a line or a linear development — a linear progression — what is often more usefully thought of as a web or network. So, in that sense, I can think of lots of different trajectories that sort of move along and ultimately amount to my involvement with the live coding world. I quite like the fact that you use the word “world” for it — I’m not sure if that’s a word that people use often. But it has an appealing neutrality to me, whereas the word “community” has more of a charge, because communities I think intrinsically involve including and excluding people. The Community is something that you are in, whereas a world is just something that you can’t help but have around you.
[SW] So you feel like you can’t help but have live coding around you?
[DO] [Laughing] Maybe, yeah!
[SW] Do you want to pick up a couple of those trajectories?
[DO] The long trajectory, I think, is being involved with computer music and, from the time that I was an adolescent, basically messing around with computers and music. And although I was not really conscious in my earliest years of the existence of a field known as computer music, I think the things that I was often intrinsically doing, or naturally drawn to doing, as I was playing with computers and music were things that involved programming. Things where the weight of the exercise was as much on the thinking about code and thinking about how to talk with computers as it was on the musical result. So, you know when we [Scott and I] met and when I was doing my graduate work, I wasn’t live coding, but I was definitely spending an enormous amount of time programming systems for making music. And they involved a live component, but not necessarily programming in the moment of performance. I think it was around that time that I first heard the term “live coding”, and I think it was probably from you, Scott.
[DO] That would have been like 2003 or 2004.
[SW] Yeah, somewhere about there.
[DO] And I remember when we were at the University of Toronto together, you were doing lots of things with SuperCollider. I don’t remember you emphasizing live coding, but I think it came up in conversation, things that people were doing with SuperCollider. I think that kind of got filed away a little bit. And then sort of fast forwarding and perhaps skipping over some of the trajectories I could mention, I got involved with the laptop orchestra world.
[SW] Which overlaps with live coding but isn’t exactly the same thing.
[DO] Right. Initially, there are really three moments for me. The first was that I went to the advanced DSP workshop one summer at CCRMA and Stanford; the workshop that year was taught by Perry Cook and Xavier Serra. Perry Cook was talking a lot about the Princeton Laptop Orchestra [PLOrk], which was still a relatively new thing and was obviously very exciting. And I think I picked up some of the excitement and enthusiasm from that. And moment two is while I was teaching as a sessional at the University of Regina in their Department of Music and had some time on my hands, so I formed a laptop orchestra there.
[NL] Oh right, cool.
[DO] And I just realized right away, oh wow, this is a really cool thing to do, primarily because it was obviously creating a situation where myself and everyone was learning in unpredictable ways. And so my interest in the laptop orchestra was the excitement of how people learn in that situation. Then a year later, when I started at McMaster University, we formed the Cybernetic Orchestra sort of on the same model of this group at Regina. And for a variety of reasons, the Cybernetic Orchestra started live coding, and even though that hadn’t necessarily been set up as the definition of the group it became the definition of the group.
[SW] Which actually, in a weird sort of way, I think, was the same thing with BEER curiously enough, because I was obviously interested in [live coding] and had a particular angle on that. (Maybe in a minute we can get into some of those different angles people have, because I think that’s also interesting.) But I always said that it didn’t have to be just live coding, and it could be what members wanted to do, but as it happened that just became what we did. Maybe Norah [who was a founding member] later can say whether she felt that was good…
[SW] … or positive or oppressive or anything else. But it was what we did!
I liked a lot of things that you both said there, and this idea of a web or a world is interesting. It’s funny you mentioned me bringing live coding up in the context of SuperCollider, because I’ve been involved, for a long, long time in the SuperCollider world. And I think that’s how I came to [live coding]. It sort of snuck up on me, though. Because when I think back there, it’s nice to think about different trajectories and different ways in. You know one thing that I remember (and this would be 20 years ago now, with my six-part work Müllmusik I was doing various kinds of live performance versions of the work, and I’d been living in Germany and going around touring it. At some point, it just kind of occurred to me that it would be really useful to have a text window pop up with some preformatted code which I could then edit and modify, and that that was just the best interface. So, I had this idea, and I didn’t call it “live coding” — I knew a little bit about it, but I didn’t think of it as live coding actually. It just seemed like the obvious way to work; I was sort of approaching it from an interface point of view. Which is an interesting question: Is it an interface? So, I was already doing that and then I became more aware of it as a thing that was defined and had a community, or a world, as I went on.
Another thing that stuck with me: I remember being at ICMC in Belfast, and I had a great time there, so I apologize for what I’m about to say, but I got a little bit bored at one point. I remember there was a kind of off-conference event which was in some café or bar somewhere and somebody was live coding. And the vibe of it was so different from what was going on at the conference, which was very much that kind of old school, computer music world. And I really loved just how free it was. I really loved the performative aspect of it — that people were really interested in code-as-performance and projecting their screens. I loved the mistakes of it. I loved how you got to see people think. And gradually as I kind of got into that I just became more aware that, like the SuperCollider community, this was a really interesting group of people who were not together because they had some kind of æsthetic idea about what they should be doing, at least not in the kind of traditional sense that you might find in the new music world. It wasn’t about style and there were people doing all sorts of different music, in both the SuperCollider world and the live coding world, and I found that really appealing. And I think that kind of really drew me into wanting to be part of that and experience it.
Norah, is there anything you want to add to that?
[NL] Yeah, sure. I was just thinking about Perry Cook and the Princeton LOrk, because that was where I first heard about laptop orchestras, when I was in Calgary doing a master’s there. I think he came and did a talk and he was really excited about that. And I discovered ChucK through that because I think one of his members was a ChucK creator [presumably Ge Wang]. Anyway, I think that’s why I’ve wanted to form many laptop ensembles, which did sort of happen, eventually. BiLE [Birmingham Laptop Ensemble] was the first one at Birmingham, wasn’t it?
[SW] Yeah. So did that kind of appeal to you as an alternative way of presenting music?
[NL] Yeah, it did!
[SW] … that format? And live coding played into that?
[NL] I liked it actually, yeah. In BiLE we didn’t do live coding, but some people were doing SuperCollider, some were doing Max, and I remember thinking if we all did SuperCollider and live coding, that would be kind of cool. But then people were like, “No I don’t want to do that,” and it kind of divided the group a bit. But I found it [to be an] attractive way of making music. And also, you could kind of hide behind the screen a little bit more, you didn’t have to be performing with yourself just being seen on stage. I like that you know people are looking at the screen more than the person, if that makes sense.
[SW] Ah! That’s really interesting!
[NL] Yeah, so that was an attractive feature to me as well, I think.
[SW] That’s interesting, that not framing of a person as the performer that you need to watch…
[SW] … as the kind of subject of gaze and attention.
[NL] There was a gig that we played with BEER in Birmingham, where Alex McLean was there. I just remember him sitting in the on the floor, remember?
[NL] Again, I can’t remember when this was, but he was just sitting on the floor, you didn’t see him, but you could see what he was doing. I thought that was really fascinating.
[SW] I know David has actually done a very Canadian thing: he’s done a live coding skate session outdoors at a skating rink…
[NL] Oh yeah, I saw that!
[SW] … and they actually projected the code, didn’t they? I remember thinking at the time when you told me about that David, that I was quite impressed with your courage. Encouraging people basically sliding around on ice with knives on their feet to stare at code, instead of where they’re going. But I gather that there were no serious injuries!
[DO] [Laughs] No, there were no injuries and the way in which the code was shared was that there were some fairly large TV screens at the corners of the rink. And the members of the Cybernetic Orchestra were spread out equally along that long side of the rink, as were eight speakers. So, we were kind of playing like an eight-channel setup spatially onto the rink, and the code was at the corners. What would happen with the audience is that mostly they were skating and enjoying the music, but then some people would kind of huddle in the corners and watch the code a little bit. Like another thing to do.
[SW] I love that that was more fun for a moment than skating. I think that’s great!
[SW] It’s a testament to how interesting that actually can be for people. One of the things that’s surprised me is that I’ve watched people live coding in languages that I knew nothing about, and I’ve been shocked at how interesting that was! You know maybe I shouldn’t be surprised, because I always have this joke, you know that if you’re not a bassoon player and you’re watching someone play, do we really know what’s going on, you know? [Laughs]
[NL] Yeah, yeah…
[SW] So Norah, you’ve been involved in like a quite a few different groups, actually. BiLE, the Birmingham Laptop Ensemble which you mentioned, was partially a live coding group. BEER, FIRE, lots of algorave collaborations. And I think you sort of had a group at Falmouth, as well? I don’t know if that was a formal thing.
[NL] This year we don’t have it, but normally there’s a laptop ensemble that happens every year. It’s a class though, so [the students] don’t necessarily enjoy learning about live coding or SuperCollider.
[NL] But when you came to do a talk two years ago some of them really picked up on it, and now there’s quite a few people from that group who are putting on their own kind of algoraves and gigs around the area.
[SW] Oh, that was really fun actually!
[SW] It was really nice to actually have you play with us again, I have to say.
[NL] We should do it again.
[SW] Yeah, we should!
Inclusivity and Accessibility
[SW] In all those different contexts, presumably there’s a lot of really different approaches to live coding and how it is used. Do you have any observations about that?
[NL] Yeah, there was a point where I was doing a lot of algoraves — every few weeks it seemed. I think it felt really accessible, like there were a lot of different people that were getting involved. Newer and newer every time. There were so many different languages people were using, and I think that was kind of interesting to see, approach-wise. It seems very accessible to a lot of people, more than other types of computer music performance. So, you do have a wider range of types of people who are going to get involved with it, too. It’s not just SuperCollider, there’re other people making their own tools.
[SW] Yeah, of course.
[NL] It’s really cool.
[SW] I think it’s really interesting that you say that it’s accessible. I mean, because in a way, on the face of it, you would think that it wouldn’t be, right?
[SW] Because you know you have to programme. You have to programme live with people watching you coding. And yet this is a kind of common response. David, maybe this brings us to the Cybernetic Orchestra a little bit. I thought it was really interesting that it was started with students who were not necessarily primarily music students or musicians and that it was very open to everybody. And it seemed really designed in that sense to be really inclusive and actually somehow accessible to people who wanted to be part of it. I got to play with you all once or twice and I always found that really a pleasure, and it was really interesting to see what the people brought to that. Was that sort of in the front of your mind when you were making the group? Were you worried about people coding who were beginners and trying to code to make music? Or just anything really you want to say about that, I’d be quite curious to hear a little more.
[DO] Yeah, I think in terms of the Cybernetic Orchestra certainly the idea that people would come with whatever background experience they have, that was very much baked into the group from day one. When the group was first formed, it was supported in part by a grant from SSHRC, and in that proposal, Henry Jenkins’ ideas about participatory culture had figured large. And so that character of, you know, zooming out a lot — thinking of participatory culture and working with computers as this place where people are learning from each other and in all kinds of unusual directions. I think that the orchestra got that character in part from that interest in Henry Jenkins’ writing.
I think it also got it a little bit — and I suppose in this way I’m going back to the trajectories question — of an impulse from the nature of my department and McMaster. Because I’m not in the Music Department but in a Department of Communication Studies and Multimedia, which we’re now renaming to be Communication Studies & Media Arts, probably a better description of what it’s been for a long time. But in any case, because the department had lots of different backgrounds and lots of different relationships to online culture, I think it was natural that this group that was formed in that environment took on that as well.
Actually, at this point, I should mention that one of the reasons that the orchestra started live coding back in 2010 was my colleague at the time, Stéfan Sinclair, who has been a leading figure in the digital humanities in Canada, and who unfortunately passed away in the last year. Stéfan, I can remember when he heard about the orchestra, started forwarding me things about live coding, like “Are you guys going to do this?” That kind of thing. And you know we were like, “Yeah, we should do that,” and so I think Stéfan’s prodding kind of helped us get into that. And you know I think in the digital humanities there is this thread of thinking about humanists as programmers and even humanities students as potential programmers. I think there are lots of complicated discussions about that, and about the limits of that. But Stefan was in touch with those currents and that made us in touch with those currents as well.
[DO] So you know, a second thing I would say is that I hesitate to call the orchestra “inclusive” because inclusion, I think, is a challenge. When you have people from different backgrounds, I think you have to be vigilant in adopting and improving practices that make the group safe for different kinds of people. So, I think inclusion is kind of like a challenge.
[DO] I don’t think it’s necessarily a state that we have, or have achieved. How I usually think about this aspect of the orchestra is in terms of openness.
[NL] Yeah. [Nodding]
[DO] The orchestra is an open group because they’re like a… like an open tent on a picnic. There are lots of different routes into it. What happens when people get there is another and more complicated question. But at least there are lots of ways there. Lots of other musical organizations, lots of other forms of musical organization, I think, really have kind of one way into them basically.
[SW] One thing that struck me about live coding, is it’s a little bit like Javanese Gamelan. You can obviously be quite virtuosic at it — I mean, I’m still amazed sometimes at what people can do really — but it also admits to different levels of involvement and different ways and kinds of contributing.
I think about this with BEER (Video 1), which again was quite different in a way, I suppose, than maybe some of the other groups we’ve talked about. I wasn’t trying to push anything in particular on it, but the thing that I was really interested in was structured, local-area network pieces. You know, using sort of the same kind of ideas that people like John Zorn and Anthony Braxton have, in terms of what comes after free improv and how to structure improvisation. And I thought, well okay, maybe this will be an interesting angle to explore through live coding: How do we make computer networks be a kind of source of structure, or a tool for structure par excellence, in an otherwise very open thing?
So it’s a bit highfalutin in a way, when I look back on it! But still, I remember some of the people who joined coming and saying, “Oh! I’d like to do this.” And I remember thinking, “Well you’ve never programmed before and maybe you haven’t done this, and…” I didn’t want to exclude anybody, but I remember being worried because I always feel kind of personally responsible for people when they’re in these groups.
[NL] [Nods and laughs]
[SW] But then I remember thinking to myself, well you know if this person says they can do it, and they want to do it, who am I to say there’s something to worry about? Why do I know? And I was always just really amazed how people would just muck in and find their own way to be part of it. And I think maybe the interesting thing there was that there was no content in most of those pieces. They really are these kinds of structures that you put stuff into, and so people could just find their own content.
[NL] Yeah, that’s true.
[SW] And that was really kind of un-prescribed.
[NL] Yeah, in terms of BEER and people who didn’t programme before, there were a few. Just because of the way we worked, I think it was a kind of easy to pick up little bits of code and just play around with it. They would kind of build their own way of working.
[NL] Yeah, it was really fascinating, actually, and that could be a really good learning tool as well.
[SW] As a teacher, I have to admit [watching that happen has] completely changed the way I teach people to programme.
[NL] Yeah, yeah totally!
[SW] I very much teach people that way, now. I give people things that work and let them muck around with them. And then theory and stuff kind of come sideways into that. Whereas I used to be much more sort of structured about it. I realized that’s a really good way to learn programming.
[NL] Yeah, totally.
[SW] And I think that the catch with live coding is that even though it’s so easy to make mistakes and have it not work, the sort of seductive aspect of it working and being able to produce something [quickly] and hear it and get that kind of really tight feedback loop is really appealing.
[NL] Yeah, definitely.
[SW] I don’t know if you two find that as well. What do you think, David? Do you enjoy that aspect of it?
[DO] For sure, yeah. And I think that’s engaging for people when they encounter it for the first time too.
It’s Not “Boomer Script”
[DO] Because I think right away, whether people realize it consciously or not, it punctures this idea of programming as this really long-term, arduous process of solving incredibly detailed logic or linguistic problems, whatever you want to call that. Which you know, probably is what a lot of programming is.
[NL] [Nodding] Yeah.
[DO] That’s something that I think about a lot, and I think it’s something that I haven’t seen as much discussion of so far in the live coding world — the differences between live coding and programming. I think, often what happens is the live coding world sort of conspires…
[NL] [Laughs and nods]
[DO] … in this idea that live coding is just programming. It’s just an equal sign between those two things, it’s all the same, and that can be productive, I think. Certainly, it’s undeniably true that when people come into contact with live coding, and they get practice making and changing small expressions, that some of this experience can play over into expertise with different types of programming.
[NL] Yeah, yeah.
[DO] At the same time, it’s pretty wildly far from the type of programming that people have to do in computer science to build word processors and stuff like that.
[SW] But isn’t that the problem, right? I feel like in a weird way, regular programming needs more of that playfulness!
[SW] The idea that programming is a playground that you do something in! I know that if Julian Rohrhuber 1[1. Of the classic live coding group Powerbooks Unplugged.] was involved in this conversation I’m sure he’d have lots of very philosophical things to say about that. And it’s interesting to me that that kind of idea about understanding programming as being different sorts of activities seems to have remained a very obscure, undiscussed philosophical corner of computer science, which doesn’t really [click] with the live coding people, even though they have a lot in common.
[DO] Anyway, for me, the punchline of this idea about live coding and programming not always being the same thing — because maybe there are different things going on that are being equated when they’re not always equal — is that that has complicated effects on how people engage with the thing. Because I think sometimes people who might otherwise engage will disengage because of the association with the more arduous type of programming. And other times that equal sign actually helps people do all these types of programming. So, I kind of have the idea that maybe it’s helpful to start to talk about these things in more specific terms.
[SW] Did you want to add anything to that, Norah?
[NL] Um, yeah, I think I agree. I was just remembering back about 2015 maybe it was, or 2016, I started doing software contracts with a friend. We had one that was using SuperCollider to write testing software for some synth, and it was just very strange to be doing that, because I was [still] kind of thinking in this way of live coding. It was my first proper job coding for an actual contract, and that wasn’t just an art piece or whatever. So yeah, just kind of transferring [those experiences], I think there are two very different ways of thinking, you know just one is very organized, the other one’s not.
But you could have a little bit of the kind of performative aspect in that more serious coding; I think it makes it more interesting, maybe. There are languages like JUCE as well, and other kinds of simpler languages out there that are trying to be more playful, too. So, I think yeah, they’re starting to be less kind of C++, serious “boomer script”, as I call it. Sorry!
[SW] Boomer script? [Laughs] Oh, gosh!
[NL] [Laughing] That’s what we call it, C++, yeah.
[SW] Well, I think that has to be a whole other chat if we’re going to talk about C++ actually!
[NL] Yeah, yeah, yeah!
How Has It Changed for Us?
[SW] We’ve all been doing this, what probably more than ten years at least…
[NL] Yeah, wow!
[SW] And I’m curious about how it’s kind of evolved in our personal practices. I mean, for me, one of the things I’ve enjoyed is I think it’s made me a better programmer in general.
[NL] [Nodding] Yeah, yeah.
[SW] And I found that even if I’m making a fixed-media piece, or something else, I find a live coding aspect really plays into that kind of flexibility, and the practice just seems to be very useful in lots of different contexts. But with you two, how do you feel you’ve kind of grown with it? Has it kind of evolved out into other areas of what you’re doing? How has your live coding changed over the years?
[NL] Yeah, I’ve been using other things. I mostly used SuperCollider back in the 2010s. Wow, which wasn’t that long ago! But yeah, I was mostly using the same things, like Ndefs 2[2. A class in SuperCollider that supports rapid and on-the-fly connection and rerouting of source and processing nodes.] pretty much is what I would do. Just because I was doing a lot of algoraves and it was stable, to me. You know, it was a stable thing that was always going to work in that kind of scenario.
But as I’ve been teaching down here [in Cornwall] a lot, I’ve been using Tidal a bit more. So the tools have changed a bit. But [it’s more about] just using reliable things and learning what’s reliable, what’s not going to crash as much. Yeah, you kind of go with the flow with that, but always having some kind of backup plan. So that’s how I approach it, these days [laughing] — being careful.
[SW] [Laughs] Do you feel that different languages kind of give you different affordances? Do you work with different ones for different sorts of things?
[NL] I think so, yeah, for dance parties or algoraves, Tidal has actually been kind of really good because it’s really quick. I’m looking into FoxDot and other newer things, because I think they’re getting into mini-languages, which is a big thing I’m noticing a lot lately. Things like Tidal are just quick with patterns. But I still stick with Ndefs as the main thing that I use. I think it’s just that I feel more comfortable with it. But thinking, it’s been like 10 years of using them, so it’s quite a long time! [Laughs]
[SW] Yeah, for me too, that’s come into my other practices. I use Ndefs in places where you might not think you would, actually, like making fixed-media pieces.
[NL] Oh, right? That’s cool.
[NL] Yeah, that was good!
[SW] Isn’t the way you’d quit that is you’d write “commit suicide” and you’d give it a time, and then it would just stop playing after that?
[SW] So what about you, David, how has it evolved for you? I know the Cybernetic Orchestra has kind of grown by leaps and bounds, and really has a life of its own now. But what’s live coding for you these days, and how’s that changed?
[DO] Well, I think in terms of the projects that I work on there are really two that are interrelated, that have a kind of intertwined but differentiable future to them. I continue to work on the Estuary project, which is creating a collaborative ensemble-emphasizing multilingual platform for live coding, where people can connect to it with a web browser and not need to install software in order to get started. And the second project exists separately from that, but also within that, and that’s the live coding language Punctual, which, interestingly enough, I think, has a connection to the Ndefs that you’re both so fond of. Because really the creative practice that was at the birth of Punctual was that JITLib practice of live coding networks of Ndefs. 4[4. I.e. networks of synthesis and processing nodes.] And Punctual actually started with the idea that you know could this be done with a notation that was a little bit more lean, a little more economical than the Smalltalk notation of SuperCollider.
In Punctual you make graphs of oscillators and other unit generators, and you can assign them to variables (Video 3). When you change their definitions there’s some control over when and how the new version of the definition replaces the old version — cross-fades, basically. But it does that in the web-based environment of Estuary or in a web-based standalone.
Exploring that has been really interesting. Estuary is a sort of big project with research assistants and lots of contributors, and so my role there is, you know, is a little bit “manager” but also programmer and designer. Whereas Punctual is kind of like my baby. You know, like I’m the only one that commits to it. If I want to make a change that totally breaks it tomorrow, and takes it in a different direction, like, I will! [Laughs] I won’t hesitate.
[SW] [Laughing] Yeah, we can’t do that with SuperCollider!
[DO] Exactly! So, it was nice to have that space for play, and within that what’s been really fun is that after making a first version of Punctual that worked with the Web audio API, I had this realization that all of those same constructs could be used to make visuals as well. The way Punctual works now is programmes get simultaneously translated into audio and video, into fragment shaders basically. I’m really looking forward to exploring the possibilities of that more. I’m starting to develop this practice, which involves taking photographs — like still image photography — and then using that as source material for live coding with Punctual and making the photograph musically audio-reactive in different ways. I mean, I think this practice of making musically reactive imagery, it’s kind of all around us — YouTube is filled up with all kinds of interesting visualizers or little animations that sync to music and stuff. So, there’s a broad participatory culture about this. But I never would have predicted that this would be something that I might explore in a focused and personal way for a number of years, but it looks like that’s exactly what I’m going to do.
[SW] It’s funny you mentioned that you can just change it. Because I know with Julian [Rohrhuber] and Alberto de Campo, and other people who were involved with JITLib, that really grew up out of their personal practice too, because they were just always improvising [in their performances]. I mean that and Republic, which was an earlier network music library in SuperCollider, you know they could just change [the library] and it didn’t matter, because they would just improvise again. And at one point, I [told them], “You know, some people are writing pieces with this. They want them to work next week.” [Laughs]
[NL] Yes! [Laughs]
[SW] That was one of the reasons why we ended up doing Utopia, which is a newer network library, and is a little more modular and a little bit less monolithic.
So Just What Is It, Anyway?
[SW] So maybe just to round out this discussion, I think it could be really interesting to talk about what we actually think “live coding” is? You know it’s one of those terms… Is it a tool? Is it an instrument? Is it a performance interface? Is it a genre in some sense? I think people sometimes use it that way — “Oh, it’s a live coding gig” — in the same way that they use a term like — “Oh, that’s the electroacoustic concert.” You know, that’s supposed to mean something.
Technically it probably shouldn’t, but maybe it does? And “Is the term useful anymore?” is a kind of interesting question. I’m reminded — you know this is being done for eContact! — of these discussions on fora like <cecdiscuss> years and years ago — back in the mists of time — about whether electroacoustic music and computer music are really separate things anymore, and whether those terminologies were useful distinctions. And I think the answer is now pretty clearly “no” for whatever values of “electroacoustic music” and “computer music” you want to have. But what about live coding? Is it really a thing unto itself that needs its own movement and its own groups, or is it just another kind of tool in the toolbox? What do you think?
[NL] Do you want to go first, David? I’m still thinking… [Laughs]
[DO] I guess my sense, in terms of “Is it still a useful term?”, I think it absolutely is. And I think the reason I say this is because I constantly see new people using it in different ways. I think, though, that perhaps one of the most interesting ways to push live coding — the term and the practice — is into conjunction with other things. Whether very specific other practices or broad things. Like, I think I’ve noticed out of the corner of my eye recently people starting to use the phrase “live and creative coding”.
[DO] So, attempting to kind of blur the world of changing code and performance with the really much larger world of people that are just exploring getting æsthetic results with code… people working with Processing in university classes or community settings making art pieces, or so forth, but not performing. I think that’s enormously productive, and if we were to arrive at a position where lots of people in those creative code settings thought of live coding as an option within that creative coding world, I think that would be a useful place to be. So, I guess I’m kind of painting a potential picture of live coding as a, as you said, sort of a tool in the toolbox, a practice that may be adopted and then dropped in a wider context.
[SW] Part of the reason I asked that question is in myself, I feel like I’ve, in a way, gone back, you know? Like, I told that story about SuperCollider at the beginning, I just started live coding without quite realizing I was even doing it. And then I actually developed a real live coding practice. But now I feel like my live coding can play into writing an instrumental piece or doing something else in music, or writing a fixed-media piece, or whatever.
But also, we found in BEER, live coding is really good for some things. You can do almost anything you want… well, okay I shouldn’t say utopian things like that, though it’s incredibly flexible. But you can’t necessarily do things very quickly. So when we started doing a piece where we were combining live coding with machine listening of Xenia Pestova improvising on the piano, we very quickly realized we had to make a GUI, because you just couldn’t deal with the data as fast as she was creating it otherwise. And so watching live coding come up against its limits, I think, has been something really interesting over the years. And it creates obvious places for it to get sort of welded on to other things, or become one tool in a collection of things for a broader practice.
But what about you Norah, because your practice goes far beyond live coding? You do fixed media, you do wearables, you do all sorts of different things.
[NL] Yeah, I mean, we just have to teach a lot of different things here. That’s one thing I noticed with Falmouth [University]. I teach mostly Music Tech, but also do some games and stuff. We did a project actually a few years ago, myself and a few other people, called Autopia, which I know is basically Utopia with an “Au”.
[SW] [Laughs] That’s okay!
Also “creative computing”, in the UK anyway, seems like it’s a popular term for selling courses and degrees. [Laughs] But they have some really cool stuff going on here as well, and they do a lot of live coding with visuals. And I think they like the idea of liveness. That’s becoming more interesting to a lot of people. Maybe in computing it brings it to life.
The other thing with live coding is that it reminds me a lot of playing an instrument like the piano, for example. It’s like I could capture that same performative nature of playing the piano. You can transfer that almost into live coding. I kind of approach it that way, actually. So it’s just maybe myself, but I think other people have too, like Roz [Coull] who used to play in BEER, she mentioned that as well.
[NL] That’s maybe why she enjoyed it, because it was kind of a similar type of reactivity to performance and stuff.
[SW] Yeah! And the other thing I love is that it gave me a way with electronic music to just go and make music with people.
[NL] Yeah, that’s true too. Yeah, yeah, you could jam with them!
[SW] … whatever kind of music, it was. That kind of social aspect. And that could be playing with the Cybernetic Orchestra one day, and with BEER doing some weird network feedback piece the next day, and an algorave the next day. It sort of gives you kind of an “in” into all those things, maybe.
[NL] Definitely, yeah.
Live Coding is Dead
[SW] Right, any final thoughts? Quick fire, pithy observations? [Laughing]
[NL] Um, no. This is good, though.
[SW] Jef [Chippewa, eContact! Coordinating Editor] told me that somebody proposed that there should be a sort of “Live Coding is Dead” article for this issue as well.
[NL] [Laughs] Right!
[SW] [Laughing] I don’t know if we need to take that on, but we can perhaps add it to the long list of, you know, honourable and respectable “dead” activities that one might be involved in!
[SW] And just enjoy our afterlife, as you like! Right! Well, thank you both for doing this. This has been a real pleasure to talk to you.
[NL] Yeah, likewise.
[SW] And I hope we can get together and make some music — maybe all three of us even, sometime soon. In person, even!
[NL] That’d be cool, yeah! [Laughs]
[DO] [Smiling] Yeah, I don’t know how close we are to that! But…
[SW] Yeah… one day… before we die!
March 2021, April 2022