Remote sets: Livecoding in its purest form

The intercontinental concert riddle

Here’s a riddle for you:

A crowd forms to see a show in Buenos Aires, the drummer is in France, the synth-player is in Germany, yet the crowd still hears them playing right in front of them. How is this so?

For us, livecoders, this is an easy one: the musicians are playing a remote livecoding set.

Remote sets and Algorave Argentina

The situation described here above is precisely what happened last Wednesday 22nd at the Algorave Takeover of “El Club del Club” in Buenos Aires. Eddyflux and luiiuuuiiiii (TOPLAP Karlsruhe) played a remote set as the warm-up for the night. Eddyflux was in France, and he played mostly rhythmic phrases coding in Strudel. luiiuuuiiiii was in Germany, and she played atmospheric sounds and irregular melodies coding in SuperCollider. The event was organized by Colectivo de Live Coders (Argentina’s TOPLAP node), and included a tribute to the late Jeremías “Bembi” Babini, livecoder and game developer of our node.

Organizing a remote coding set takes some planning and ideally some testing too. Livecoders will often have to adjust their setup and play-style to accommodate for the technicalities of online playing. Performing in this manner is limiting, but that doesn’t mean it isn’t fun or expressive: after all, “the enemy of art is the absence of limitations” (Orson Welles). Some things to take into consideration are: timezones, synchronicity, synchronization, languages being used, the mixing of these languages, necessary libraries and samples, personal configurations, irregularities between Operating Systems, internet connection, internal communication, etc. I’ll dive deep into each of these quirks, but first let’s give some definitions about what can be a remote set. With the descriptions up until now, it may be the case that many of you are imagining completely different set-ups than others are.

The key elements that can define a telepresent show are synchronicity and media. The performance can be synchronous (in real time + latency) or asynchronous (pre-recorded). Media is the element of transmission: be it audio and/or video being streamed, lines of code being executed remotely, or meaningful control messages such as OSC being transmitted, all through the internet.

SynchronousAsynchronous
Code-basedRemotely coding a computer that is in-venue.Reproducing keystrokes from a code recording.
StreamStreaming a performance’s audio and/or video.Playing a pre-recorded set.
ControlledControlling MIDI devices remotely through IP.Playing a MIDI recording in some synth setup.

Another aspect of the concert which can appear is the inclusion of in-person performers and their relation to the final result. The simplest example is when there’s a livecoder in-venue coding alongside someone whose presence is virtual, but this isn’t the only scenario possible: in the Algorave held in November 2023 here in Buenos Aires, Álvaro Cáceres (TOPLAP Madrid) sent in an asynchronous (pre-recorded) set consisting of 3 video streams (front camera, side camera and screen recording) and audio. These videos were then played inside Hydra and intervened in-venue by the art duo Hypereikon (Chile). Take into account Álvaro sings in his music, and we weren’t prepared for good video streaming, hence the decision to pre-record with cameras. This limitation opened the possibility for this unique experience of asynchronous collaboration.

Lil Code from Hypereikon livecoding Hydra over Álvaro’s pre-recorded performance

What Eddyflux and luiiuuuiiiii did last week was an example of a synchronous code-based remote set: they played in a Flok session connected to a computer that was playing in Buenos Aires. This is a type of performance that is unique to our art form, and one which we should value more in my opinion. The indeterminacy of random values, another distinctive aspect of livecoded music, shines more than ever: if clocks aren’t synced, and if random seeds aren’t equal, everyone listens to a different live version of the exact same performance. This was the case here, as Strudel has no way to reset the clock. And, not only that, there was no synchronization between the livecoding languages, meaning that every machine had a different time offset between the clocks of Strudel and SuperCollider.

Synchronicity: The condition of both excecution and show happening at the same time.

Synchronization: Making sure the events emitted between clocks happen at the same time (be it between livecoding languages or machines).

What’s very special about these synchronous sets -to me- is that the music is being played there. It’s not an audio stream, they are using an instrument thousands of kilometers away. They are livecoding in the same way someone in-person would, it just happens that the keyboard is on another continent.


How to set-up a remote livecoding set

