Page 1 of 1

A Space in OSC

Posted: Wed May 20, 2015 9:00 pm
by nizer
Several of LX Consoles command line commands require a "SPACE". Like:

sub: 1@100

The Lemur Software removes the "SPACE" and makes it sub:1@100

Any work around.

Posted: Thu May 21, 2015 4:10 am
by admin
If you are sending commands via the address pattern, the space shouldn't matter: /cmd.lxconsole/sub:1@100. Earlier versions of LXConsole were more strict about insisting that the command line look exactly like it does when created with the keyboard. The space in the command line is actually removed when it is interpreted. So, the space is optional.

A space is not a legal character in an OSC address pattern. Which is probably why the Lemur software removes it--if that is what it does. QLab interprets a space in a string for a custom OSC message as a delimiter for an argument. With QLab, /cmd.lxconsole/sub: 1@100 sends with the address pattern /cmd.lxconsole/sub: and a string argument "1@100"

OSC subs

Posted: Mon May 25, 2015 2:58 am
by nizer
So no matter how much I play with it, I can't get a sub to trigger with /cmd.lxconsole/sub:1@100 via OSC. I can do it via QLab with /cmd.lxconsole/sub: 1@100

But both Lemur and TouchOSC don't work. It's no big deal except I am trying to make a redundant system were I don't need QLab and need to trigger a sub (in my case a fogger).

Posted: Mon May 25, 2015 2:58 pm
by admin
This is fixed in the latest build 3.8.3 (8825.1).

When you posted the initial issue, I tested with QLab and found /cmd.lxconsole/sub:1@100 to work properly. It turns out that it would seem to work when "sub:1" was the last command. But that was because it was only doing the @100 with its ability to repeat a command changing only the @level part. It was, in fact, not working properly due to a small difference in how internal and external commands are parsed.

LXConsole's use of the OSC address pattern as a way of conveying content is not exactly envisioned by the standard. But it works because of OSC's flexibility. The reason for having the ability with /cmd.lxconsole and /key.lxconsole based patterns to convey content through the address is for zero-configuration control, ie. you don't have to add an OSC action to LXConsole for it to respond to these types of messages.

There are two issues with using the address pattern in this way. First, a space is not allowed. But, that's OK, LXConsole should no longer require spaces in commands. The other potential issue is that "#" is also a special character to OSC. This is in the specification but does not appear to be a problem in practice. "#" is used as the shortcut key for the dimmer: command and is used by the TouchOSC and Lemur remotes with a /key.lxconsole/# address pattern. This is not technically legal but it works.

As Always a great response and a job well done.

Posted: Mon May 25, 2015 4:53 pm
by nizer
I thought I was going insane trying to get this working.

Thanks for bring me back to sanity. I use that term loosely. :-)