Im not sure Im going about this the best way but I have an incrementing CC that goes 0,1,2,3,4 and wraps back around to 0
Using a curve on a single widget (button) and I only want it to give full output at a value x = Value(CC), is there a way to type that into the forumula field or numerically enter it?
In other words, the first button widget will turn on when the learn midi CC for example CC1 with a value of 1 and only 1 is received
Widget 2 will also use CC1 but will only ‘gate’ at a CC value of 2 and so on
I can’t get my head around scale curve formulas. It’s more challenging because you’re needing to scale values that are 1 value different from each other.
Even if you got the scale curve to do what you want, I don’t think the widget LED will give you want you want.
Therefore I personally find scripting much simpler to convert those values to separate CC numbers and full range.
Yeah i was just trying to be widget centric, which is kind of the point of diff with GP and what I understood was the correct way…the only thing stopping is numeric entry really.
The x range is with a knob with no numeric input but y range seems to be easy ie y = 1…but how to plot that on x?
I have been really going over and over the manual, the forum, videos…Im not trying to do a very complicated thing at all…I thought?
You are right…I was able to do a test and while the plugin turns on and off with the closest values I could get, the widget is looking for 0/127 to display properly; the learn would have to have an edit to define the range its looking for
Ah well back to script…
EDIT:
I did find a part solution here thanks @djh …the title was worded a little differently but still doesnt let you enter the X numerically that I could see. I guess I could extrapolate the range out over 128…
It seems you’re mixing the incoming and outgoing values. The incoming CC value will always move your widget to that value. What comes OUT can be controlled with the scaler.
Btw… if you click on the scaler and hold down the shift key while clicking on the “reset liearly” button you will get a chance to type in a number os steps to create a stepped “curve”.
So the transfer function is that of widget input > ouput…ok; completely independent of the incoming cc range as that is absolutely mapped to the widget 0-100
But there is no modification allowed for incoming midi other than learn…was a bit confusing because I had thought if such a great tool was provided for the widget, its scope might have extended to the midi input as well…cleared that up
In the case of a cc range being typically 0-127: the x is actually (cc@127)/100 for output?
Then in the case if a typical incrementing incoming button cc of eg 0 - 4, as found standard in most controllers I use anyway
Setting up another widget on same cc should create mutually exclusive on val @ cc = 2 and so on?
My point is to see if I can do a simple setup with the ui tools without scripting (to clearly see the crossover from ui to script)…any suggestions as to then best do that or is scripting the only way?
Button 1 responds to only value 0
Button 2 responds to only value 1
Button 3 responds to only value 2
Button 4 responds to only value 3
All 4 buttons learn the same cc
Value of 0 turns on button 1 but the widget of 2,3,4 etc remain off
Value of 1 turns on button 2 but the widget of 1,3,4 etc are off and so on…
Its a very simple thing and I just wanted to see if it was possible using the UI
I think the main issue is that the incoming midi learn would have to have a filter to define min and max or also have a transfer graph with numeric input which would then make it easy to do this.
Scripting is great to establish and test stuff but once solid paradigms are established, would be nice to use ui, if that makes sense. Thanks for your code you posted too.
Its just a simple way of doing mutually exclusive choices that may point to different outputs
ie group buttons using current UI widgets
Its more about using a single button to address logical grouping
Im a bit torn though in regards to solutions…Im about to try using my old Pure Data stuff as plugins and it already has much of this baked in; then Im not troubling everyone with the details of learning. The thing is that spending the extra time refining it in PD makes it portable…can use it in most things eg Live etc and its so simple and logical (plus I know it reasonably well)
The issue is I haven’t tested it for just midi as yet…its not global scope and it doesnt contribute back into the community.
This is ultimately true!
It does force an abstract solution either way.
Normally using max/pad etc, it presents an algorithmic output eg each event out would have a eg a different channel number on the same controller but GP lets me choose the input to keep the scoping down
So now you use the PD library (of increment on the incoming controller), add a channel, in GP each widget/learns this and is turned on/off as a group and the PD plugin can now be used drag and drop with consistent behaviour
ie CC in = CC out + chan number
I think it the scripting is great in GP and lets you do what would be impossible…time will teach the best outcome…hehe hopefully.