home/ modules/ networked-and-collaborative-ensemble-performance

Networked and collaborative ensemble performance

  • learner can run a shared browser live-coding session with multiple performers
  • learner can manage tempo sync, latency and set structure across the ensemble
  • learner can design an Estuary ensemble set with shared layouts and timed sections

Host an Estuary (or Flok) ensemble session for 2+ performers: establish shared tempo, add custom sample banks, structure the set with Timer/View widgets, and choose latency-appropriate coordination given the measured network delay.

Solo live coding stops scaling the moment you want a second performer: now someone has to host the room, keep everyone on one clock, decide who edits what, and hold the set together when the network fights back. This module builds toward exactly that whole task — hosting a browser-based algorave ensemble on Estuary (or Flok) for two or more performers, whether they share a stage or a continent. Zero-install browser platforms make this the lowest-friction ensemble rig there is: no SuperCollider, no cabling, just URLs.

The arc starts supported: join an existing shared session and simply play alongside others, leaning on what collaborative live-coding platforms are and how Flok’s anyone-can-edit-anything model works. Then you take the controls in Estuary — practising the shared-tempo terminal commands (setting CPS/BPM and delay compensation), loading custom sample banks via insertsound and reslists, and defining and publishing workspace layouts with the view DSL until these commands are automatic under time pressure. Next you script a set’s time structure with the Timer widget’s named sections, the Cybernetic Orchestra trick for keeping collective improvisation coherent. Finally, the unsupported capstone: you host, measuring real network delay and using the latency-threshold facts and coping strategies (bar-boundary quantisation, free improvisation, latency-as-feature) to pick a coordination style the physics can actually support.

The required atoms are exactly what the capstone cannot succeed without: platform choice, tempo and sample commands, layout and timer design, latency reasoning. The supporting atoms enrich the picture — the Metre widget for synchronising acoustic players, Ableton Link for local Tidal rigs, OSC, theming and ExoLang extensibility, the wider history of distributed ensembles, the craft wisdom that ensembles cover each other’s silences, and Strudel’s Pattern extension API for further exploration.

Runnable examples

Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.

euclidean-rhythm

s("bd(3,8)")

strudel-0004 · CC0

d1 $ sound "bd(3,8)"

tidal-0004 · CC0

Atoms in this module

Required — these gate the capstone

Collaborative live coding platforms let multiple performers share a live code environment in real time
Concept L2 First instrument FP
Flok enables multiple live coders to share and edit a single browser interface in real time
Concept L2 First instrument FKP
Estuary is a zero-install browser platform for collaborative live coding in networked ensembles
Concept L4 Performance FH
Estuary maintains a single shared tempo (CPS/BPM) that all languages and ensemble members follow
Fact L4 Performance FJ
Estuary terminal commands add custom sample banks to an ensemble session
Procedure L3 Craft FC
Estuary's Timer widget structures live-coding sets into named timed sections visible to the whole ensemble
Concept L4 Performance FM
Estuary's view DSL lets performers define and share named workspace layouts via terminal commands
Procedure L4 Performance F
Network latency above 20-30 ms disrupts tight rhythmic ensemble playing but can be worked around with free improvisation or asynchronous structures
Concept L3 Craft FMJ
Network music performance has latency thresholds: below 10ms is unnoticed; 10-40ms requires tempo negotiation; above 40ms demands independent tempi
Fact L3 Craft FNM

Supporting — enrichment, not gating

Estuary's Metre widget visualises cycle subdivisions and Euclidean/Bjorklund patterns against the live tempo
Concept L3 Craft FA
Live coding can be performed by geographically distributed musicians sharing code over networks, challenging the conventional requirement for co-presence
Concept L4 Performance FP
Live coders find ensemble performance easier because performers can cover each other's gaps, reducing the solo exposure problem
Concept L3 Craft FM
TidalCycles uses Ableton Link by default for BPM synchronization with other performers and applications
Concept L3 Craft FNJ
Estuary's ExoLang interface lets external JavaScript live-coding languages be loaded at runtime
Fact L5 Voice FN
Estuary's visual theme is controlled by a CSS file defining four core colour variables
Procedure L5 Voice FN
A browser Sonic Pi can drive collaborative jamming by streaming server events to each client's Web Audio synth
Concept L3 Craft FN
MiniTidal's continuous signals (sine, saw, tri, square, rand) can modulate any control parameter
Concept L3 Craft FB
OSC (Open Sound Control) is a network-based messaging protocol for real-time musical control, designed to supersede MIDI's limitations
Concept L2 First instrument FJE
register() adds a new method to Strudel's Pattern class and returns it as a standalone function
Procedure L4 Performance F