RabbitControl for Max

Ingo Randolf's icon

Hello.

I'm happy to announce the release of RabbitControl v1.0.4 for Max.
RabbitControl is a protocol for remote-control and allows you to control your patch from another computer or over the internet. More information:
http://rabbitcontrol.cc/
https://github.com/rabbitcontrol/RCP

Until it is available in the package-manager you can download the package here:
https://github.com/rabbitControl/rcp-flext/releases/download/v1.0.4/RabbitControl-max-1.0.4-macos-win-x86_64-M1.zip

To use the package please extract the zip-file to e.g: ~/Max 8/Packages/

-
Rabbithole is an additional service which allows you to control parameters over the internet:
https://rabbithole.rabbitcontrol.cc/

Happy to get some feedback. :)
Ingo

Wetterberg's icon

this looks great!

I'm trying to figure out how this would incorporate into a system that is already set up for a lot of OSC. Do you have any thoughts on this? Basically what is different between the two methods, since I'm not that smart at network communication as such. Is it that the server can publish a list of the parameters that are exposed, so you can pull them from an application? Stuff like that, for the novice in me. I very much embraced the "dumb terminal" nature of OSC, and I guess that's made me a bit dumb as well. I see it as a sort of cross between MiraWeb and OSC, if that makes sense?

Also, if you get a chance to make a tiny blog post like the one that exists for Markus' TouchDesigner implementation, I imagine that would be very helpful to new users.

Ingo Randolf's icon

Generally I would say it depends on the use-case. OSC is great for what it is.

The main difference to OSC is, that RabbitControl parameters can be discovered. The client uses this information to create an UI to control the parameters. That is the default use-case for RabbitControl.

In this case it is similar to MiraWeb, but uses a binary protocol and is not based on JavaScript. (I don't know MiraWeb in detail)

RCP tries to pack small, packages for value changes are usually much smaller than OSC messages.

If your use-case is to remote-control your patch, then I think it is quite straight forward to switch to RCP: replace the "/" in your OSC addresses with a space, prepend 'expose f' (choose your datatype) and expose your parameters by sending this to [rcp.server]. (RabbitControl for Max does not support lists at the moment.)

Whenever a parameter changes, the server object outputs this parameter on its left-most output similar to OSC-objects and allows to [route] the address.

Use the [rcp.client] object to connect to a RabbitControl server and receive all its parameters.

RabbitControl started as an open specification. Besides being integrated in Touchdesigner, it can be used by now with VVVV, OpenFrameworks, OpenRndr and Pd.

I hope that the help-patches can be a start to work with RabbitControl.