OSC on Web

Introduction

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:

  • Connect OSC supported controllers (devices) to the Web browser
  • Use the Web browser as a controller to OSC supported applications (like Puredata, SuperCollider, Max/MSP, …)
  • Create a Web OSC proxy where people around the world could connect yours OSC controllers or applications together

Some weeks ago I was asking the awesome people on AudioXG about that and they came with some interesting suggestions:

  1. create a Firefox extension using nsISocketTransport
  2. create a kind of HTTP proxy (thanks @corban, @F1LT3R, @humphd 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

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

Using

Run the osc-web server on your localhost:

$ cd osc-web
$ node osc-web-server.js

Now open the client:

$ firefox test-app/test-app.html

Plug some OSC device and start sending OSC messages to port 4343 (localhost) and receiving on the specific port your OSC device or application commonly uses.

Related Solutions

  • npTuioClient: a NPAPI plugin implementing a TUIOClient clone
  • PookyTouch: similar to npTuioClient using Java-JS LiveConnect bridge
  • lily's approach: some good notes, uses LiveConnect
  • MaxJax: OSC bridge using Python Twisted (just sending OSC)

References