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.
I like my gadgets. I am admittedly a bit of a gadget freak… but I don’t often actually buy them. Normally because they are expensive and I know deep down I won’t use them as much as my mind believes I will. But the Leap Motion is different.
The Leap Motion is a USB powered hand/finger tracking device. Think of it as an xbox kinect for the hands perhaps? It’s made for Mac and Windows too which is great.
The into video explains the basics very well…
I have bought one (second hand off eBay for £40 I might add) to use at work and at home. I have a few ideas for it and if nothing else will be a handy (pun-intended) gadget on my office desk – it’s already plugged in actually. It’s small sleak and sits flush to my MacBook Pro. It’s a shame it’s not wireless as it takes up a USB plug but I have a powered hub on my desk.
How am I going to use it? To be honest I have no concrete ideas. There are a few Isadora users who have made a few OSC/MIDI related actors to control Isadora scenes which I am going to look at and I am sure I can find a few uses in that area. I also like the idea of using it for generate/live painting in a VJ context. Will I look an idiot waving my hand around at a gig to make stuff appear on the screen? – probably! Do I care?…. probably! But we shall see.
I also want to see if it can be used in a commercial sense. At the museum and art gallery where I work we have interactives for visitors but people, for some reason, LOVE to hack, break, pull, snap, spill drinks, etc, etc on keyboards, mouses, touch screens, etc. Now this can’t be helped all the time of course, but there is a tiny percentage who do it on purpose, I’ve seen them! Maybe a Leap Motion placed under some perspex (military grade?) could replace the keyboard and mouse idea? Problem is the learning curve! How will people know how to move their hands or even to put their hands above the device? Similar to the Kinect sensor it’s not a recognised Human Input Device (HID)
So – I will keep you posted. Minority report… Yeah! Let’s do it!
Do you own one? Let me know how you are using it. I wanna know… Let’s talk!
Approximately 4 months ago a new discussion came up on the isadora forum regarding Duration a ‘timeline for creative coding. Create live performances, interactive installations, and music visualizations by synchronously composing servos, lighting, and projection’ At first I will admit I though; thats nice, a cool tool and one to remember. Bookmarked the website and that was that.
A few weeks later whilst going through the Isadora forum I spotted that this discussion was starting to develop more and more and as I helped (a tiny amount!) to unwrap the OSC capabilities was it then that I though just how powerful this could be with Isadora.
As you can see in the post it was March when I commented on just how powerful this ‘time’ business could be. Now I know first hand that Isadora was not originally made not to conform to ‘normal’ time, let me explain… Reading Marks paper/work and talking to him first hand on a fair few occasions; Isadora works in percentages (%) because the time aspect is almost irrelevant as its a live, real time performance software. It troubles some users at times, but of the 9+ years i’ve worked with Isadora it has never stopped me doing anything. In fact eliminating the time factor has made things a little less complicated for me. Instead of triggering the next ‘thing/action’ at 1 minute and 29 seconds you just trigger it at 99% (if the video was 1 minute 30 seconds long for example) The only time (pun intended!) that it causes me trouble has been dialogue between dancers or actor who are using the end of a track or video as a cue to walk of stage…. at 1 minute and 29 seconds!
So anyway. Duration. Duration can, is, going to, might, change Isadora and turn this perception on it’s head; because it can control Isadora using a *drum roll* timeline. It does this by using OSC and the timeline can be anything from 1 second to days upon days, weeks, a month – ideal for instillation and commercial work.
This means you can create your Isadora scene(s) and then using a few OSC listeners and if you are clever like the guys on our forum, you can create your own users actors. Thus; playing back your Isadora stages in order over a fixed period of time. Because Duration is obviously a software it can, doesn’t have to be, be looped. So there actually is no end point.
There is also Iannix; but its more more complicated, but same principle. http://iannix.org/en/index.php
So maybe Isadora will no longer need a space to jump to the next scene? Maybe setting up lots of complicated MIDI triggers, DMX triggers and HID triggers will be solved once a show has been sequenced? But does it make it boring, too easy? It’s not really what Isadora is about but the fact that you can do it now is nice. And who am I to say it’s boring, if it’s what the job requires then do it I guess.
Duration and Isadora, working together, control time – a new paradox?
A very basic tutorial on getting OSC data into Isadora from Synapse.