It’s a little bit of a mouthful, isn’t it?
I’ve been working on this for the last few days. It basically takes Open Sound Control (OSC) packets- from any number of clients- which specify a DMX address, value and fadetime. The server is written in Processing, and uses the oscP5 library. Right now it uses the ENTTEC USB DMX Pro adapter to talk to DMX via serial comms, plus an excellent DMX class published on the Processing forums.
Why would you want this? Well, it means you can use anything that supports OSC to control your lighting and theatrical effects. Beat-syncing music is a piece of cake, controlling from an iPhone/iPod Touch likewise (Just write a little webapp and you’re good- or use a tool like TouchOSC). It’s stable (I threw strobe commands at all 512 channels for 12 hours and it was still running just fine afterwards), works a treat, and is perfect if you’re writing an OSC app and want a quick and easy way to hook into DMX controls.
The only documentation is this: It expects a message to /set with typetag iif, in the format address (1-<unisize>, default 128), value (0-255), and fadetime (0.0-n, where n is a large float). Other than that, run and enjoy. I’ll be throwing the odd update to this up but I expect the API to remain the same. I’m using this for a project where we want to do some interesting things with a large number of LED parcans very quickly, so performance is fairly vital- it’s designed to be quick, but I’m not Java genius, so suggestions are welcome.
Using the Ruby OSC library, you can whip up a simple client in seconds:
-
c = OSC::UDPSocket.new
-
m = OSC::Message.new('/set', 'iif', 1,255,0.0)
-
c.send m, 0, 'localhost', 9000
This sets channel 1 to snap on. Easy, eh? I’ve not tested this with bundles but it should work fine.
You can grab the source (Processing required to run) over here on Github.
I’m under a bit of time pressure at the moment but might end up writing this again in openFrameworks. It’s C++, so much faster, and should be more flexible in terms of sheer speed. Sub-second strobes and so on should be attainable. My next hardware project? Bodged strobe controller for Arduino….
[...] ProscDMX [...]