Widget read out reflects displayed plugin value

I have a text widget mapped to the pitch bend parameter of a plugin which, in its GUI, can be adjusted from 1 to 3 semitones. Using the [value] tag in the caption box returns values from 0 to 1; eg. 2 semitones = 0.5. My understanding is that the plugin does not necessarily send the displayed value to GP and this is what is happening here.

Is possible to catch, modify the sent values, and display them via scripting? Would someone be able to suggest a solution please?

Thanks

Which plugin do you use? This would be a very helpful information!

It is the UVI Workstation with Acoustic Samples VHorns.

1 Like

You should report this to them and ask them to provide a Text version of the parameter marked in semitones.

Have you tried not to use a text widget but rather (say) a knob?

I don’t think that would matter — the plugin has to provide an explicit implementation of getParameterText in the desired units. All our widgets use that mechanism so we’re dependent on what the plugin sends back. Sounds like UVI just returns the default getParameter with a string wrapper around it

Yeah, you’re most probably right.
BTW: i tried some some of the Falcon patches in UVI Workstation (i don’t own the “Acoustic Samples VHorns”) to connect parameters with widgets via host automation, and the value (unit) has always been correct.
So i guess it might rather be an issue on library maker’s side!

In the prefs of the workstation, one can assign the parameter to either a controller or one of the “slots” in the list; I have done the latter. Connecting a text widget or any other gives the same result here for this particular parameter.

Are you saying that, unless the maker can help, there is no other workaround then?

You could always intercept the widget with a script, query the plugin for the parameter value, which would get you a value between 0.0 and 1.0 and then do your own conversion. However, I think you’ll find that such a conversion is non trivial since pitchbend messages are essentially continuous. So what would you print if you get back a value that is 0.49 (say) rather than exactly 0.5?

Of course you could “translate” the value to something “meaningful” with GP Script.
So, you first need to assign a host-automation parameter from the list in UVI WS to a control elemment. These automation parameters are numbered from 0-127.
Then you’d have to give the pluginblock in the wiring view a GP-Script “handle” and activate it for scripting, same with the label widget (tab “Advanced”).
After having this done, you open the local rackspace editor and use a script which “waits” for parameter changes coming from the desired pluginblock (known by its handle).
If the parameter number which is the one you specified, then you change the label according to a certain value range of the parameter (0-0.33= “1 Halftone”, 0.34-0.66= “Two Halftones”, 0.66-1.0 = “3 Halftones”)

The script would look like this:

var
plg1 : PluginBlock // the handle name
lbl1 : Widget // the handle name

parNumber : integer = 0 // the parameter number to be checked for changes

// Called when a plugin block parameter value has changed
On ParameterValueChanged(parameterNumber : integer, parameterValue : double) from plg1
If parameterNumber == parNumber Then //is it the right parameter?
    Select
        parameterValue<0.33 do SetWidgetLabel(lbl1, "1 Halftone")
        parameterValue>=0.33 and parameterValue< 0.67 do SetWidgetLabel(lbl1, "2 Halftones")
        parameterValue>=0.67 do SetWidgetLabel(lbl1, "3 Halftones")
    end
end
End

…and don’t forget to press “Compile!” when you entered that code!
You might want to search for the “magic words” (like “handle”…) in the documentation, i don’t know how savvy you are in coding things…

Good luck, and don’t hesitate to ask, if you have a specific question! :+1:

The parameter and associated widget are simply setting the bend amount, limiting the number of semitones change, no matter the amount of pitch bend applied. Since each instrument responds in a different way to the PB stream, I wanted the ability to set this amount as needed with a widget that displays the amount in semitones. It is not a biggy since it is at only 3 positions )

For the second one, it’s probably sufficient to just do this test:

parameterValue< 0.67 do SetWidgetLabel(lbl1, "2 Halftones")

This is because as soon as a match is found, the select will stop testing and just skip to the end

1 Like

Ah, this is interesting, thank you. I will give this a try and report. I have very little experience in coding and have only previously done some modifications on code that I have found here.

Got it, thanks!

I created a fresh .gig file to test the provided script. I discovered almost immediately that opening either the VST or VST3 version of the UVI Workstation solves the problem! The display on any widget I assign is in semitones without the script as intermediary. It is the AU version that is the problem. Since I am a Logic user on a MacBook Pro, it is just my habit to choose AU plugins, I never thought that the VSTs would respond differently. So, as dhj suggested, I will have to take it up with the developer.

After discovering this I continued to try out the script with the AU version. The script compiled successfully after I created the handles, changed settings, and made the correct changes in the script. Unfortunately it seems to have no effect on the final output at the widget. But the point is moot now I think.

I thank you both for your kind and rapid responses!

S

While its not true 100% of the time, VSTs tend to give more consistent results since they are tested more heavily for use on both Mac and Windows systems.

1 Like

and in particular, non-Apple products that don’t just support AU

I found early on the using VST or VST3 over AU generally give GP better access to parameters inside the plugin. I always try VST3 first before trying VST or AU.

This is definitely caused by the implementation (or I should say LACK of implementation on the developers side.)

This could become a whole 'nuther topic but: I have been having random issues in GP only where, upon opening my main gig file, the gui (skins) for certain Kontakt plugins are scrambled (Session Strings, VG Trumpet and Screaming Trumpet). Couldn’t figure out why, but will now try changing the plugin format.