Controls jump to latest inbound OSC message. Is this a bug or am I doing things wrong?

Hi,

I'm experiencing some weird behavior when controlling Bitwig with open stage control. If I map a knob or a fader in osc to a control in Bitwig I'll often get parameter jumping when I release the osc template control.

It goes like this:

  1. I click a knob in osc that's mapped to a knob in Bitwig.
  2. I adjust the value of said knob.
  3. I let go of the mouse button once I reach my desired value.
  4. The knob in Bitwig stays where it is. The knob on my osc template jumps to a random value somewhere between where the knob was when I started moving it and my desired value.

I've got the console logs for both osc and Bitwig's controller script here:

You see that osc message that reads
(DEBUG, OSC) In: { address: '/user/9...
or the Bitwig message
OSC OUT: /user/9...

Those are the last values that are being sent from Bitwig to my osc template to facilitate bidirectional communication. Even though there are new messages coming from the template into Bitwig to further adjust the value it seems as if the osc template overrides them with the last send inbound OSC message as soon as I let go of my mouse. (and presumably, touch. I don't have a touch monitor to test right now).

I'm not sure if this is an open stage control problem or a Bitwig controller script problem but if anyone has any idea what I can try to test to narrow that down it would be hugely helpful.

Thanks!

Hi, when dealing with knobs, it is a good idea to just send values when releasing the knob.

I would also adjust the value range to e.g. 0 - 127 for cc values(range), if possible

hope this helps

Wouldn't that cause the parameter in the software to only change when the knob is released? Or am I misunderstanding?
Also I'm not sending CCs here, these are just OSC messages. I wasn't planning on controlling the software using MIDI at all.

When released, knobs/sliders/pads jump to the last feedback value received during the interaction. It's a design choice I made a long time ago that seemed to work well with common feedback implementations, it ensure the interface represents the actual controlled value while avoiding stuttering during the interaction. Usually, softwares send feedback at a rate that make that jump insignificant.

If you manage to somehow increase that rate in bitwig you should be fine. Otherwise, I'm not sure, maybe there should be way to mitigate that kind of issue in o-s-c, although the current behavior does feel logical to me.