Hi, I'm trying to use Elephant 1.9.2 for turning knobs in VCV Rack but having problems. I found that with the default settings I would have trouble getting the Surface Dial to release a knob because sometimes you accidentally rotate the Dial after clicking the Dial button and then you go to move the mouse and end up dragging modules around the screen. This was very frustrating. Then I found the Touchpad/Trackball mode and immediately hit a problem. It only seems to work when the speed setting in Elephant is set to Normal or slower, which is too slow for turning knobs in VCV Rack. The speed really needs to be set to Fast+ or Fast++ for the knobs in VCV but then it doesn't work with the Touchpad/Trackball mode; If you set the speed to anything faster than Normal, the knobs in VCV stop turning properly and also moving the mouse won't release the knob properly any more.
This artifacts only happen on VCV and no other software I tested do the same strange artifacts, I think there this is inherited from framework used for VCV.
For prevent move your rack by accident lock the racks (what is not practical due the nature of moudular synth lol) or you can use VCV in a reliable way with elephant is clicking your mouse and wont release and then rotating the dial, when end rotate stop click the mouse. This mode is there from the first version, and is a reliable mode I suggest you should use in vase VCV.
VCV rack for some reason not handle acceleration mouse in correct way and some strange artifacts happen.
I back later with some extra info why this happen form my point of view.
There is 2 ways to fix this with VCV, one is ultra complex, second is easy but require hardware, a cheap arduino board, I send more info later.
Hi Pablo. Thanks for your advice to hold down the mouse button while turning the dial; I had not tried that. It is much more reliable now doing that but it still requires a tiny bit of coordination to click first, swap attention to the dial, and remember to stop turning the dial before lifting the mouse button so it would of course be much nicer not to have to do that. I look forward to hearing your theory on why this happens abd about your ultra complex and easy solutions to see whether they are practical.
That mode is the only reliable way to use at this moment with VCV.
The issue with VCV from a point of view is something with the framework used for VCV rack ( https://www.glfw.org/ ) interact deeply with mouse events at kernel level, so basically only recognize in correct way mouse events coming from the mouse driver (mouse events comming at kernel level). Elephant send mouse messages at API level and then troubles start.
There is nothing wrong with VCV, is just how the Framework over where is developed VCV works.
Is easy to test this, with the method of click your mouse and then turn the dial, as you can see always work if you press down the real mouse first and always first.
Solution 1: Write a virtual HID mouse driver work with Elephant.
The down side of this can be maintain the driver and ensure work ok with future upgrades of the OS, sign the driver with Microsoft, is mandatory driver be signed etc.
Not impossible but is the more complex solution.
Solution 2: Use and Arduino board, around 15U$, to make the Arduino act as a real HID mouse, then Elephant interact in invisible way the arduino.
Downside of this way:
Arduino cost 15U$ what I no think is a problem but users have to spend that money.
The Arduino board use always a USB port.
If you use this outside of studio you always have to carry the board and also for sure buy some of available cases for the Arduino board.
The positive side of this solution is no coded driver in the middle, and work exactly like real mouse no matter what happen with OS future updates.
Program the Arduino board wont be a problem duet can provide a simple software for program the Arduino with just few clicks, user just have to do simple task to prepare the Arduino.
Also when Arduino cost 15U$ and use always one USB port is the most reliable solution I tested at this moment.