Help With Matching Widget Scaling to OSC Parameter

Attached are some OSC addressable parameters from a reverb effects processor inside of the Behringer Wing console. The address depends on which FX Rack the effect is inserted into. In my case, addressing the decay setting would look like this:

/fx/1/2

I can assign this to a fader or a knob under “Direct Addressable OSC”, but it does not adequately control the parameter on the scale that it expects. I don’t fully understand the “linf [1, 6, 101]” array, nor how to scale a widget that goes from 0 to 1.00 to control it smoothly. Can anyone help with a sample GPScript?

To illustrate my problem further-

The OSC command to control the fader level of channel 1 on the mixer is:

/ch/1/fdr

The range is -144 to 10 (db)

When I try to use a widget to control the physical fader, it will only travel between unity gain and +1 db.

The first step is to figure out what you need to send it. E.g does it actually need 3 parameter values sent at once? A GP knob/slider widget will send only a single float value, so anything more complex will need scripting.

Ok, this seems to indicate that you will need a script to convert the widget 0…1 range into what the device needs. I can help in a few hours.

1 Like

Thank you! Looking forward to it.

What I could understand or suppose :

/fx/1/mdl “V-PLATE” (V-PLATE is a string for activating the fx)
/fx/1/pdel ms (ms is an integer rangin from 0 to 250)
/fx/1/dcy s (s could be a float following linf(widget_value)=5. widget_value + 1 but only 101 distinct steps are available on the console)
/fx/1/lc hz (hz could similarly be a float or an integer following a logarithmic function ranging from 20 to 400)
etc…

Do you have more information about it or do you have the opportunity to obverse the OSC messages sent by the console?
EDIT: Indeed reeding the huge document in the link from @rank13 should make things clearer…

I assume it’s this (OSC doc):

As a first test, I have included a Gig file for the Channel 1 Fader. If you already had it working (but only between 0 and 1) then hopefully this will work for the full range.

I’ve included two widgets: one sends the value as Integer, the second as Float

Behringer Wing OSC.gig (60.6 KB)

Thank you both for your help. That is the correct documentation. I look forward to trying your solution later this morning, snd I’ll report back.

The Float option worked beautifully for the fader. Now I see how I can adjust the scale of the widget parameter to match the scale of the control on the Wing desk. Thanks so much for taking the time. I’m brand new to scripting so examples really help me. This is powerful stuff!

1 Like

One other option is to also incorporate the widget’s scale curve into the script:

On WidgetValueChanged(newValue : double) from CH1_FDR_FLOAT
    Var scaledValue : Double =  IntToFloat(ScaleRange(GetWidgetCurveValue(CH1_FDR_FLOAT, newValue), -144, 10))
    OSC_SendDouble("/ch/1/fdr", scaledValue)
    SetWidgetLabel(CH1_FDR_FLOAT, Round(scaledValue))
End

That way you can then use the widget’s curve designer to customise the fader’s response.

1 Like