Coarse + Fine Control with two Widgets

ahh no, …it acts as set in the script.
i need to dive there deeper…

i need control over the range !
its dependnd on the “patch” respectivly rackspace

edit: huhuhuh, which lines in the script code do i need to learn to set myself ?

Min Max Value in the mapped widget

1 Like

donne that, set to: 0 - 100
the Fine is still “superfine”

there must be something in the scriptcode that determines the range, no ?

Wha range?
Normally you map a controller to a widget and the min max value of this mapped widget determines how much an assigned parameter is influenced.

So what range are you looking for?

ahh, the script works like this:
first widget = controls the desired parameter (FX) , range: 0-100
second widget controls the first widget*, range: 0-100
the third widget, the Fine, should control the second widget**, range: determined by me.

  • …seems to be the case like this. ** this too i guess

i “deattached” the Course and Fine widget from the VST parameter itrself. Both are set now to: no plugin
i checked, and mapped the Fine back to my VST and its parameter. Plus adjusting the range values.
This has no influence of what the Fine control is doing.
The range it controls remains allways the same very small “superfine” control

ok, found it ( i have really NO clue about any coding )
looking from below: 2nd and 5th line.
the two lines above the term: “end”

there is a number at the end of the line, in the script editor shown in red.
—> decreasing this number is increasing the “index” of the fine control. ( a + and - control, around the actual value, set by widget two ))

setting both to: 1 gives a 100% stroke / to 2 gives a 50% stroke to each side (+ and -) i´d guess.
to 4 gives a 25% stroke i´d say.
setting at 10 gives a (wider) fine tune, to 50* a super fine tune (* as in the original script as posted above)

solved ! Thanks everybody !

Ok, chapter 1 is donne. “my initial request” answered ! Many Thanks !
i edited the title and post 1, to make it easier for others to follow up, and get quick access to the relevant information given here so far.


i´ll like to open now chapter 2 on this very topic:

  1. also would i like to learn to be able to change the name of the widgets.
    1.b). well, it starts with a question:
    what, if i want to add the same script many times to one Rackspace,
    i guess i HAVE to change the name of the new widgets then anyway, right ?

somebody could for example just point me towards, in which lines in the code i have to change something ( the names)
just add a __ in front at any line of the code, that i have to change ?
that would be great…i´ll try then to figure it out. :wink:

i will need to be able to use that script several times within one rackspace.
its a great thing. It IS a step forward for me with GP, to be able to add “additiv controls” on top of another control !
( its no longer just about a “Fine” control !..since i/we can have now a manual control, plus a widget controlled by …for example: a sequenzer, which would act “additiv”…and NOT in an “overwriting” manner )
This open up doors in electronic music making with VSTs !

another wish to come on top of that later on.
hope you have forebearance with me…

That is not possible as for a rackspace there is only 1 script.
Do you mean multiple callback functions for different widgets?

May I encourage you to review the language manual so as to get some basic understanding of how GP Script works?

https://gigperformer.com/docs/GPScript40/

yes, i had a first look yesterday !
this will take a long long time.
and my health is breaking (dramatically)…the time to give into new things on the computer, or any reading is limited.

i´m the type of guy who can act, when i understand things completly.
and bevore i reach that point, i´m often dumb as nuts.
but i was finally the math genius in scool. … decades ago.
But today is my head FULL with other things.

wait: in total, only 1 script possible per rackspace ?

i don´t understand this phrase …?

yes, many times a “additiv offset control” for some widgets, …for many different widgets.

Yes, 1 script per rackspace, per gig, per song

On for each callback (Widget Change, On NoteEvent ) you write a piece of code in the only 1 script.

1 Like

ok, i see. thats then a drawback. just when i thought that big door would open now…
Thanks !

I do not understand why this is an issue.
I sent you a private message.

What drawback?

a drawback ----> versus what i wanted to do, and thought i just could do it.*
—> Dreams coming true, …bigger dreams in the pipeline :wink:
( me, coming from patching over 15 years with a very nice equiped modular, which taught me new ways of thinking)

  • = using the script several times, to setup several CC controls in a way, that i have a common “Coarse” control, plus a “additiv working control” on the same parameter (additiv vs. the first control on that parameter). —> this for many parameters.

