Computer ensemble remote-learning methodologies


This semester, I’m slated to teach an “electronic ensemble” course. Also this semester, universities all over China will start the semester with online instruction (because of sars-2-cov – I’m fine, btw, just going a bit nuts stuck at home).

I could file for an extension on that class, but would like to give it a couple of days to consider, and also ask other teachers –

Can you think of any methodologies for starting ensemble activities remotely? The current projection is that we should be able to finish the semester in person. So maybe it’s possible to introduce technologies to the students remotely and get them started creating some materials, and put them together later. (But, realistically, the students are not likely to contribute much unless I give them some very clear direction in the beginning – “play around, make something and we’ll figure out what to do with it later” tends to get the response “but we didn’t know what you wanted, so we didn’t do anything.” My gut feeling is, it will be tough to get the students into it without group energy.)

One possible way to do it would be for students’ livecode execution to be shared over a network, so that everybody’s code is running on everyone’s machine simultaneously (I guess with ID tags simulating namespaces) – or, bring all the statements into my machine and livestream the results. I’ve only ever worked with LANs, though, never tried to share messages beyond the local router. If anyone has experience with that, advice would be much appreciated.

Or, web-based audio live coding environments with shared execution? I’ve got my own live coding system, but if there is already a way to run something in a browser, I wouldn’t stick to mine out of pride.

Maybe a long shot – worth asking, though, rather than just giving up.


Hi @jamshark70,

Estuary might well be the way forward here:

It runs in the browser.

Another option is Troop:

This is more like collaboratively editing a google document (or piratepad/etherpad). The students would have to run the software locally, but could then work collaboratively. You could use your system then.

Thanks Alex – I had looked at David Ogborn’s extramuros, which seems similar in concept to Troop (maybe a precursor of it). It’s probably a workable approach.

The sticking point is that all of these need a server. In mainland China, setting up a server to run an arbitrary web app is not quite as easy as in the States. Worst case, I suppose I could have them run Punctual on Estuary using the McMaster test server, but I’d rather have something under my control. (I do have a webspace where I can run php :expressionless: but that’s unlikely to handle python or nodejs – though I’ve asked tech support just in case.)

The tools look interesting, hope I can find a way to use them.


Troop may turn out to be the easiest server to install. I just filed a bug report, though (typing is broken after a / character, because it tries to identify a comment and then gets confused).

Anyway, the options as they stand are:

  • Estuary. Without a VPN, the McMaster server isn’t accessible over here. (It isn’t blocked, but it’s waiting for some web resources that never arrive, even after 10-15 minutes of waiting.) But if I can get around that, it’s the minimal configuration for the students, and that’s attractive.

  • extramuros: May be straightforward if I can install node on the Web server that I’m using. (Tried this afternoon but it got stuck somewhere.) Students’ setup would be complicated.

  • Troop: That web server already has python, so it may be very easy to install, and the interface seems friendlier. Students’ setup would be complicated.


In terms of functionality, we’ve had very good experiences with:

  1. being able to play on every computer within an acoustic space (this is very inclusive and stimulating, although also hard to handle in larger groups). Now this is something that may not work so easily under the current conditions, but maybe there are subgroups of people who live together and who could be clusters.
  2. everything that is audible is sent to every other participant as code. This is a very easy way of exchanging material, and of course a could way to jam (The hub’s “borrowing and stealing”). I’ve never tried that but it would be great to collect variations of one bit of code across participants (kind of sort the changes in their family tree).

Thanks for all the comments.

I had to abandon the performance element of the class, due to a lack of technical support. Without assistance, it’s not possible to set up a server (and thorough technical support is not part of the institutional culture where I am).