VCVRack/AudibleInstruments

Bernoulli Gate: toggle and latch don't match manual?

Opened this issue · 4 comments

From the Mutable Instruments manual:

# The Bernoulli gate
Upon receiving a trigger on its IN input (1), the module tosses a virtual coin: if the outcome is heads, the trigger is sent to output A (3); if the outcome is tails, the trigger is sent to output B (4).
The probability knob (A) and the associated CV input (2) change the odds of the “heads” and “tails” outcomes. In extreme settings, the outcome is no longer random - causing the module to behave like a voltage-controlled switch.
## Toggle mode
In toggle mode, the module associates the “heads” and “tails” outcomes to a different pair of decisions: “continue sending the trigger to the same output as before” and “send the trigger to the opposite output”. As a result, when the probability knob (A) is set to its maximum value, the trigger will alternate between outputs A and B.
Press the switch (B) to enable or disable the toggle mode.
## Latch mode
When the latch mode is enabled, an output (3) or (4) stays at +5V until the other output gets activated.
Hold the switch (B) for more than 1s to enable or disable the latch mode.
Toggle and Latch settings are kept in memory even if the module is powered off.

My expectation from reading this is that latch mode and toggle mode are two separate states. Long-pressing the button in Bernoulli doesn't do anything (light is actually dead, per #70) and the right click menu shows a toggle/latch comment in the menu. Latch mode actually does not latch, but simply has toggle turned off.

This had bothered me as well and I finally got around to fixing this. Trying to figure out the proper etiquette for submitting a pull request ATM. I just branched off of v0.6 in this repo, did not fork. Should I just go ahead and push my branch and submit the PR?

Please note that I've read https://vcvrack.com/manual/Contributing.html and I've been through the three "curating, updating and reviewing plugins" threads, but I'm still confused. It's a lot of text.

If you just started working from a checkout, you'll want to do some hygiene:

  • Fork the repo on Github
  • Migrate your existing changes to a feature branch (git checkout -b fix-bernoulli-gate)
  • Change origin on your repository to your github fork (git remote set-url origin <special url you have access to here>)
  • Fetch your new origin (git fetch origin/master)
  • Rebase fix-bernoulli-gate on top of the new origin
  • Push this new feature branch to your github
  • Open the PR from there

This is the "cleaner" way to go.

It's possible to change your origin and rely on merge to sort things out, but merging upstreams in this way is discouraged since it makes dirtier git histories.

@ZwergNaseXXL Have you tinkered with this since you last posted? 😰

It's been over 3 months, eyh? I totally slept through the release of v1, actually was hoping to get my changes in before that happened. Oh well.

Since Branches/Bernoulli is widely known and used module and changing the modes necessarily involved some UI changes, I didn't want to irritate people who are already using it. So I was going to post about it in the forum, offering 2 or 3 alternatives and see what people prefer. Somehow I never got around to do that though...

But I see nothing has happened with the Bernoulli modes, so my changes are still valid. Now I need to merge the v1 changes first, then make some screenshots and create that community post. Very very soon. Promised.