is it, to get a fine tune to accomany the common coarse control,
or is it to have a manual control ( HW knob) on a parameter, plus the abilitiy to map a sequenzer to the same parameter, but in a additiv way,.
which would allow for many things.

so, my point here is not necessatily the “fine control”,
but way more the aspect that the additional widget, mapped to the same parameter as another widget, can act in a “additiv” way vs. the fisrt widget.

thats waht opens up the doors !
and thats, what i hoped to be able to use on many parameters/ group of widgets

(sorry, i just try to avoid confusion, so it gets longwinded now)

Yes, but all those CC controls will just go in the same script — I wonder if you’re confusing an individual callback (which is just a PART of a script)

A script contains the functionality needed to manage all of your widgets in a rackspace.

1 Like

OK, then i see !

yes, then there was a confusion, respectivly was my picture that i had not correct !

ok, …that gives me a new perspective :wink:

so what you folks call a “callback” is then a “instruction set for one parameter” or “one function” as i understand it now.

then, do i have to learn to add several such call backs into one script !

Thanks for clarification!..one small step more on my path

2 Likes

EDIT:…complete rewrite:
i had a failure. I found the reason ! Problem solved !

i doubled the code, to get a second “fine” control , to work on another parameter.
inclouding changing the code. My first attempt to work with script coding, hehe.
see below, i added the code. it might be helpful for folks like me, who have NO clue about coding.
its all about renaming the three widgets, in my case to: “Actual2”, “Coarse2”, “Fine2”
( = copy the original script text, add it below that original text by pasting, then change there the widgets names, also create the actual widgets (name them accordingly in the “advanced” tap), then compile)

the problem was that the “actual2” widget was allready mapped to a HW control,
and in fact the same, that the Fine2 got to be mapped to. This created confusion within the midi commands…( 2 commands working against each other)

here the modified script. good for learning purposes
( how can i post here a script in its original state ? )

EDIT: Schamass has posted a better, shorter version of the same in the next post.
…,-----…,-----,…-----,…,-----

Var
Coarse : Widget
Fine : Widget
Actual : Widget // Widget to be controlled

// Adjusts the actual widget using the sum of the coarse widget value
// and a fraction of the fine widget value
Function CoarseFineControl(c : Widget, f : widget, a : widget, fineRatio : integer)
var cv, fv : double

cv = c.GetWidgetValue()
fv = (f.GetWidgetValue() - 0.5 ) / fineRatio

a.SetWidgetValue(cv + fv)
Print(cv+fv)

End

// When either coarse or fine widget changes, adjust
// the actual widget
On WidgetValueChanged(fineValue : double) from Fine
CoarseFineControl(Coarse, Fine, Actual, 7)
End

On WidgetValueChanged(fineValue : double) from Coarse
CoarseFineControl(Coarse, Fine, Actual, 7)
End

Var
Coarse2 : Widget
Fine2 : Widget
Actual2 : Widget // Widget to be controlled

// Adjusts the actual2 widget using the sum of the coarse2 widget value
// and a fraction of the fine2 widget value
Function Coarse2Fine2Control(c : Widget, f : widget, a : widget, fineRatio : integer)
var cv, fv : double

cv = c.GetWidgetValue()
fv = (f.GetWidgetValue() - 0.5 ) / fineRatio

a.SetWidgetValue(cv + fv)
Print(cv+fv)

End

// When either coarse2 or fine2 widget changes, adjust
// the actual2 widget
On WidgetValueChanged(fine2Value : double) from Fine2
Coarse2Fine2Control(Coarse2, Fine2, Actual2, 7)
End

On WidgetValueChanged(fine2Value : double) from Coarse2
Coarse2Fine2Control(Coarse2, Fine2, Actual2, 7)
End

OK, so i´m now able to double, triple etc. that code.
more questions are coming. …there is space for more, haha