Knobs Versus Faders

I am in the early stages of getting beta tester feedback on the VST Instrument plug-in I am creating.? One of my testers this weekend expressed a preference for faders (I chose knobs) in my plug-in?s user interface.? That got me to reassess the situations when knobs and faders might be most appropriate.

The fundamental property that both knobs and faders afford is allowing the user to use an offset of a control to represent a value.? In the case of the knob, the offset is an angle, and for the fader it is a horizontal or vertical position. Adding precision for a knob means a larger diameter to afford showing more of a visual change for the same amount of angular offset.? Adding precision for a fader means a taller or longer fader to show more pixels of change for a given amount of value change.

The big drawback with a knob is that is does not provide the most intuitive mapping between how the knob turns and how the mouse needs to move to control the knob.?? The two popular methods are to have the knob point toward the mouse, and to have a linear mouse motion turn the knob.? The first method is not as precise, but the second feels a bit disconnected.

The big drawback with a fader is that it needs a lot of screen real estate in order to provide that same level of visual precision as a knob.? Let?s say you have a 64×64 pixel knob.? A full rotation of that knob provides 201 pixels of rotation around its circumference.? Most knobs are limited in range to provide some space for labels, so say 15% of the space is taken away for that, you are left with about 170 pixels of space to rotate.? In order to provide a fader with the same amount of visual precision, you would need a fader that was 170 pixels wide (plus the thumb width and any padding).

The bottom line: Faders are more intuitive but if there is an advantage to working with a smaller amount of space a knob might be a better choice.

Leave a Comment

Your email address will not be published. Required fields are marked *

*

%d bloggers like this: