[LAD] Implementing software knob behaviour

Thorsten Wilms self at thorstenwilms.com
Tue May 16 10:47:55 UTC 2017


On 16.05.2017 09:25, Christopher Arndt wrote:
> - What should I use as the reference point for finding the distance of
> the movement? The centre of the knob or where the first touch event
> occurred?

First touch.

Elsewise, if that point is above the center and the cursor/finger moves 
down, what are you going to do until the center has been passed?


> - Should I apply the distance to the value directly or use the distance
> as a relative value (i.e. increment / decrement to the value when the
> touch started)? If the former, how do I prevent value jumps?

I don't quite understand what you are trying to describe here.

I think the behavior should be as if a slider was brought up, with the 
current value, positioned such that the indicator (top of the value bar) 
is right below the pointer/finger. You should probably actually display 
a slider. For touch, it's worth thinking about not (only) showing 
something right in place, as the finger/hand may obstruct it.

The slider area may end up  partially off screen. You could rely on the 
user to slide twice if they want to reach an extreme in such a case. Or 
implement a scroll-fully-into-view feature. With a mouse, you could 
allow the pointer to go off-screen / wrap-around (this works quite well 
in the 3D app Blender). At the same time the pointer goes over the edge, 
the slider could be moved appropriately. For a touch interface, you'd 
have to move the slider as the finger approaches the edge, though.

In case inspiration regarding the visuals is welcome:
https://thorwil.wordpress.com/2007/04/27/not-knobs-5/
https://thorwil.wordpress.com/2007/05/01/fan-sliders/


-- 
Thorsten Wilms

thorwil's design for free software:
http://thorwil.wordpress.com/


More information about the Linux-audio-dev mailing list