## Random Events / CV

I hope to add some descriptions of how these constructs work at a later date.

**Simple Bernoulli Gate**

Randomly send gates or triggers to one of two channels.

The probability setting always specifies the percent chance of selecting channel 2

*EDIT - New version V2 uses OCT to round instead of QNT*

VCV Fundamental Simple Bernoulli Gate.vcvs (12.6 KB)

**Bernoulli Gate**

Randomly send gates or triggers to one of two channels.

The probability setting can either specify the percent chance of selecting channel 2, or percent chance of toggling between channels 1 and 2.

*EDIT - New version V2 uses OCT to round instead of QNT*

VCV Fundamental Bernoulli Gate.vcvs (20.8 KB)

**Bernoulli Toggled Flow / Gate**

The construct become very simple if all we need is the toggle mode. The RANDOM probability feature makes construction almost trivial.

And we pretty much get for free an entirely new feature - Two switched channels controlled by the gates that control flow of signals through A or B.

VCV Fundamental Bernoulli Toggled Flow - Gate.vcvs (6.5 KB)

**Random Walk CV**

My attempt to provide a random walk similar to (but definitely different than) the Bogaudio WALK module. The VCV RANDOM module can also do a form of random walk, but this construct supports more localized variability within the context of a slowly changing average.

*EDIT - This version 3.1 uses the same concepts as before, but the implementation has been largely redesigned to make it significantly smaller and use less CPU. Version 3.1 fixed a bug in V3 where an 8VERT knob was accidently nudged off its intended -10V setting*

VCV Fundamental Random Walk CV V3.vcvs (19.4 KB)

Here is a somewhat cryptic explanation of how the random walk works:

Base Output - VCA MIX

- Sums two inputs
- Current value + random delta derived from noise: VCA CV is 100% (10V) only if magnitude <=5, else 0%
- Current value - random delta derived from noise: VCA is 100% only if the first magnitude >5, else 0%

- This arrangement always guarantees output within +/- 5V

The Random delta is derived from

- Noise - running average of 6 consecutive samples. Passed through series of 6 Mutes, with each one going to a MIX set to average the inputs.
- Times 8VERT attenuation for max rate of change (defaults to 10%)
- Times VCA attenuation for final rate of change

To determine if the (Current value + next delta) magnitude is >5, use a modified combination of full rectifier + comparator:

- Split signal in two
- multiply 1st by 0.1 and use as CV for 1st VCA in a VCA MIX, with 10V input
- multiply 2nd by -0.1 and use as CV for 2nd VCA in a VCA MIX, with 10V input

- The VCA MIX output yields the rectified value (absolute magnitude) divided by 10 (value between 0 and 1)
- Pass through OCT to round to two possible values
- 0 (original value within +/- 5V range)
- 1 (value outside of +/- 5V range)

- Multiply OCT result by 10 to get controlling CV for the - delta signal
- Negate the prior result (NOT gate) to get the controlling CV for the + delta signal

Correct sample delays need to be carefully inserted to make sure all signals arrive at the Base output VCAs at the same time. I use mostly MUTES to insert sample delays.

Final output

- The Base Output is sent through low pass VCF for smoothing
- Then offset added
- Then final attenuation via VCA yields final output