Nit: it's jarring that when I first mousedown on the control, the value changes. This makes small, incremental changes difficult.
Now, if I click on an area of the circle that is far from the pointer, perhaps it should snap. But if I'm close (or on top of the pointer), snapping is undesirable.
(compare to a physical knob, which is the thing being emulated here: touching the knob does not change the input, you must touch and then move)
This is the crucial annoyance with knobs in a lot of synthesisers (real and virtual). Another problem with them is that it's not obvious how you change the value. Do you drag to the angle you want? Do you drag vertically? Horizontally
Which then gets me thinking about direct vs indirect manipulation. Which then distracts me from eating my breakfast.
I think it might be interesting to have a knob-like control that responds to the scrolling action of the mouse/touchpad. At least with that, you'd have (somewhat) clearly defined up and down actions. Touchscreens could support this with a two-finger-up/down gesture, and then we'd be very well on our way to Trek-like UIs ;-)
I'm not sure if it's what Udo meant, but the date/time widgets are in this vein. Actually, a knob that functioned like those widgets would be quite interesting.
All popular software-synthesizer knob controls adjust the value by dragging vertically. Including the really well-designed ones like Ableton Live.
Which is why this piece of UI is rather counter-intuitive, and it's obvious the author hasn't ever really used any other software with knob controls.
But even then, I kinda think knob controls aren't very user-friendly either way. I can sort of understand their usage in software synths as a skeuomorph, but that's about it.
For my android app DJPad I originally implemented knob control as linear. Move up or right and the value increases, move down or left and the value decreases.
I realized this was a mistake when I gave my app to friends to test and had to stop myself from saying "no! you're moving the knob wrong!" and went back to the drawing board :)
Protip: If you want to make small incremental changes, mousedown on the knob and drag way out, making the radius of your turning motion much larger.
I actually thought that part was kinda nice in allowing me to make either quick large changes or small incremental changes. But then again, I'm not your average interwebs user, so I probably would be aware of the same issue if actually implementing it.
this could be solved by requiring a minimum cursor movement before the value changes. If you want only a small change, you need to move it beyond the trigger limit, then back again
the same idea would help with getting exactly 100 or 0 values - if moving back set the "zero" zone between 0 and about -10, or going the other way once you hit 100 you need to progress significantly past it, say to about 10, before it wraps value
Now, if I click on an area of the circle that is far from the pointer, perhaps it should snap. But if I'm close (or on top of the pointer), snapping is undesirable.
(compare to a physical knob, which is the thing being emulated here: touching the knob does not change the input, you must touch and then move)