Request: Import OSC addresses/names for new widgets

I am using OSC Pilot to control a character rig for animating for Unreal Engine. It works great and I am looking forward to more development. I need a palette upwards of 200+ osc addressed, dials or sliders.

Building buttons and manually entering the addresses is time-consuming. I’ve looked at the file structure of the .plt files with the intention of programmatically generating a base palette and then organizing, but haven’t seen the pattern.

Could there be a way to import or graft in an XML or text list of the basic factors? Just to get the tedious and critical addresses in. Maybe the import could default to a grid.


workspace: 10
widget: dial
osc address: head_bone_r
name: head_bone_r
osc low: -20
osc high: 20

Alternatively, if there was an import / export function for a selected button set, I could read and mimic that format containing all the factors.


Hey, good idea. Definitely could use some more tools for larger scale UI creation. The .plt file format is actually just straight JSON. So it’s very easy to parse using all kinds of tools. Unfortunately the way the widgets themselves are described isn’t super friendly, where each property is a pair of ID : values, where the IDs are arbitrary ints. E.g


The properties->ID are consistent between versions.
I have been thinking about at least changing these IDs into english names so the file format is easier to read and modify though. If I was to do that change would things be easier for you?

Great, readability would help a lot! It was actually the “10fc7f4c-0708-41ec-bdee-ed9b1b2a4961” strings that stopped me in my tracks. The JSON format is very easy to read, appreciated, however, when I did a file comparison between a blank file and a file with one button, there were differences spread throughout the file. The english id names would be a good indicator.

I also noted that cutting and pasting between two open instances of OSC Pilot was not possible. Building a master palette and pasting individual widgets into another would be the case for that.

That long string is a GUID/UUID, if you just make a new one for each new widget then that that’ll be fine. I think if you use a repeated one it’ll also work and make it unique, but havn’t tested it.

Copy/Pasting between two instances should work. It works on my machine.

Thanks, must have pinned the widgets before attempting to cut and paste, working fine, my mistake.

Understand the majority of the file structure now. Have been able to graft in widgets from generated JSON segments in workspace children sections. Using Processing can generate the JSON for hundreds of widgets with proper overlaid png icons and labels and correct OSC addresses in a few seconds. My mind is blown for the day, it opens a lot of possibilities to programmatically create workspaces…