Reflect gain slider with curve and range issue

i’m using TouchOSC but i suspect this issue would be apparent with other midi controllers.
i’m using an x/y pad with y being the gain of an output slider.
in order to make the gain ‘playable musically’ i have set the binding to to be -32db to +6db with quite a curve (i wish the curves displayed a number rather than just be a slider) with the curve slider being set about the middle of the triangle of the ‘out of range’ drop down.
that works nicely when i play on the TouchOSC device.
now i’d like to reflect changes from C3 changes back to TouchOSC.
i make the reverse binding and set the range to be identical.
i move the gain slider in C3 and it is not at all the same when displayed in TouchOSC.
i then tweak about to improve matters.
i retain the -32 and +6db but i move the curve slider to the opposite side and it reflects much better the gain slider but is still a bit jumpy in TouchOSC

has anyone any ideas what i’m doing wrong?

if i edit the .cantabileSong file then i can ensure the curves are the same but inverted
the controlled binding:
“curveAmount”: 0.60339999999999994,

the reflected binding:
“curveAmount”: -0.60339999999999994,

this minimises the jumpiness of reflected bindings.

1 Like

Hi Neil,

Not sure I understand what’s going wrong here. I’m away this week, but happy to take a closer look when I’m home again.

Perhaps email me with everything I need to reproduce this with touch osc and I’ll check it out.


yeah, i’ve got a few busy days but will get something together after that.
cheers for looking into it.

here’s a simple setup that highlights the issue.
inside the VOICE 01 rack is a TouchOSC binding to its output gain slider.
any changes are immediately reflected back to TouchOSC.
if the gain slider has a curve then when using the slider at the TouchOSC end the slider becomes jittery.
if the curve is removed then the jitter is removed.

TouchOSC reflect (4.7 KB)

OK, so I’ve been looking into this and I don’t have a solution yet, but I’m working on it…

Firstly I’ve added the ability to type the control curve amount so you can get exactly the same curve on both bindings.

The problem is however that one binding needs to use the inverse curve of the other and the curve isn’t symmetrical. So what I’m thinking is adding a checkbox to say to use the inverse function. That way you configure both bindings with the same settings and choose the inverse function on one so that everything lines up.

The only catch is my math is failing me… can anyone help with this.

OK, so this is solved for the next build.

To configure a two way binding with a curve like this, you should configure one binding with the normal curve, and the other with the same curve amount but the new “Inverse” version of the curve.

eg: One binding like this:


and the other like this: (note the curve kind)


Also note both bindings have the same “curve amount” and that you can now type this value (“0.55” in this case)

With earlier builds you can get something very close by using a negative curve amount, but since the curve isn’t perfectly symmetrical (though the line y=1-x) it’ll still jitter a little at one end of the range.

Finally, songs/racks saved in the new build that use the new inverse curve kinds won’t load in the earlier builds of Cantabile.

New build should be up soon.

1 Like

truly awesome problem solving.
thank you!

1 Like