Low accuracy of dial object movement
I'm using dial objects which generate an int value from 0 - 127 in steps of 1
Creating a dial and plugging the output into a print object, I can see that the dial is not generating smooth output values - the value output by the dial when moved with the mouse is sometimes a difference of 2 or 3. This makes it impossible to use it with any degree of precision. This changes with dial size. The bigger the dial, the more precise the value it generates is. This makes the dial object fairly un-useful really.
For example, if the dial is fairly small then the smallest possible increment you can generate using the mouse is a difference of 2 or 3. If the dial is huge then you can generate precise +1 / -1 values.
Experimenting with the live.dial I see this is not a problem. live.dial always outputs +1 or -1 when used with the mouse. However, live.dial is a fixed size and cannot be made larger.
Is there some way to make a normal dial object behave like live.dial? I want a medium sized dial which generates values smoothly from 0-127.
Eddy
Here's a simple example. On my system, it is impossible to adjust the value in steps of 1, it invariably changes by steps of 2 for the smallest possible mouse movement.
Eddy
If you hold shift while mousing on a [dial] you get finer precision.
lh
Thank you, that's useful to know. Is there any way to automate this that you are aware of?
Eddy
No. Shift key is the way to go. With live.* objects it's the command key btw, to fit with Live environment.
You could use jsui, which has a tracking value in its drag function. The default one uses Shift to activate fine-tuning, but just dynamically/automatically set the value to whatever you want, or use a key to toggle in and out of fine-tune mode. You could do it for all your dials at once.
// from the default jsui dial:
f = val - dy*0.01; // becomes
f = val - dy*x; // just mess with x using values generated outside.
// use dx instead of dy for horizontal tracking.