I’ve attached an example of how this could happen with a relative encoder.
In this case I used an encoder that puts out 0x41 when turned 1 click right and 0x39 which turned one click left.
The action for the encoder includes 5 tanslators.
1 ) Move mouse to the knob center position (no click)
2) Click and hold mouse down after 20 ms
3) Start a timer to release the mouse after 1 second
4)Drag the mouse depending on which way you turned the knob
5) Timer to release the mouse after the timeout
Of course this requires the knob always be on the same position on the screen.
I use the variable ga to determine if we are in click down or click up state (some translators should only fire in one of the 2 states).
I use variable gb to determine the mouse movement amount (up or down).
Again it is not bulletproof so you have to sometimes move the knob slowly and never change the position of the knob on your screen. It would certainly be more reliable to have each knob with a hotkey (up) and hotkey (down) and have the encoder trigger one of those two actions.