
open9x - issue #146
Expand the weight parameter & output allowed values for intermediate mix steps
I am trying to mix in some math, effectively, that requires intermediate calculation steps where the value of the weight parameter (and hence the output of that step in the mix) to exceed 125%. It would be handy to have the option to exceed that value for intermediate steps in the mix so that only the last step in a series of mixes needs to be in the +/-125% range. I believe I can do this by scaling down and back up at various points to stay in the range but keeping track of all of that is a bit troublesome and adds a bunch of scaling rows to the mix.
Comment #1
Posted on Oct 23, 2012 by Massive CatUnless I understand wrong, it's already the case. For example this setup: CH1: 100%RUD + 100% RUD
CH2: 50%CH1
Will result in CH2 moving over the full range. So the 200% result from the CH1 mixers is carried over, even if the limits make the actual CH1 servo output clip at +/-100%.
Comment #2
Posted on Oct 23, 2012 by Quick Hippo(No comment was entered for this change.)
Comment #3
Posted on Oct 23, 2012 by Massive RhinoWhat I have run into is a need to multiply by factors of say 4.5 or more, although I confess to not trying the additive approach. Keeping track of multiple additive rows/multiplication rows is not a lot of fun, and having the option to put say *457% rudder would be helpful
thanks!
Comment #4
Posted on Oct 23, 2012 by Massive CatThe problem is that weights, offsets, limits and most other values are stored in EEPROM and RAM as 8-bit signed numbers, so they can range from -128 to +127, which is limited to +/- 125 for "cleanliness". Extending those to 16bit would be way too heavy on resources.
However I see a possible solution... Bertrand is currently implementing a "Global variable" system, where we have 5 variables that can be defined as being equal to a certain value or mapped to an input or output, and then used on any numerical parameter instead of setting a number. Those are currently 8-bit, but could be extended to 16bit with reasonable impact on memory (only 5 values instead of dozens). Then if you want to set a mixer with 457% RUD, you'd instead set the weight of that mixer line to use the GV1 global variable, and then set GV1 to 457%.
Comment #5
Posted on Oct 23, 2012 by Massive RhinoThat would work perfectly I think.
Comment #6
Posted on Oct 24, 2012 by Quick HippoDone. Today the range [-500:+500] is allowed in the mixer. Still not completely tested...
Status: Fixed
Labels:
Type-Enhancement
Priority-Medium