Remote access to SC over the internet?

Hi there!

I’ve started working on a multimedia project that involves a Kinect that responds to a dancer’s movements. We have to rehearse but I’m currently stuck 3000km from the rest of the team (lol)…

Does anyone have any experience with remotely connecting to scsynth? Networks aren’t my best skill but I’m always up to give it a try.

I’ve seen this thread but I’m not sure whether it’s Raspberry Pi specific…

Also, if anyone has experience with Kinect on SC, I’m always open to suggestions and advices :slight_smile:

Stay safe! x

Not sure how exactly you need to set up your system, but if your goal is, say, to control SC running on a computer that in the room with the dancer (hooked up to the Kinect there), you could try the HyperDisCo quark. Essentially, you can make it so that every line of code that you run on your local machine is also run at the remote machine. Not sure if this would be ideal to your use case, but it’s worth exploring.

This would require that you run an instance of this OSC server somewhere: https://github.com/bgola/tcposcrouter

The default HyperDisCo installation allows you to test the system using the authors’ own server in Berlin that is supposedly running 24/7, but eventually it’s best to have control over your own server.

If you want to try and install HyperDisCo, here’s the code I have used to do it successfully:

Quarks.fetchDirectory;
Quarks.install("adclib", "ff6174cbd4d4e1d0c09d2b51f58245c11401d555");
Quarks.install("HyperDisCo");
Quarks.install("StartupFile");

The installation catch here is this: if you install HyperDisCo first (don’t), it will pull in adclib automatically as a required dependency. But based on my recent experience last month helping two people with this, the current main repo of adclib breaks SC (I filed a bug report here). So in order to avoid that, you can install a prior version of adclib that still works (that’s the long string of characters above). Once adclib (that particular version) is installed first, HyperDisCo will not try to pull in the latest version and it should all work.

After installing and restarting SC, you can follow the instructions to customize the start up file that will make HyperDisCo load up correctly. Once you copied that start up file in the right place (StartupFile.openDir), you should be able to easily switch between the hyperdisco start up file and the blank start up file with StartupFile.choose;

Once you get to the point that both laptops (yours and the dancer’s) have this working, the “PUBLIC” red button is the one you want to activate to start “remote-controlling” your dancer’s laptop.

Hope this makes sense and works out for your use case. I have found this workflow extremely useful since the pandemic began.

Bruno

I don’t know what kind of control and interaction you need between sites, but you could go the super simple route and have the person at the other end share their screen via Zoom and then take remote control over the computer, install your patch etc and then control it remotely.

Troop is another option for executing code on two machines at once.

If you need more interaction between sites there are a number of ways to send control messages or audio between sites that I’d be happy to explain.

scsynth and sclang are in fact commandline tools.
if you can prepare most of things at home and you need to simply run something on a remote machine (linux/mac) If I would be in your position I would try ssh-ing to remote machine and there on the commandline run the patch on that local scsynth: sclang YOURPATCH.scd (maybe absolute paths are necessary) somebody would need to open and forward ports for your incoming ssh session and remote machine would need ssh server.

can you be more specific what is your hardware and what can you do at your place (do you have a kinect with you too?) or do you need a different setup?

another option is VNC - which enables you to control the desktop of a remote machine.

I doubt that connectinf sclang on your machine with scsynth on a machine 3000km away would work (too many OSC messages? depends on what you are doing).