View Single Post
Old 04-21-2020, 12:08 PM   #8626
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by Geoff Waddington View Post
The more I think about RotaryC and RotaryD, the less I like them.

Here's one issue.

Say the rotary has 4 levels of acceleration, 0, 33%, 67%, and 100%.

If you have an acceleration data values list in the Action that contains 5 delta values for acceleration, you may get some pretty funky behaviour (dead zones, jumps, etc.) as you try to map 4 to 5.

Maybe apply KISS and only support:
RotaryA type (delta based) Shift multiplies delta by 0.1 for fine work
RotaryB type (step based) Shift multiplies tick count by 10 for fine work

Much simpler.

Is it sufficient ?
Not sure I get that. Are you talking the action (.zon) or surface definition (.mst)?

I feel like your prior post was spot on with the 4 widget types in the .mst. I just feel like the syntax of the action should dictate what to do with that widget. I don't know why mixing and matching shouldn't be possible.

Let's say I have this widget with acceleration, I should be able to do each of the following:
Code:
Widget RotaryA
	Encoder b0 18 7f [ > 41-51 < 3f-2f  ]
WidgetEnd
Action Example 1:
RotaryA FXParam "10" "Mode" [ (0.003) 0.0-0.5 ]

Ignore acceleration, every encoder step moves the VST parameter up or down by .003. A value of 41 to 51 moves 0.003 up. A value of 34 to 2f moves 0.003 down. Upper lower parameter bounds defined as 0.0 to 0.5. No issues.


Action Example 2:
RotaryA FXParam "11" "Mode" [ (10) 0.0 0.5 1.0 ]

Ignore acceleration, CSI moves to next step based on number of encoder clicks up or down. 10 steps up moves from 0.0 to 0.5 (or 0.5 to 1.0). 10 steps down does the opposite. No problem.


Action Example 3:
RotaryA FXParam "12" "Mode" [ (0.1,0.2,0.3,0.4,0.5) ]

Now we're creating custom acceleration ranges like last night. No change to behavior from last night's build. I create a custom acceleration curve. No issue here either.

Action Example 4:
RotaryA FXParam "13" "Mode" [ 0.0-0.3 (0.1,0.2,0.3,0.4,0.5) ]

Ok, this one i don't get. Is the 0.0-0.3 the acceleration range? If so, why do I need the data in the parenthesis? Or is it the min max parameter ranges.

Now, what if your encoder doesn't have acceleration defined in the .mst but the action is Example 3 or 4? Keep it simple. Ignore any acceleration.

Last edited by Funkybot; 04-21-2020 at 12:13 PM.
Funkybot is offline   Reply With Quote