I've been playing with VirtualDJ and so far so good. OS2L feels so close to OSC that what I've done is to route the messages to the OSC input in order to get the full capabilities of the OSC input without duplicating everything. It's also handy when you support both OSC and OS2L inputs in your project as you can control the same parameters with the two methods. You can also see the OS2L messages in the OSC input monitor.
By doing so, I've also added more features to the OSC input. You can now control the global sliders, the activation and speed sliders of the grids/groups with an attribute id. That means you can also do that with OS2L. See the screenshot below with the OS2L commands.
And there's also an addition to OSC to provide the formula for the slider. So when targeting a slider directly, you can provide a number or a string that will be put as the slider formula. So you can activate a grid with a fade in by using "fadein(5, 100)" for example.
For OS2L and the btn command, there's a page string parameter that has no meaning in LJ but it kind of makes sense to use it to contain the formula text. And since it can contain text, that means you can do more than the 'on' and 'off' state value and provide a decimal number like "10.53" and LJ will use it correctly.
So at this point in VirtualDJ, I have cues like this:
os2l_button "50.5" "/lj/activations/fx01" -> set the fx01 activation slider to 50.5%
os2l_button "sin(2)" "/lj/activations/fx02" -> turn on and off the fx02 with a sinus wave
os2l_cmd 10 50.4% -> set the OSC channel 10 to 50.4%
etc.
I'll continue exploring but it's pretty fun at this point!
![os2l.png](https://groups.google.com/group/lightjams/attach/992e6c3df86d/os2l.png?part=0.1&view=1)