VDMX FX - UI item drop down list

Is there a way to create a VDMX UI drop down list for a Vuo FX?

I want to create an FX with a drop down list containing the following selectable values to pass to vuo.layer.make / Anchor:

top left, top center, top right, center left, center, etc.

Cheers,

Michael.

You mean like a VDMX input that controls the Anchor ? Checking the supported Vuo ↔ VDMX ports, Anchor is not one of them yes. What about making an Integer list that would be mapped to a select node ? (but you’d been missing the anchor names though).
Here right-click the published Integer list with a max. set at 5.
Joined comp

Select Anchor Integer.vuo (1.51 KB)

Hi, yes I worked it out in the end using vuo.list.get and the anchor function works (max set to 9). But the UI item is a slider which is ok for the short term. VDMX supports pop-up buttons for Quartz Composer so I guess it should be possible for Vuo. I will submit a feature request.

Ah yeah, get item from list is even better than select, well done.

Yes, suggest, but suggest what ? Just support for layer anchor ? Or support all Vuo data types ? Or a drop down that would accord to a list, whatever the port type ?

Or maybe on Vuo level there is still to be done. Like maybe a related feature request would be Editor support for dictionaries (lists of key/value pairs), there you could pair the layer anchor (or whatever other data type) with some name text list and then ask the VDMX team to create some kind of “List Input Selector” (for text at least, or more ?) ?

On a short-term workaround mode I was wondering if some already supported feature could be used, but from the VDMX doc I don’t really see any, except maybe “Image-type inputs will be represented in VDMX as a pop-up button with a list of all available video sources (other layers, video inputs, syphon sources, etc).” but I don’t understand what that means. I wondered as far as “maybe it would be possible to create some fake image/video sources/names, map those, and use this pup-up button” ?  

1 Like

I think in the short term a feature request on the VDMX side for support for Vuo UI pop-up buttons would be a good addition. VIDVOX just announced that are waiting for Vuo v2 to get to a stable release and then it will be upgraded in VDMX so we might see changes at that point.

1 Like

Yeah I would really love this feature in VDMX, I’m going to contact them and help them work on it.
They have the support for Pop Up Buttons in ISF for Input Ports that are published as Long (Integer) as long as they have
additional metaData.

"INPUTS":[
		{
			"NAME":"popUpButton",
			"TYPE":"long",
			"DEFAULT":1,
			"VALUES":[
				0,
				1,
				2
			],
			"LABELS":[
				"red",
				"green",
				"blue"
			]
		}
	]

Here’s a simple Vuo Composition with a Wave Node with it’s Wave Type port Published as WaveMenu

From the Vuo File here’s a portion of the code:

PublishedInputs [type="vuo.in" label="PublishedInputs|<WaveMenu>WaveMenu\r" _WaveMenu_type="VuoWave" _WaveMenu_menuItems="[\{\"value\":\"sine\",\"name\":\"Sine\"\},\{\"value\":\"triangle\",\"name\":\"Triangle\"\},\{\"value\":\"sawtooth\",\"name\":\"Sawtooth\"\}]" _WaveMenu="\"sine\""];

Here’s the code reformatted a bit:

PublishedInputs [type="vuo.in" label="PublishedInputs|<WaveMenu>WaveMenu\r" _WaveMenu_type="VuoWave" _WaveMenu_menuItems="[\{\"value\":\"sine\",\"name\":\"Sine\"\},\{\"value\":\"triangle\",\"name\":\"Triangle\"\},\{\"value\":\"sawtooth\",\"name\":\"Sawtooth\"\}]" _WaveMenu="\"sine\""];

And Cleaned Even More (Removing Escaped Quotes:

PublishedInputs [
 	type="vuo.in" 
 	label="PublishedInputs|<WaveMenu>WaveMenur" 
		_WaveMenu_type="VuoWave" 
		_WaveMenu_menuItems="[
				{"value":"sine","name":"Sine"},
				{"value":"triangle","name":"Triangle"},
				{"value":"sawtooth","name":"Sawtooth"}
			]" 
		_WaveMenu="sine"];

There would just have to be a little bit of reparsing on the VDMX Side to

  1. Recognize that the Variable has the _menuItems property.
  2. A) Either build the arrays for the expected “LABELS” dictionary item and the “VALUES” dictionary item
    B) or it would be just as easy to iterate thru each of the _menuItems, get it’s “name” value and it’s “value” value (or may have to create an integer here)
    and build up the pop Up Menu Items for each one

I can see there being a little bit of incompatibility regarding VDMX wanting the property to by of type “long” (VuoInteger) but maybe if it doesn’t recognize the type and finds the _menuItems Property it can adjust.

Also the values that return from the Pop of Menu from VDMX I believe are usually Integers,
So would still need to use the List Select which using the Integer (also VDMX usually works on 0 based arrays)

I’ve working around all of this right now by building a separate Surface Control in VDMX with popUpButtons.
I have two pop Up Buttons

  1. for Wave Type selections, publishes Integer
  2. for Period selections, publishes as String (my menu only contains items 1, 2, 4, 8) so I couldn’t translate the integers properly

for the Wave I receive the integer value, adjust it for non zero starting array, select from a list of WaveType then patch to the WaveNode (whew)
for the Period I just patch directly to the Period input port and it will bridge from Text to Real for me.

this whole process could really be simplified quite a bit.

I also am going to look into possibly build a custom input Port Type.
Then I publish they popUpButtons values via OSC as a String.
The in my Vuo Comp once I receive the OSC String… I connect the value to  

Have a look a some progress i’ve made here

External App Pop Up Menu

1 Like