Idea for better dragging behaviour

At the moment in 0.6.2c (I dont know about the situation in 1.0) dragging seems to always happen to be calculated by the vertical offset on mouse drag. To me, this seems very counter-intuitive unless it’s a vertical slider being dragged. But for knobs, wouldn’t it make more sense to create a vector from the centre of the knob to the mouse location and use this to get a rotation value? This creates realistic knob behaviour and also allows for more precise setting of values.

If you drag off axis to the horizontal position it allows for fine control for example 5° to 10° obtuse/acute angles will give fine ctrl, but if you do want to adjust finely you can just use CTRL + drag in 0.6.2. In v1 you can enter values with the keyboard and you can use CTRL + SHIFT for finer control.

I’ve used both, and I much prefer VCV’s behavior. Dragging in a circle is difficult. I think the VCV method is also more common in other audio software, although I’m not positive.

3 Likes

Tend to agree also, dragging horizontally or vertically is more accurate.

1 Like

You click and push the mouse up, away, and the value goes up. You click and pull the mouse down, towards you and the value goes down. That is intuitive. Making the user drag a circle would be difficult and unwanted.

2 Likes

Some DAWs have an option to choose relative linear, absolute rotational, and maybe even relative rotational. But I find rotational knobs to be a horrible gesture, so I don’t even want it as a hidden option.
And there are many problems with it. E.g. what if the knob is near the screen edge?

3 Likes

I’ve sort of wondered if it would be easier to make wickedywah kind of wah wah filter sounds if the knobs worked left to right rather than up and down. That way you can kind of flick your wrist.
Sorry, I feel i’ve lowered the tone.

1 Like

The screen edge is a very valid point :confused:

Still, in this example, when I look at the knob indicator, and I want to move it from 1/2 to 1/16, my instinct is always to drag downward. Like if I was using a hardware module with a big knob like this, I would put my finger on the right side and move it down (or on the left side and move it up if I were to use my left hand.) bigknobprob

With horizontal sliders it’s even worse, I go ‘whaaat I move right and it goes left… oooh I’m moving downward-right’ >_<

edit: also, with vector knobs (for short), choosing a setting that is indicated on the panel (like the segments in the image above), would be as simple as clicking on the knob and dragging straight to the indicator, and if you move too far because of the inertia of your arm, it will still stay in roughly the same spot instead of overshooting the targeted value.

The more you do it, the more you will get used to it. It’s a pretty normal way of controlling knobs all over audio software, so plenty of opportunity to learn.

I don’t think I will ever :slight_smile: I’ve been getting used to it for over 4 years now. I do know pretty much every DAW out there does it like this. But I’ve never been part of a developing software community before, with a chance to voice my dreams.

Do horizontal sliders at least work horizontal? I’m currenly digging trough random modules in VCV but I can’t seem to find any modules incorporating horizontal sliders :confused:

They can. My module draws the same control horizontally and vertically. The horizontal one has this code:

void HorizontalWheel::onDragMove(EventDragMove& e) {
    ...
    std::swap(e.mouseRel.x, e.mouseRel.y);
    e.mouseRel.y = -e.mouseRel.y;
    Knob::onDragMove(e);
}

and it tracks fine.

1 Like

This can be done in Rack v1 with simply horizontal = true; in your knob subclass’s constructor.

2 Likes