Re: [LAD] Implementing software knob behaviour

From: Len Ovens <len@email-addr-hidden>
Date: Tue May 16 2017 - 16:41:44 EEST

On Tue, 16 May 2017, Christopher Arndt wrote:

> I'm currently trying to write a software MIDI/OSC control panel in
> Kivy/Python [1]. I want to implement a sensible knob behaviour but I
> have trouble getting this right. The general idea is:
>
> - Click (starting somewhere in the area of the knob control) and drag
> upwards/downwards (y-axis) increases / decreases the value.
> - Dragging left/right (x-axis) decreases step size of increments /
> decrements.
> - Each knob has a min/max value.

OK, interesting idea. Make it and try it see how it "feels".

> My questions are:
>
> - 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. any knob or fader should work from first touch because (if
nothing else) touch is not precise. The touch may end up off the widget
(or even the application window), but so long as the touch continues, it
belongs to that widget.

> - Should I apply the distance to the value directly or use the distance

NO.

> as a relative value (i.e. increment / decrement to the value when the
> touch started)? If the former, how do I prevent value jumps?

again both knobs and faders should move the value from where it is now to
somewhere else. It is pretty much impossible to touch a slider at the
point the value already is, it is much harder with a knob. Besides which
you are activating it like a slider so there is no visual hint of where
the finger/mouse should touch to start from the current value. My
personal thought on any controller (glass or physical controls) is to base
things on encoders not pots. The thing you are controlling might also
change the value of a knob (banking or preset change)

I would point to Ardour's GUI, Open Stage Control or the X32 remote editor
appliaction (free download) as examples.

You will note all of these use left/right the same as they use up/down.
The idea of using left/right as graininess is interesting. I have seen x/y
pads used that way too. With an x/y pad the graininess can be value of
touch point while the value itself is incremental because the x/y pad
gives some indication of where to touch. However, the main thing I like
about knobs over a slider is that it takes the least real estate for the
most effect. An x/y box uses the most real estate being bigger than a
slider even. Open Stage Control uses two fingers for fine movement on it's
sliders, but that would be difficult with a knob. (my fingers are too big)
Other applications use a meta key for fine.

--
Len Ovens
www.ovenwerks.net
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Tue May 16 20:15:01 2017

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