Dewb/monome-rack

(very minor!) unexpected Earthsea *shape* knob behavior

Closed this issue · 4 comments

Platform/Version

  • OS version: macOS 13.1 Ventura
  • Rack version: 2.3.0 x64
  • Plugin version: 2.0.3 beta

Describe the bug
When instantiating an Earthsea module, the shape knobs all initialize at 5V, but the actual SHAPE x output voltage for each channel is 0.001V and the on-grid display shows no voltage applied. When turning clockwise, I need to pass 5.1V in order to register any change. When turning counter-clockwise, I need to pass ~4.86V. Either will cause an sudden jump in outgoing voltage as well as on the on-grid display.

As a user:

  • I want the knobs and voltages to all initialize at their minimum value
  • I expect the 0V knob position to output 0V (shows 0.001V when inspected)
  • I expect the 5V knob position to output 5V (shows 4.998V when inspected)

VCV Rack logfile
log.txt

How to Reproduce
Steps to reproduce the behavior:

  1. Instantiate an Earthsea and attach it to a grid
  2. Hover over any of the shape knobs and the popup will say SHAPE x: 5V
  3. The on-grid display shows no voltage is applied to any channel, however
  4. Patching any of the shape CV outputs and hovering over will show 0.001V
  5. When any shape knob is adjusted past 5.1V clockwise or ~4.86V counter-clockwise, voltage and on-grid display will jump to that value

Additional context
Thank you for all of the incredible work on these, holy moly!!

Dewb commented

This has come up before and as far as I can tell this is accurately reproducing hardware behavior. #25

Unfortunately it is extra confusing in the software environment. I originally decided not to do anything about this, but it’s worth revisiting; doing something as simple as making sure the initial knob and preset states match up would probably reduce confusion.

Dewb commented

Thinking about this some more, I don’t think it would be hard to init knobs to the preset output state instead of their saved param values (as suggested in #25.)

oh rad, yeah that makes a ton of sense -- i had totally forgotten the hardware behavior.
anything to save you from having to repeat this reasoning again and again 😅 -- the simple solution sounds totally good for this case!

Dewb commented

I remember why I didn't implement a tighter synchronization between the knobs and the outputs; there are some edge cases that really require deeper introspection than I'd like into the module internals from the UI layer.

The good news is that most of the issue is about the fresh module init state -- it's pretty hard to get them de-synced otherwise -- so merely changing the parameter defaults to 0.0 fixes 99% of the problem. Should have just done that long ago!