[solved] xypad class behavior

Some quirks with the xypad, that might be unintended enough to be considered bugs:

  1. The value notifier is triggered twice, reacting to x and y separately instead of the whole value table changing. This means that anything triggered by xypad value changes will be twice as heavy. I don’t think I can see any special case where this is helpful.

(It’s probably possible to work around by using bind to ObservableNumbers in a custom scheme…)

  1. Changing the snapback table seems to be triggering the value notifier. I think this is undocumented and it doesn’t seem quite right. EDIT: Makes sense normally, but think about what happens when changing the snapback from the value notifier.

(Probably possible to work around with some effort.)

  1. Another weird behavior is that the mouse speed varies depending on the xypad width/height (when dragging the point).

1 & 2 you’ve found workarounds for, I guess? Keep your own memorized version, check when values change…

Not sure about the “double-duty” (firing twice). Maybe because of MIDI mapping that needs two signals? - I’m guessing here.

  1. Another weird behavior is that the mouse speed varies depending on the xypad width/height (when dragging the point).

You mean, the mouse velocity feels more sluggish, the larger the xypad is?

1 & 2 you’ve found workarounds for, I guess? Keep your own memorized version, check when values change…
Not sure about the “double-duty” (firing twice). Maybe because of MIDI mapping that needs two signals? - I’m guessing here.

Yes, I think they can be worked around. Since it’s a bit tedious I wanted to mention it, just in case it was an oversight that can be easily fixed.

I don’t think it has any implications MIDI wise. I’m guessing it was a shortcut done when implementing the callback property. USUALLY, changing the callback will change the value in reality, but not always.

You mean, the mouse velocity feels more sluggish, the larger the xypad is?

Yes, it’s faster the larger it is. The mouse speed is proportional to the size (even width and height separately). I can see the sense of this if you want to use a very small xypad, but imagine drawing a very big one. The mouse speed will then be extremely fast. Perhaps the mouse speed could at least be capped to the OS setting? Even more practical would be a bool property - proportional_mouse_speed.

The mouse issue only happens on one of my computers. On another computer all mouse movements are perfectly linear and consistent, no matter what width/height the xypad has. (Both Windows 10).

So… it’s a bug, unless something really fancy is going on with the input device on my laptop that Renoise can’t touch.

Also. On the computer with the issue, the mouse cursor disappears whenever clicking/dragging the xypad (and reappears when releasing).

It turns out Renoise has a feature that confused the hell out of me. Under Preferences / GUI, I’ve now turned off “Mouse warping”. No more strange xypad behavior! :ph34r:

The snapback issue I reported is still a small nuisance. Please consider.

I didn´t know about this settings. Your post helps! I have checked and we can use xypad for mouse tracking nicely.