Keep in touch: Twitter Github, Flickr, Tumblr, SoundCloud, Email. Thank you for your visit.

OSC (Open Sound Control) is a protocol on top of UDP commonly used by audio applications. It could be seem as a /MIDI evolution/. The objective of osc-web is to make possible to send and receive OSC messages on the Web browser.

With this browser capability we could do interesting things like:

Some weeks ago I was asking for awesome people on AudioXG about that and we come with some options:

  1. create a Firefox extension using nsISocketTransport
  2. create a kind of HTTP proxy (thanks @corban, @F1LT3R, @humph and yury!)

The first one works but seems to be a security hole (as yuri saids, no one wants UDP connections on its browsers). Now I'm trying the second alternative, using node.js and socket.io to create a bridge between OSC controllers/applications and the browser.

Prerequisites

Installation

First of all, download and install nodejs from http://nodejs.org, then:

$ git clone git://github.com/automata/osc-web.git
$ cd osc-web/
$ npm install

Using

Run the bridge app on your machine (localhost):

$ cd osc-web
$ node bridge.js

An example HTML is avaitable at web-side/app.html. Open it in your browser:

$ firefox test-app/test-app.html

Now you can run your favorite OSC app/device and send OSC messages through port 3333. Those messages will be send to the HTML page by WebSockets.

Configure your favore OSC app/device to listen to OSC messages coming into port 3334. Any message sent by app.html (hit the button!) will be sent to your OSC app/device.

So, you can face the HTML page as an "OSC node", listening to messages on 3333 and sending messages to 3334.

Take a look at osc-side/ to examples of OSC apps.

Projects using it

(2011) Experience Design class project: http://codes.nevercool.com and https://vimeo.com/album/1636910

(2013) Shapes (Keely Honeywell) at Laboratory! by Alan Chatham: http://laboratoryspokane.com/2013/10/30/005/ and source code at https://github.com/AlanChatham/005-Values

References