Re: [LAD] Implementing software knob behaviour

From: Thorsten Wilms <self@email-addr-hidden>
Date: Tue May 16 2017 - 13:47:55 EEST

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/
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Tue May 16 16:15:01 2017

This archive was generated by hypermail 2.1.8 : Tue May 16 2017 - 16:15:02 EEST