Knob Animations?

Visual feedback with a moving triangle placed around the knob is like its done within Reaktor.

And this works great!

It would certainly be more logical and less strange. In a way it would also be cool to see the knobs moving as if you were in front of the rack turning them with your fingers, but on the other side: if you connect a CV source in the hardware, does the knob start spinning? No, sometimes there is a led around the knob that shows the CV movement, or maybe not even that, often there is only the small bright dot.

1 Like

The thing with automatically moving the actual knob (via CV) is, it always takes the control away from the user, too, as it changes the knob’s absolute position. Now the knob is “locked” to being in which ever position the CV tells it. Often when there’s CV control available for parameters that also have knobs… you are actually introducing offset, via CV, to what ever position the actual knob is set at, and you can keep controlling the knob’s absolute position which determines the base for the movement. For this reason, too, I’m of the opinion that a separate visualization (like a LED ring or similar) around the knob, for seeing the effect of the control signal, is nicer - even in virtual modules :slight_smile:

2 Likes

I wouldn’t complain about moving knobs, but being forced to use my ears and only check scopes momentarily was the big draw to VCV for me, after years of the 'bird’s eye view" of DAW workflow. I have Pro, but still use it standalone even. I agree with you and others on a nearer to 1:1 hardware style interface.

1 Like

The same for me. I bought the Pro as soon as it came out but the vst I tried it twice and that’s it, I’m only using standalone Rack, and also for me it was a strong attraction to have a simulation as close as possible to the hardware that I cannot afford economically. My way to use vst is: load a patch created in standalone > render the track. :rofl:

1 Like

Knobs should never move. They should be taken as the center position of a bi-directional CV in or the low/high mark of positive/negative CV. I like the way Atelier Palette shows modulation on it’s knobs

2 Likes

I think the knob animations should be a developer choice as Eurorack has no standard aesthetic. My Meander module was designed from almost the beginning to have all parameters CV automatable. Actually, it was the community who requested this. So, I chose to implement this as “motorized controls” as high end hardware has. As mentioned before, anyone could stick a motorized controller in their hardware module design, but probably would not due to cost.

Again, I think this is a personal choice. But, having said that, if moving knobs are too distracting, I suggest you not use my Meander module.

1 Like

some motorised controls OK (rare, but I see some use cases, such as mixer level faders and such). It isn’t that it is distracting but rather that it makes things less ‘settable’ IMHO, but most I would expect to work as normal knobs as above, I find that way more intuitive, but again, whatever works

This seems like we are arguing over a problem that’s been solved. My (frozen wasteland, frequency domain), Alterier and others have implemented rings around knobs that show the cv affect without doing weird things like changing knobs position, my shit is open source , everyone should rip it off and make it better :slight_smile:

8 Likes

Mindmeld.

Long since.

When might we get a decent fundamental dark mode like Cardinal?

1 Like

I like the idea of knob movement as feedback to show the user that the value is changing.

I’m used to using Propellerhead’s Reason for years… They use knob movement as part of the automation system that lets you map your knob movements to the main timeline as a value curve.

You simply press record on the timeline and move a control, this highlights the knob with a green box and records the knob positions over time. when you play back the timeline, the knob moves to those positions. And, The green box highlight allows you to navigate between each mapped control.

If the user wishes to override the knob automation, you simply move the knob and this mutes the automation track for that knobs value.

As a result, it’s easy to look over your rack and visually see what knobs you have automation on, as the knobs and controls move around in real time with the automation. Makes it look better on video but takes a toll on computer performance. Obviously you can disable it as an option.

Not saying VCV needs to copy the automation. But it’s definitely helpful to show the live values on the knobs.

Actually that’s not something most people want - reason being that in many circumstances you want to send CV to a knob while being able to manually move the knob at the same time too (the knob then becoming an offset to the CV input) - if the knob moved with the CV, you wouldn’t be able to do that.

What some modules do, like our MindMeld mixers for example, is put a ring around the knob that gives a visualisation of the CV input while leaving the knob/fader itself free to be manipulated.

6 Likes

Really, the only reason knob movement works for Reason… is because the knob automation is linked with the timeline or play-head feature. I would say it offers another style of workflow. More for the final mix of the complete song rather then to add modulation on sounds.

For instance, what I do is set the length of the song in seconds or bars then set the timeline to loop. Normally this is when you can use a keyboard to play midi and record tracks as well and this is when things like Mod wheel movement are recorded. But if you want you can just let it loop and continue to add automations.

It’s not the same as simply making knobs follow whatever the CV values are.

Never been a fan of the rotary encoder style of knob with an infinite indexing rotation and indicating lights that surround the knob in real life. However in VCV It does add more feedback and looks cooler in the dark room ^.^

gotta say, the documentation for MindMeld is outstanding and i’m diggin’ how the ring light indicator works on it. Like how it updates depending on the knobs position, showing the user the offset.

1 Like

When I searched for this I was looking for the incantation to move a knob. Lots of good stuff and a few pointers to plug-ins that do so, and left as an exercise for the reader - which I suppose is fair, but I am having trouble finding something that works and was hoping for something like call setValue() or similar.

I am doing thing where I have a param that defines a number of steps, and then a param that allows you to select a step. When I change the number of steps, I change the maxValue for the select. That works, in that the select knob range is now limited, but …

I want the select knob to move to the correct relative position after I change the maxValue. For instance, if I have 16 steps, and am currently selecting step 4, I am 1/4 of the way through the range. If I then change the number of steps to 12, then I want the select knob to reflect that it is now 1/3 of the way through the range.

In the extreme case if I select 1 from 2 steps, the knob is halfway. Then I change the steps to 16, and I want the knob to be 1/16th of the way through its range. But it stays halfway. Then when the user tries to increase the selected value, the knob snaps backward to the correct position. This makes sense, but I want it to move when I change the number of steps, not when the user first changes the selected value and then have the knob snap in an unexpected/non-intuitive way.

Note, I am not changing the value of the knob I want to move. I am just changing the maxValue, and I want the knob to move to the correct relative position based on its setting (and yes, I do change the value if it exceeds it’s maxValue).

Any suggestions of a specific API, or code snippet to look at?

kind of hacky solution in e.g. docB PLC: There you can change the range of the knob in the menu and it preserves the value (causes the knob to move to a new position). I am not so happy with that but it works … reconfig is called on load or if the range (min,max) in the menu is changed.

void reconfig() {
    for(int k=0;k<16;k++) {
      float value = getParamQuantity(k)->getValue();
      if(value>max) value=max;
      if(value<min) value=min;
      configParam(k,min,max,0,"chn "+std::to_string(k+1));
      getParamQuantity(k)->setValue(value);
      dirty=16;
    }

  }

The dirty parameter causes then the update of all 16 knobs (this can be made more “unhacky” of course).

template<typename M>
struct MKnob : TrimbotWhite {
  M *module=nullptr;
  void step() override {
    if(module && module->dirty) {
      ChangeEvent c;
      SvgKnob::onChange(c);
      module->dirty--;
    }
    SvgKnob::step();
  }
};
1 Like

Ooh - fantastic. My Venom plugin also has parameters with configurable ranges. I tried to automatically reset the values upon range change, but couldn’t figure out how to move the knob. So I ended up having range changes preserve the knob position, which of course changes the value.

Now with your code example, I may revisit this. Thanks!

2 Likes