Limits on inputs in the mixer

More
11 Aug 2013 23:10 #12913 by PhracturedBlue
Limits on inputs in the mixer was created by PhracturedBlue
Currently there is a limit that all inputs to the mixer have a scale of -100 to 100, but the output is not limited.
Vlad filed the following ticket on this (it has nothing to do with Virtual channels): bitbucket.org/PhracturedBlue/deviation/i...-channel-as-a-source

Basically what is happening is that when we apply the curve we limit the input to +/- 100% thus creating potential deadzones if you chain the output of one channel into the input f a 2nd.

The reason this was done is because many of the curves don't interpolate well beyond a +/-100% range. This is especially true of the expo and piecewise curves which can far exceed 200% if allowed to process inputs beyond +/- 100%

So I have a few options:
1) leave things as is. If you have an input to a mixer, it must be limited to +/- 100%
2) allow inputs beyond the +/-100% only for the non expo/piecewise functions
3) allow inputs beyond the +/-100% for all functions and trust the user to be careful with their functions

Having this be configurable is probably not an option, so I want to choose one. I'm currently considering option (2). This would at least allow rescaling an input to +/- 100% before operating on it (which you can't do today) without needing to worry about overflows.
In this model, you could take an input with a range outside +/-100%, use a complex mixer, have the 1st mixer reduce the value with a scaler, and then have following inputs operate on the function as necessary, thus never leaving a deadzone.

But I'm open to alternatives, so please give feedback.

Please Log in or Create an account to join the conversation.

  • rbe2012
  • rbe2012's Avatar
  • Offline
  • So much to do, so little time...
More
12 Aug 2013 07:43 #12916 by rbe2012
Replied by rbe2012 on topic Limits on inputs in the mixer
I think that it is fundamentally necessary to have the mixer functions working all on the same range of input values. This is the only way to make them interchangeable as inputs with the sticks and wheels which only have a range from -100% to 100%.
So from my point of view it should be better to limit all outputs(!) to +/-100%. If I want to realize a weighting of inputs it is possible to scale the input down what is as easy as scaling the output up. Disadvantage: I might have to do this wherever I use the output as input.
Example: Virt1: AIL   1:1 scale 125%
         ch1:   Virt1 1:1 (cropped to 100%) ==> -100%...+100%
                (but only the AIL values +80% to 80% used)
         mult   ELE   1:1 ==> -100%...+100%
Against: Virt1: AIL   1:1 scale 100%,
         ch1:   Virt1 1:1 scale 80%  ==> -80%...+80%
                (but full range of AIL used)
         mult   ELE   1:1 scale 125% ==> -100%...+100%
We have mixer functions like "add" which can result in values outside the above range (without scaling the result up). Here the user is responsible not to exceed the limits (e.g.: complex mixer, page 1 AIL 1:1, page 2 add AIL 1:1 results in -200%...200%; maybe scaled by the output channel and cut at the values the channel is set to, normally +/-150% - solution would be to scale the output 50% down to stay in the +/-100% range).

As shown above I will always be able to produce a deadzone (simply adding enough values) - whatever of your proposals will be realized.
I still think it is necessary to reduce the inputs to +/-100% and give it to the user to make sure that his outputs don't exceed this range. So I would recommend solution 1 (I admit I can't remember why the scaling what increased to 125% - no necessity for me...).

Please Log in or Create an account to join the conversation.

More
12 Aug 2013 13:36 #12924 by PhracturedBlue
Replied by PhracturedBlue on topic Limits on inputs in the mixer
We used to limit the outputs but there are many times when that is a bad thing to do. the problem with leaving it to the user, is that they may need to reimplement a complex mixer just to scale the final output. You seem to be thinking about the case where virt1 has a single purpose which is to be fed to another mixer, but this applies just as much when you chain 'real' channels together. In this case you ned to reimplement the 1st stage with a different final scaler (or perhaps use the limit scaling at the end instead)

To me, it is a question of having intuitive results vs allowing the user to (potentially unknowingly) shoot themselves in the foot.

Please Log in or Create an account to join the conversation.

More
12 Aug 2013 13:49 - 12 Aug 2013 13:51 #12925 by vlad_vy
Replied by vlad_vy on topic Limits on inputs in the mixer
Is possible to rescale down automatically to 100% 1st mixer (whole chain) if it used as the source for 2nd mixer?

But I'm afraid it can be complex task in case if 1st mixer will use 2 sources (V-Tail, Elevon and so on).
Last edit: 12 Aug 2013 13:51 by vlad_vy.

Please Log in or Create an account to join the conversation.

More
12 Aug 2013 14:00 #12927 by PhracturedBlue
Replied by PhracturedBlue on topic Limits on inputs in the mixer
It isn't possible because Deviation has no idea what the maximum range of the channel is

Please Log in or Create an account to join the conversation.

  • rbe2012
  • rbe2012's Avatar
  • Offline
  • So much to do, so little time...
More
12 Aug 2013 16:14 #12931 by rbe2012
Replied by rbe2012 on topic Limits on inputs in the mixer

PhracturedBlue wrote: You seem to be thinking about the case where virt1 has a single purpose which is to be fed to another mixer, but this applies just as much when you chain 'real' channels together. In this case you ned to reimplement the 1st stage with a different final scaler (or perhaps use the limit scaling at the end instead)

Yes; maybe I thought too short. I had the idea of an input scaling additionally to the existing output scaling to avoid this.

To me, it is a question of having intuitive results vs allowing the user to (potentially unknowingly) shoot themselves in the foot.

For me it seems to be very predictable when every mixer channel's input and output has a range of +/-100% (=+/-1). This way it can be concatenated at every position with each other because input and output range are identically (at least in theory: scaling down an output results in a smaller input range for the next input).
Of course this can be broken by some special operations like "add" (and the only idea I have would be to divide the output by the number of "adds"+1 for proper normalizing - but this could be given to the user's liability, perhaps with a warning).

Please Log in or Create an account to join the conversation.

More
13 Aug 2013 01:16 #12935 by PhracturedBlue
Replied by PhracturedBlue on topic Limits on inputs in the mixer
There are many cases when the output of a mixer is > 100%. The most common is in FB heli mixing, but there have been many others. It is on the one hand reasonable to say: if you output is over 100% you can't run it into another mixer, but this makes an already daunting task of setting up an advanced mixer even harder.

Adding a pre-scaler is possible, but adds even more complexity for very little gain. Might as well just allow 1-to-1 to process values > 100% and use a post-scaler

Please Log in or Create an account to join the conversation.

Time to create page: 0.040 seconds
Powered by Kunena Forum