OSCQueryProposal icon indicating copy to clipboard operation
OSCQueryProposal copied to clipboard

Listen to ALL server value updates

Open benkuper opened this issue 4 years ago • 7 comments

Hey, thanks for this reference ! I guess a common case would be to just want to listen to any value change from the server, not only from external OSC control (as stated here https://github.com/Vidvox/OSCQueryProposal#optional-bi-directional-communication ), but also from internal modification those values (autonomous behaviours and whatnot). I didn't see anything mentioning this possibility, only the LISTEN method but that only support listening to a particular path, and not sure the good way to send one message for ALL parameters :)

Thank you !

benkuper avatar Jun 21 '20 09:06 benkuper

Hi!

I too currently depend on LISTEN to subscribe to updates on the Server's state.

I'm not sure a method to listen to ALL would be useful with real-world large media software. In my current use-case, I want to record all the received messages, and then allow editing these and playing them back.

However, many messages are such that the software might be transmitting them, but would react badly if it received the same stream back verbatim. Resolume's "current time in clip" comes to mind for example (albeit Resolume doesn't use OSC Query). When I record and play back streams from Resolume, it really doesn't like getting that value back the way it had sent it.

So what I in this case need is the subset of messages that a server not only can transmit, but also would want to receive back just the way it sent them out. I guess that would mean the set of all messages with ACCESS that is both GET and SET, for example.

While I'm a bit uncomfortable creating potentially thousands of callbacks (if using libossia...) to listen to every single parameter with LISTEN, some way of specifying a subset is still needed, and if I have to iterate over all parameters anyway to see which I do and do not want, I think LISTEN is fit for purpose.

Best, Ilias B. (www.thewizardofosc.com)

onar3d avatar Aug 31 '20 18:08 onar3d

At least in terms of "user API", maybe it could be possible to enable support for OSC 1.1 wildcard pattern over LISTEN queries as a possible extension ? This will save the need for sending 2000000 LISTEN messages if one just wants to listen to a whole tree or subtree - e.g. if I'm not mistaken, //is a magic address that matches every OSC node recursively.

jcelerier avatar Sep 01 '20 19:09 jcelerier

OSC wildcards are extremely powerful indeed.

I rarely see them used, and am yet to support them, I really should.

I think what you propose is a great solution, a straight forward API, very powerful, concise and consistent with the standard!

onar3d avatar Sep 01 '20 19:09 onar3d

That seems the best outcome for this issue indeed simplicity and coherence together :)

benkuper avatar Sep 01 '20 20:09 benkuper

if I'm not mistaken, //is a magic address that matches every OSC node recursively.

I guess that would be //* isn’t it ? ```//```` is just doing path-traversal and still needs an address after, IIRC

bltzr avatar Sep 02 '20 14:09 bltzr

yep

jcelerier avatar Sep 02 '20 15:09 jcelerier

Hello, any update on that ? I'm implementing LISTEN on Chataigne's side and it would be super good to have a listen at least for a hierarchy (like /myGroup/* )

benkuper avatar Oct 21 '20 15:10 benkuper