knobs instead of sliders

Ideas, enhancements, feature requests and development related discussion.

knobs instead of sliders

Postby sascha » Fri Dec 05, 2008 12:23 pm

Slider widgets are nice for some applications, but are problematic for others. For example, I was thinking about using sliders in JPatch to manipulate floating point numbers (e.g. morph avars), but there are several disadvantages:
Pros:
* easy to use, standard widget
* feedback (the sliders position is directly related to the number it represents)
Cons:
* uses a lot of screen real-estate, especially if you need a label and a text-field (for numerical in/output) next to it.
* precision is limited - for higher precision, the slider must be wider (so it consumes even more screen real-estate)
* Can only represent bounded values (as the slider has a min- and a max-position)

But, look what I've found in an OS-X application:
Picture 1.png
Picture 1.png (6.21 KiB) Viewed 7754 times

Ain't that cool?
It's not a good replacement for any slider, but it overcomes some of the cons mentioned above, so it could be useful in some situations. Here's what I like about it:
Pros:
* It's pretty compact, you could use a label, the widget, and a text input filed and still only need e.g. 200x20 pixel. The slider alone would need at lest 100 pixel.
* It could have min/max values (optional), but there's no need. You could spin it around forever, so it can be used to control arbitrary, unbounded values. For bounded values you still get the "visual feedback" advantage of the slider (e.g. 7-o-clock is min, 5-o-clock is max)
* When turning it, precision can be arbitrary high, as the "slider position" is an angle, and you can move the mouse-pointer as far away as you like while dragging, thus gaining arbitrary precision (e.g. if you move the mouse-pointer only 100 pixel away, you can represent roughly 2*PI*100 = 628 different values - you can double that by moving the pointer 200 pixel away - so you'd get the same precision as a slider that would fill the entire screen width.
* You can spin it fast (dragging the mouse-pointer around it, with the pointer close to the widget) or do high-precision adjustments (with the mouse-pointer several 100 pixel away).
Cons:
* Non standard widget
* A little more more difficult to use compared to a slider (with the slider, you only have to drag left/right, with the know, you'd have to move the pointer around the knob to adjust it)

In general I'd say that sliders make sense for integer values, while knobs make sense for floating point values (especially if they're unbounded).
What do you think?
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: knobs instead of sliders

Postby pndragon » Fri Dec 05, 2008 5:19 pm

You could allow an option to choose between sliders or knobs

--- Jim
"We're so sorry, Uncle Albert,
But we haven't done a bloody thing all day."
--- Paul McCartney
pndragon
 
Posts: 591
Joined: Sun Dec 05, 2004 1:27 am
Location: North Carolina

Re: knobs instead of sliders

Postby John VanSickle » Fri Dec 05, 2008 10:15 pm

My wacky idea about these knobs is to draw a smaller circle within the knob. Clicking inside the circle gives finer control over the affected parameter (ie., less change for each unit of mouse movement). With something as small as this control, a way to exert finer control is in order.
John VanSickle
 
Posts: 189
Joined: Sat Feb 16, 2008 2:17 am

Re: knobs instead of sliders

Postby sascha » Fri Dec 05, 2008 10:43 pm

Actually the idea was to move the mousepointer away from the knob to get higher precision, like:
knob.png
(click to enlarge)
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: knobs instead of sliders

Postby dcuny » Sat Dec 06, 2008 9:07 pm

I've got mixed feelings here. I've used these sorts of controls with music software, typically with a interface that emulates some "classic" bit of hardware. It works OK in those, but it's not my favorite control. Normally it's mapped to the up/down or right/left motion of the mouse. It will also respond to the scroll button, which generally is the easiest way for me to work with it.

I don't like the idea of the knob spinning past the min/max value and back around. My expectation would be that the knob would stop spinning at that point. That maps better to the physical device, and makes it simpler to quickly move to one extreme.

On the other hand, it would make sense if the knob were mapped to a rotation angle, but that's not what we're talking about here.

Have you looked at the numeric input controls in Blender? The not only allow values to be typed in, but you can drag the arrows at either side to "spin" the value. Using Shift gives you better control of the resolution. It works quite well. I've seen that sort of thing with other 3D applications as well. The only bit that's not immediately obvious is the Shift for better control, but a context-sensitive comment in the status bar can fix that.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: knobs instead of sliders

Postby sascha » Sun Dec 07, 2008 11:38 am

I think that for most Avars a 1D or 2D slider in the HUD will be the preferred control. But it needs to be set up manually, and I'd like to have some sort of slider-like control in the sidebar as well (in addition to numerical input).
My main concern with standard sliders is simple screen real estate. On lo-res screens (anything at 1024x768 or lower), the sidebar can't be much wider than, say, 300 pixel at max, so space is quite limited. With a label and a text-input field, there's little space for a slider, and if the slider width is 100 pixel or less, it's difficult to do precise adjustments.

I see that a textfield that also supports slider-like dragging would solve the problem, the only issue is that it's not obvious that you can do anything but enter values in a text-field. Putting a knob next to the textfield occupies just about 20 additional pixel, and it's a clear visual hint that you can spin or drag the knob (I can live with left-right motion only too).

My goal is to have an "anti-Blender" user interface, i.e. one that somebody who sees it for the first time can actually use. Discovering features should be fun, not frustrating. You should be able to do some simple things without reading any manual or watching any tutorial, and you should be able to discover more advanced features by simply using the application. In addition, video turorials (or better yet, built in tutorials) would be a nice way to show the user what else can be done (and are a good way to advertise - a short video on Youtube that shows off some cool features could attract some attention) . This way, a manual is only needed for reference.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: knobs instead of sliders

Postby dcuny » Sun Dec 07, 2008 1:37 pm

sascha wrote:I see that a textfield that also supports slider-like dragging would solve the problem, the only issue is that it's not obvious that you can do anything but enter values in a text-field.

I take it you've not actually tried one of the Blender's buttons. :) Here's a screenshot:
Image
Note the numeric button has arrows on each side, indicating that the value can be modified. If you click the arrows (as with a standard "spin" button) you can increment the value.

Clicking the button and releasing it puts it into "edit" mode. The arrows disappear and it's looks just like a text edit field.

Clicking and dragging changes the button's value by 1 per pixel left or right.

Holding down the Ctrl key causes the value to increment by 10, with all values divisible by 10. So if you started at 101, the next value would be 110, and then 120. This makes it easier to get to specific values.

I'm pretty sure that other 3D software packages use a similar system, because it's a really useful control. Keep in mind that not everything in the Blender UI is terrible. ;)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: knobs instead of sliders

Postby sascha » Sun Dec 07, 2008 4:58 pm

OK, that makes sense. My only concern is that there's still no visual clue indicating that "Clicking and dragging changes the button's value by 1 per pixel left or right. ", not to mention the SHIFT- and CTRL- behavior. :?
So I'm not convinced yet, IMHO a knob (with the left-right dragging behavior) next to a standard textfield would be a better solution.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: knobs instead of sliders

Postby dcuny » Sun Dec 07, 2008 10:06 pm

sascha wrote:So I'm not convinced yet, IMHO a knob (with the left-right dragging behavior) next to a standard textfield would be a better solution.

Well, there is no Shift behavior, only Ctrl. Again, this is a standard behavior I've seen in other 3D applications (even back to drawin circles in MS Paint) when you want some sort of constrained action with the mouse.

I was also under the impression that selecting controls would activate their help text in the status bar. Isn't that what used to happen in JPatch?

Some sort of constrained dragging should be consistently available throughout the entire interface, especially for 3D controls.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am


Return to Development

Who is online

Users browsing this forum: No registered users and 2 guests

cron