ofxRemoteUI addon

I’ve been working on a UI to control params from outside OF.
It’s been bothering me how most UI’s are drawn inside OF, and can substantially affect the framerates as you tweak params; which I find very counter-productive.

So I decided to make an external UI, and feeling quite comfortable with native OSX programming, I chose to make a Cocoa app to control the params. This of course meant remote access, client / server architecture.

ofxRemoteUI allows you to expose params (float, int, string, bool, enums) to the network (ofxOsc) through very simple calls.

The OSX client allows realtime search within your params, grouping, color coding, it supports presets (stored with your app), and it works both ways; you can send param updates from the client to your app, or read app values from your app to the client.

It allows sharing params from multiple classes (shared instance design pattern + easy to use macros) so that you can grow your code as messy as you need it to be.

Have a look and let me know how you like it!

https://github.com/armadillu/ofxRemoteUI

2 Likes

Hey guys, I added support for binding MIDI controllers and HID joysticks a while ago too! I also added a basic ofxUI based client that works on Windows and iOS.

1 Like

Still adding features to this; it now supports bridging/syncing to a ofParameterGroup.

This means you can take any app that uses ofParameter and with two lines sync those parameters to RemoteUI parameters, which allows you to use the OS X ofxRemoteUIClient.

As the OSX ofxRemoteUIClient allows you to map parameters to MIDI Controllers/Joysticks, this ultimately allows you to bind any ofParameter to any MIDI Controller and/or HID joystick input.

Hi.

i love this addon. it is really helpfull.

i face the problem not having an iOS device for a client… using ubuntu-touch restricts quite a bit :wink: but anyways…

what do you think to add a webserver to RemoteUI, so we can control oF via a browser. with the midi-api it would be even possible to add midi support via a browser.

it should be quite straight forward to add a http-server and throw together some javascript to draw UI.

cheers
io

hey @inx,

I’m currently working on this. it is independent of ofxRemoteUI. just synching ofParameters via json to “any” UI. the example uses datGui for the web UI and ofxLibwebsockets for the communication.

ofxSyncedParams

I’ll add more examples / details this week. Give it a try and let me know what you think or if you have any issues/questions.

Best,
Felix

Hi.

sounds cool.

i tried to compile example example_datGui, but failed.
used current master and its ofxJSON together with https://github.com/labatrockwell/ofxLibwebsockets

some missing header in ofxLibwebsockets makes it not compile…

cheers
io

Hi @inx,

I think this is caused by ofxLibwebsockets also shipping jsoncpp (like ofxJSON) - as Dan pointed out here https://github.com/labatrockwell/ofxLibwebsockets/issues/27. Try to delete the libs/jsoncpp folder in ofxLibwebsockets. As long as you also use ofxJSON this should work and not cause any trouble.

I should mention this in the readme.

Hope this helps, if not what error message do you get exactly?

Hi.

ok, removing jsoncpp from ofxLibWebsockets helps.
there is also a dependecy for ofxGui in the addon… could you mention this as well?

starting the example-html gives me:
in firefox (39):
ReferenceError: MozWebSocket is not defined
in Safari:
WebSocket network error: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)

where would i set the host and port?

thanks
cheers
io

hey @inx,

sorry for your troubles. I’ll look into this! I added it as an issue on github: https://github.com/fx-lange/ofxSyncedParams/issues/9 so we can continue figuring it out there.

edit: btw it’s solved for firefox! safari I don’t know. don’t have a mac for testing.

best,
felix

hoi @fxlange

as mentioned in the issue: works on osx with ff, chrome, safari.

it even works with ubuntu-touch :slight_smile:
there seems to an issue with the color-picker (ubuntu-touch) and sliding the sliders is a bit tricky…

cheers
io