hedgehog/software/ AnythingCanControlAnything


To see what I mean by AnythingCanControlAnything, consider a slider in an application, say the brush width in Gimp or the font size in LibreofficeWriter. If I have an endless rotary controller on a control surface somewhere, call it Dave-the-knob, then Dave-the-knob generates events of the form 'Dave-the-knob turned clockwise by 3 clicks' or similar. And it makes sense to say 'move the brush width slider in Gimp right by 3 clicks', whatever 'clicks' means. Essentially, any slider or knob can be potentially controlled by any controller on any control surface. The challenge is getting everything to talk to each other. For it to be Universal, it has to be ubiquitous, and sufficiently expressive to capture all the the kinds of events you want to send.

As for a protocol, for many things, OSC suffices. So a first aim is OscEverywhere. Then look at the use-cases where OSC isn't appropriate. For example: