Skip to content

Vasileios/Synergia-Collaborative-Live-coding

Repository files navigation

Synerg(e)ia: A Collaborative - networked live coding environment

Synerg(e)ia (Συνέργεια) is an experimental project for Networked Collaborative live coding

Synergia is a Raspberry pi SSH and OscGroups server located in Greece

Synergia based on tmux collaborative editing, Emacs server/clients and SuperCollider

Why Emacs?

Emacs is free, powerfull, and thus an attractive option to start with collaborative livecoding

Synergia uses Emacs Client for collaborative editing

With Emacs Client you do not start a new Emacs instance

In Emacs you can customise your own designs for Networked Collaborative Live Coding. You can use various tools and you can write emacs-lisp to build your own emacs configuration

Installation

Prerequisites

SuperCollider

Download SuperCollider here: https://supercollider.github.io/download

OSCGroups

How to install oscgroups: https://github.com/RossBencina/oscgroups

OPENVPN

Download open-vpn here: https://openvpn.net/download-open-vpn/

Alternative method - UNIX only

Mac

install open vpn with brew

brew install openvpn

Linux

https://openvpn.net/cloud-docs/openvpn-3-client-for-linux/

Accessing Synergia

Synergia is a remote access VPN server located in Athens - Greece

Live coders can log on to the network server using the open-vpn app

UNIX users

Open terminal and clone this repository into your home directory

cd ~/ && git clone https://github.com/Vasileios/Synergia-Collaborative-Live-coding.git && cd ~/Synergia-Collaborative-Live-coding

Manual connection to Synergia server with open-vpn app

To manually connect with OpenVpn app read the manual in ovpns folder for more information

To Connect to the server you need to download and install open-vpn

https://openvpn.net/download-open-vpn/

open openvpn application and upload a user.ovpn that you will find in ovpns folder

For more information about open-vpn see here: https://openvpn.net/cloud-docs/user-imports-received-profile-into-connect-client/

Automatically connection to Synergia server with openvpn command

To automatically connect to Synergia server with openvpn go to /shell_scrips folder and run the 1_vpn_connect.sh

If you successfully logged in to the server with open-vpn you are ready to ssh as user in the server

run the below command to connect via ssh

ssh user1@10.8.0.1

the password is ‘user1’ without the quotes ”

If you successfully logged in to the server you will see an emacs scratch buffer.

You can do C-x b (switch-to-buffer) to select usr1, 2, 3 .scd files

You can now run SuperCollider code with Shift 2

Run OSCGroups and SuperCollider into your machine

Inside the repository go to shell_scripts folder and run the script that is related to your usr.ovpn connection. In a few words, if you have connected with usr1.ovpn in the server via OpenVPN app then you will use ‘usr1_oscgroups_sclang.sh’

You might need to change the sclang path in the script

To run this from you terminal do the following:

./usr1_oscgroups_sclang.sh

This will run OscGroupClient and SuperCollider on your machine.

To manually run the OscGroups client binary onto your machine you need to:

open the terminal and to cd to Synergia Github repository

then run the bellow command

./bin/OscGroupClient 10.8.0.1 22242 22243 22244 22245 username pass sccolgroup sccolpass

You need to change the ‘username’ and ‘pass’

Example:

./bin/OscGroupClient 10.8.0.1 22242 22243 22244 22245 john 1234 sccolgroup sccolpass

Run oscgroups in SuperCollider:

To run OSCGroups in SuperCollider you need to install an extension

clone the below repository into your SuperCollider Extensions folder to run oscgroups in SuperCollider:

https://github.com/iani/sc-hacks-redux/

sc-hacks-redux by Iannis Zannos contains OSCGroups classes for SuperCollider (OscGroups and Notification)

More information about running OSCGroups client binary on Synergia SuperCollider help file. (client_sclang_config folder).

Place the startup file and the Synergia folder with the SuperCollider help file (client_sclang_config folder) into your SuperCollider Extensions directory

Recompile class library and boot the server.

Voila!

Now you can switch to Synergia interface to do some collaborative musical live coding

You can experiment with classes for live coding such as BA and sc-hacks

https://github.com/Vasileios/BA

TIP: You do not need to create new files to start coding. You can use the existing buffers usr1_synergia_scws.scd,usr2_synergia_scws.scd, and usr3_synergia_scws.scd instead.

Have fun!!

Windows users

Read the instructions in the windows_installation folder

About

Networked collaborative live coding

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published