I’ve been working on some fun stuff lately, automating VJ software using the Open Sound Control protocol. It’s been an interesting experience: OSC is a potentially revolutionary way of allowing users to extend software for live performance.
I’ve been using Resolume VJ software for a while now, it is a good way of performing with live video. The latest version adds the ability to control it remotely via a system called Open Sound Control, a much more modern replacement for the venerable MIDI protocol.
Like all VJs, one of the most important things for me is being able to walk away from my system and get a beer, secure in the knowledge that things will continue to work. The old Resolume had something called “chaos mode“, which would randomly play clips for you. However, the new one does not, so I set out to replace it.
The Max/MSP programming environment is great for doing things like this, and it supports Open Sound Control, so I set out to build some tools.
My first attempt was Resolume CoPilot:
However, Copilot is quite random really, and while it serves for quick beer breaks, I thought it would be interesting to build a much more deterministic tool. The obvious next step was a step sequencer, so that is what I built:
Developing the step sequencer was fun – it ‘s interesting to go beyond basic functionality, and working on making a user interface that is usable in live performance.
I am intrigued by how Open Sound Control is opening up an interesting world of possibilities. It becomes possible to use existing software like Resolume for its fast and robust audio/video playback, while developing custom performance tools that extend it in all sorts of ways. Instead of the developers trying to anticipate every single user scenario, they can focus instead on improving performance, and making it possible for users themselves to develop new features. For example, my interactions with the Resolume developers are now about making additional functions of the program usable via Open Sound Control.