OSC – Open Sound Control.
What the hell is this I hear you cry? OSC is becoming used more and more. VJ’s DJ’s and AV interactive peoples (and everything in between!) are starting to use it. It’s not very clear what it is and how it all works. I found it complicated when I first discovered it. So, this is NOT a how to get OSC working with software A or B just a general overview of what it is and how it works – hopefully in a friendly delivery.
In it’s simplest form, is a protocol which sends numbers from one location to another.
OSC uses an IP address (Internet Protocol address) which means it has to know the address of the computer it is sending to. So, You can think of an IP address as a street name.
So let’s take a theoretical IP address:
We can think of 18.104.22.168 as a street name such as “Victoria Lane”. But Victoria Lane could have thousands of houses on it or a big block of flats, etc. So we need a house number.
After an IP address you generally have a port. A common one is:
Therefore now the address is 22.214.171.124:9001 (note the : its not a . after the 91)
So now we have Victoria Lane, house number 9001.
But perhaps you want to know what room in the house you need? In OSC this is called a channel. Channels range from 1-999
So lets say we want OSC channel 4. Now our address is: Victoria Lane, house number 9001, room 4. Or in OSC talk 126.96.36.199:9001 channel 4.
Computer’s change the IP address every time they start a new network, shut down and re-open, etc. This is a way of safe guarding your machine from attacks and hacks.
How do you find your IP address?
Google: “how to find your mac IP address” it will show you at the top. This is the same for Mac and Windows.
You can however create a static IP address. This is fixed and will never change.
Static IP is generally better for performances as the numbers never change and you are in control. Downside is when you create a static IP you can not connect to the Internet like normal. You are basically creating a Local Area Network. (there are ways but I don’t want to complicate things).
How do you create a static IP?
This can be confusing. Local host is always 99% of the time 127.0.0.1 think of this as a home/default IP.
It’s almost like a feedback loop. It’s hard to explain but you can find out more here:
In’s and Out’s.
The ‘house number’ that we chose earlier is an IN; we chose 9001. But if we want data to be sent back we need and OUT and we can’t go IN an OUT door. They have to be different.
So the OUT port would need to be a number close to 9001. Maybe 9002 or 9005 (anything really).
WHY DO WE NEED AND IN AND OUT?
Say we press a button a TouchOSC app on your iPad. The signal is as follows:
Press button: sends value OUT to 188.8.131.52:9001 on channel 4. Software receives this Value and ch 4 is mapped to a button : the button turns on an effect.
Most apps like OSC will automatically light up and change depending on if the toggle is momentary or toggle.
But if you changed the button on the software using your mouse or QWERTY keyboard you want the iPad app to update so it says in sync. So you can tell 184.108.40.206:9001 on channel 4 to send a message ‘light on’ (or change state – basically replicate a button press)…. but it has to be on a different port.
This is often the case with VJ/DJ’s who have multiple controllers and wanting all the hardware and software to change and keep updated. Such as Touch OSC.
Packets and Strings.
OSC can send either a long string of numbers constantly. Like water pouring down a stream. It has no start and stop and everything travels in one long line.
OSC packets are small chunks of data bundled up in packets/parcels. This is like collecting water from a pond up stream in a big glass, carrying it downstream and then pouring it back out. [excuse the really random story telling – I don’t know where I get these ideas from! lol].
This is only a very simple explanation and the advanced users reading this will be laughing but in a VERY basic format this is all you need to know for now.
Without confusing you, or incase you don’t know it OSC is similar to MIDI/DMX. The values range from 0.0-1.0 and send the data very quickly over WIFI or down cables.
You can read more here:
I hope this helps some of you.