The OscGroupServer running on this site is free to use for experimentation and jamming. This guide should get you started. If you want to suggest changes to better the guide contact me at nikk.ch@protonmail.com.

This guide is written for UNIX systems. For windows read the repository of Ross Bencina.

Quickstart

Compile

git clone --recursive https://github.com/loopyNid/oscGroupNotes.git
cd oscGroupNotes/oscgroup
make

Run and connect client to server

Replace username and password with a username and password of your choice and then replace groupname and grouppassword with the groupname and grouppassword you decided on with your friends.

./bin/OscGroupClient selfsimil.ar 22242 22243 22244 22245 username userpassword groupname grouppassword

For a more detailed guide go to the How to use section.

Use of the OscGroupClient

After the OscGroupClient is connected to the server you are ready to use software (Supercollider, MaxMSP, pure data, etc.) to send and recieve osc messages from the rest of the oscgroup.

How to use

Step one

This quickstart guide is made to connect to the oscGroups server and play, jam and experiment with your friends. So first of all run these commands in a terminal:

git clone --recursive https://github.com/loopyNid/oscGroupNotes.git
cd oscGroupNotes/oscgroup
make

After these commands are run we will have a new folder inside of the oscgroup folder called bin. Inside you will find two executables. One is called OscGroupClient the other is called OscGroupServer.

Next we will run OscGroupClient to connect with the server. To do this run the command beneath inside the oscgroup folder.

./bin/OscGroupClient selfsimil.ar 22242 22243 22244 22245 username userpassword groupname grouppassword

The arguments of the OscGroupClient are:

servername
an internet name such as oscgroups.iua.upf.edu or an ip address such as 193.145.55.19, in this case its selfsimil.ar
serverport
the udp port which the server is listening on, the server defaults to 22242
localtoremoteport
the local port used to connect with the server and to other group members.
localtxport
this is the port which OscGroupClient listens to and forwards to other group members. direct your OSC traffic to this port.
localrxport
this is the port which OscGroupClient forwards traffic from other users to. you should configure your OSC application to listen to this port.
username
a unique user name used to identify you with other clients.
password
a password which is used to try to make sure that no one else pretends to be you on the server. this isn’t secure but it helps.
groupname
a name that all group members agree on, like a user name it should be unique.
grouppassword
a password for the group. users without the correct password won’t be admitted to the group.

If you would like to run your own server look at the Ross Bencina repository

Step two

Now with the client running you are ready to send and recieve osc messages from the rest of the oscgroup. As you will see in the arguments of the OscGroupClient you can now recieve osc messages at port 22245 and send messages to port 22244.

You should at this point check the documentation of the software of your choice.

Supercollider

There is a solution for supercollider that clones the state of every scsynth server to every other in the oscgroup. You can find it in the sc-hacks-redux repository of Iani Zannos. [it is inside the classes/OscGroups/ folder.]

What is oscGroups

Excerpt from oscgroups readme file: To use OSCgroups, a group of collaborators (or processes) each pick a unique user name and password, and all agree on a shared group name and group password. They then each run an OSCgroups enabled client which connects with a server to retrieve the names, ip addresses and port numbers of all other group members. This information can easily be refreshed over time allowing dynamic group membership, this also supports situations where ip addresses may change. Once an OSCgroups client has the list of user names, addresses and port numbers it could do a number of things, for example it could implement message forwarding to named endpoints (i.e. always send these messages to user ‘fred’ no matter what his address is) or to multicast messages to all other members of the group.