Force Widget Value

Sometimes, a set value of a widget such as a slider, does not get actively sent to the receiving device unless it gets changed in realtime by a mouse movement or controller. Can GPscript mimic this behavior? I am trying to set program values (1 - 13) for each rackspace or song to be sent to the EmuVst (VST3) lighting controller using the DMX USB Pro interface. It works if I move the slider, but not if I just switch between rackspaces having sliders set to different values. In the “Value” tab of the Widget Properties, I have tried ticking the “Also Reset of Rackspace Activation” thinking that would do it, but no joy.
I have also tried the “Refresh Widgets from Plugin” option on the widget itself.
Perhaps I am missing something.
MacBook Pro Ventura
GP 4.8.2
EMU 23.12.14.3

Did you set ignore variations in the widget properties?

No I didn’t. Trying that didn’t help.

I’m not sure what you think should be happening here — when you switch from one rackspace to another, the widgets in that rackspace are already set to the correct value for that racksace and plugins in that rackspace are already at whatever value they were at when you were last in that rackspace.

The Reset on Rackspace Activation will reset a widget to a specific value if and only if the value was changed when the rackspace was last active. If the widget has the same value, we don’t bother to send it again.

The problem I think you’re having is that you have a single external device that is being changed from “somewhere else” (i.e, some other rackspace) and so a widget in a different rackspace has no idea that an external value has changed.

What do you mean by “program values”? Do you mean MIDI Program Change values? If so, then presumably you have a MIDI Out block in each rackspace. If that’s the case, why don’t you just set the program change value in the MIDI Out block directly? Then whenever you switch to that rackspace, the program change value will be sent out

“Program values” only meant to set values for each rackspace.
This issue may be due to the limited functionality of the EmuVst. This widget has two audio inputs and a MIDI In. It only has parameter values of Block, Program, and DMX sliders for each of 256 addresses. It only seems to respond to “changed” values which the widgets don’t seem to send actively by just switching their values. The DMX USB Pro is not recognized as a “device” in the MacOS Audio MIDI Program and so GP doesn’t see it as an external device either. So, while a MIDI out widget to send a PC makes sense, they want to only send to my keyboard controller or OSC. Would OSC be a solution? Or, is there a parameter in GPscript that can “bump” a widgets value upon activation so say it changes a slider value of 5 to 6 then back to 5?

I still don’t understand exactly the setup.

What is EmuVST and what is DMX USB? Are they communicating with each other? If so, how? I assume EmuVST is a plugin so does it have host parameters that you are trying to map to widgets? Is the EmuVST in every rackspace or is it just in the global rackspace?

If it has host parameters, then you could forget about using a widget and simply use a GPScript to set the parameter value directly - just respond to a Rackspace activation and call SetParameter

DMX USB is a small box that sends DMX info to lights from computer via USB. EMU is a DMX controller program that installs a VST that can talk to the EMU application.
I have added the EmuVst widget to every Rackspace. In each panel, I create a slider that sends a value to the EmuVst to alter its “Program” parameter.
I am somewhat new to GPscript but have some programming experience (JS, PL/SQL, PHP, etc.) but I often get stalled on syntax. Do I need to name the EmuVst widget in the advanced tab before refereincing it? What would a SetParameter line look like if the widget was named EmuVst, the parameter was named Program and the value was 6? I’ve vbeen looking at the GPscript docs but getting stuck. Thanks.

Well then GPScript should be pretty trivial for you to understand — have you actually looked at the language manual for GP Script?

Do you mean the EmuVST plugin? (and presumably you also added a widget to access the parameter)

Assuming you do mean that, then one way to go would be as follows.

Forget about the widget — give the plugin a handle (I just called it EmuVST) and respond to the Activate callback

Var
   EmuVST : PluginBlock

// Called when rackspace is activated
On Activate    
   SetParameter(EmuVST, hostAutomationNumber, valueToSend)  
   // Replace the two names with the appropriate hostAutomation parameter number
   // (which will be the same in every rackspace) and the valueToSend (a number between 0.0 and 1.0)
   // which will control the value you actually want to send out
    
End

NB - please be aware that we do not offer formal support for GP Script programming.

That was what I needed. Thank you very, very much.

I take it that script worked?