OSCWidgets- the solution for usable encoders on Nomad

I’ve long wanted to have a set of encoders to sit at the bottom of my Surface Pro while I run Nomad.  It’s humbling to finally “discover” that someone made that tool long ago and I didn’t notice.  It’s called OSCWidgets.  From the GitHub page: “OSCWidgets is open-source software (developed by a combination of end users and ETC employees in their free time) designed to interact with Electronic Theatre Controls products. This is not official ETC software.”  What this means is it’s free, open and not supported by ETC tech support.

I took some time today to make a small encoder window that stretches across the bottom of my Surface (Well, it’ll be on my Surface tomorrow.  For today, it’s at the bottom of my MacBook.). It features a good first draft of encoders I need when my Gaffer needs me to “fly in” and adjust something close to camera.  There is an LED color tab, a Shutter tab, a Move (Pan, Tilt, Zoom and Edge) tab, a CMY tab and an empty tab for me to place things in the near future.  Let’s go through the basics of how to create your own.

Download the software HERE. When you open the software, it assumes a local IP.  I find it much easier with Eos to specify the console IP.  This is done by simply clicking and typing.  Be sure to match your Out port and In ports to Eos.  (Out from OSC, in to Eos, In to OSC, out from Eos.) We’ll return to this later for more instruction.

After a bunch of experimenting, I realized what I was looking for should start with a Window item, which opens a single window with two tabs.

Again- after a lot of fumbling, I realized the interface is edited mostly by right clicking on things.  If you right click on the first tab, you will have the option to rename.  I renamed to LED Colors. If you right click below the tabs in the window area, you have the option to add things.   

Go to Add>Encoders and run out your mouse to choose 9×1 (or whatever you choose.) 

You now have 9 encoders in Edit Grid mode.  Click Done at the bottom of the pop-up floating window.  Your encoders should turn from green (edit grid) to Charcoal Grey.  Lengthen your floating window to the right and it should look like this: 

I’m doing an LED Color tab here, so I plan to put in Red, Green, Blue, Amber, White, Empty, Color Crossfade, CCT, and Tint.  Right click on your first encoder and Choose “Edit 1”. 

In the pop up window, you will edit the Label and OSC Output.  For encoders, all OSC Output commands (called “arguments” in OSC language) start with “eos/wheel/{attribute}”. 

Click “Done” at the bottom. It’s time to test this encoder, but to do that, let’s go over the setup in Eos.  In the Shell (before you sign in, choose the option {Settings}), go to Network and make sure Wifi Remote and UDP Strings and UDP OSC are both turned on. 

Click {Accept} at the bottom of the screen, and sign into Eos as Primary or Offline.  Once in, go to Setup>System>Show Control>OSC.  Make sure OSC RX (receive) and OSC TX (transmit) are both on.  Notice the OSC UDP RX and TX port numbers.  These compliment the ports in the setup are of OSCWidgets, so either make them match or use your own numbers as you see fit. 

Now you can test the encoder by selecting a light that has a Red emitter, and then moving the encoder.  OSC Widget may need to be restarted after changing the IP address, so if it doesn’t work the first time, give that a try.

Next, work your way down the line of each encoder and set the OSC Output to make it control what you want.

Helpful tips:

To add another encoder, you just need to right click on the encoder and edit the OSC Output command to match the name of the Eos attribute.  HOWEVER…

If you want to control something like Color Crossfade, you will need to enter “eos/wheel/color_crossfade” under OSC Output.  Eos will get confused if you don’t use the underscore between words of an encoder attribute, so remember this.  

In case you want to control “Gobo Index/Speed”.  It needs to be change to “gobo_index\speed”.  Notice the reverse slash.  This is because forward slash is a divider in the OSC command language.

My OSCWidget came out quite well.  I have all the tools I need (at the moment) to effectively edit on the one with my Surface Pro and room to add more function when I need it.  I couldn’t be happier and am very excited to test it on set this week!

What open source software do you use to solve programming problems?  I’d love to hear what helps you in the comments.


  1. Thomas+Ditzel - Reply

    Hi Mark

    Great post. I had forgotten about OSCWidget so trying again.
    Have you had any luck of getting data back from EOS ( Labels )
    so you can see the status off encoders and faders ?

    And have you stumbled upon a updated list of OSC EOS Commands ??

    Kind regards


    • admin - Reply

      Hi Thomas,

      I’ve not yet attempted to get data back, since my goal was pretty specific this time. I’ve also not come upon an updated OSC command list, sadly. If you figure out how to poll for labels (there is a label function, but I haven’t played with it yet) please let me know!



Leave Comment

Your email address will not be published. Required fields are marked *