Note that many of these steps could vary in order because of limitations in resources or time or purely out of artistic wishes.

  1. Select a specific time for the performance and communicate it across time zones:
    • At what exact time is the set happening? How long should it last? In which time zones is everyone involved?
    • You can use a tool such as timeanddate to make sure everyone gets the correct time conversion.
    • Start thinking about what limitations may appear from the difference between time zones, if any.
  2. Define the performativity of the set:
    • Performativity is how the artist performs the set.
    • What should the performer be able do? Is the focus of the set sound, video or both? Will they use a single livecoding language? Will someone else be playing with them, using which language? Will parts of the performance happen in person? Do they want to use data obtained live? Does the performance depend on physical objects (physical synths, someone’s voice)?
    • Is the performance a jam without a set group of performers? Can anyone online join the jam?
  3. Reflect on the performativity and time zone. Then, define the synchronicity and media:
    • Will this set’s main elements be pre-recorded or live? Over which media (code, audio, video, MIDI, OSC)?
  4. Establish the technical requirements of the ideated performance:
    • What does each node of the performance need in order to make it happen? Do you need an internet connection? How good of an internet connection do you need? Which softwares need to be installed? What would a computer need to process all that? How can we achieve synchronization between livecoding languages if needed?
    • For synchronous sets, do we need to share samples or files beforehand? Does the artist need a particular software version or plug-in?
    • A node is every place where there’ll be computers connected to the performance.
  5. Review the resources available and tweak:
    • What resources do we have? Do we fit the requirements of the ideated performance? Do we need to change the nature of the performance? What cool alternatives do we have available with our resources? What can we add to the performance? What can we simplify? Can we adapt our resources to fit the requirements?
    • For synchronous sets, is everyone using the same Operating System? If not, which things should we take care of? Are samples or files being loaded in the same order regardless of the differences in sorting between Windows and Linux or OSX?
    • For pre-recorded sets, is it as simple as pressing play? Do we need to synchronize multiple videos? Can we faithfully play it back?
  6. Make sure the artistic intentions are being met everywhere:
    • How are we mixing different audio sources? Are performers aware of the event’s context? Are performers aware of how their art is being perceived (audio system, projector resolution, etc.)?
  7. Select a communication method between nodes:
    • Do we all have access to the same chat group to communicate? Is there a way to call someone in case of an emergency mid-performance?
  8. Specify the economic status of the event and performance:
    • Will the event organizers retribute the performers? Are they even able to? Is the money available actually transferable between countries? Does it even hold value in each other’s country? What is the economic situation and colonial status of each node’s country?
    • Is the event a fund-raiser? Is it a free event?

Closing thoughts

Remote sets, specially when synchronous and code-based, are livecoding in its purest form. I know, that’s a daring way to bring attention to them, but hey, I’m no purist at all. I say this because I highly value the unique aspects of our art form, and these scenarios highlight so many of them in a way I haven’t seen any other expressive discipline do: the internationalism, the connectivity, the digitalism, the indeterminacy, the collaboration, the openness, the anticolonialism, and many others. Even if every node has its own local idiosyncrasy, and they’re evolving in very different ways, these tokens of livecoding appear as valuable in all of them. I believe we should make an effort to start considering remote sets as regular options for algoraves. This past year in Argentina, I decided to start having remote sets for the same reasons I’ve been including DJs at the end of every algorave I organize: we just aren’t as many livecoders here as we were before the pandemic. -Well, the fact that I like to organize in venues where people expect more danceable music doesn’t help, as some coders can be unsettled by that, and I’m aware of it-. However, this also made me think about how back then, we were so many that we’d play together plenty of times, and we did it because we wanted to, not out of necessity. It was part of the definition of livecoding to us.

The current tendency I see is one for individualized coding artists and prepared hyper-personal codes, and to be clear, I’m totally a part of it. Going forward, remote sets can be a way to highlight livecoding and its quirks, especially in places where there’s a “shortage” of livecoders. A way to balance out this tendency. It’s also a form of international cooperation: if one node has countless livecoders available, help your peers from a smaller node to promote livecoding by playing with them! We need to be aware and promote our values as a community if we want to build livecoding as an artistic movement, and not only as another tool to make music.

GEIKHA 芸下☭

See also

1 Comment

  1. #livecoding #algorave @geikha

    https://blog.toplap.org/2024/05/27/remote-sets-livecoding-in-its-purest-form/

    This is an excellent blog post on using remote live coding in Algoraves and other events. @geikha describes recent experiences doing this in Argentina and includes detailed discussion on how to think about it, plan and pull it off.

    There is also a clear call to action for live coding event coordinators:

    "We should make an effort to start considering remote sets as regular options for algoraves."

    I would take this a step further and say that remote participation and collaboration should be considered for all live coding events – concerts, conferences, etc. not just Algoraves.

    What do others think?

Leave a Reply

Your email address will not be published. Required fields are marked *