Bernie - A Useful Custom Global Chains Setup

I thought it about time I did something interesting, far too much head fail recently and I needed something to lift my spirits, so…

I am happy to introduce you to Bernie - an implementation of a Bernoulli gate - popularised in Eurorack by Mutable Instruments Branches.

I love Branches, it’s the perfect way to introduce controlled randomisation into a patch, I invariably use it to send drum triggers to different ‘hits’, but there’s all kinds of uses for this functionality.

I don’t mind admitting it took me a little while to work out, ostensibly a few days, percolating. Finally… I realised what the patch would be and spent an hour or so putting it together this evening.

Bernie is a set of Global Chains, load them up, reassign a single cycle square or pulse waveform to the Native Players in Chains A and B and insert a slice at the beginning of the sample. Put your external trigger into G1. In the user area create two one-shot sample players and assign the trigger outputs of Global Chains A and B respectively.

The probability is set at 50/50, the source of random is a white noise and sample and hold combination. This is routed to A and B, A has a positive trig threshold, B has a negative trig threshold.

There’s an offset and a VCA before the sample player trig threshold, this is to make sure the random is definitely one or the other and to only allow a very short trigger of the Flip signal through, this was tricky :slight_smile:

I can’t think of a way to assign one control to weight the probability, anyone any ideas?

Edit: This is now sorted - see patch notes below :slight_smile:

Have fun!!

Edit: This is the latest version:

Bernie.lua (30.1 KB)

Here’s a very short video demo:

Bernie Demo


Between this and the vinyl-style custom unit from @rbeny/@kilchhofer I’m really wishing I didn’t have to dive so heavily into acoustic composition right now. Excited to try this when I get the chance!

1 Like

Really good fun, nothing stopping you implementing multiple instances of this, so you could have A1 and B1 and A2 and B2. I can’t think of a way to send it to more than two destinations, but of course, it wouldn’t be a Bernoilli gate then! Probably better off using the sequential switch for those use cases.

CPU usage is low, it was at 17% for everything, so definitely going to be forming part of my drum setup from now on.

I would expect this patch to change as new units become available that will make this sort of thing easier to implement and not require the little tricks, but it does it again, another testament to the flexibility of the ER-301.

I won’t be getting rid of my Branches just yet, having the knob and CV input to control probability is still missing from this patch. (Edit: This is sorted now - see below!)

Perhaps @Joe or @NeilParfitt will do a demo video of this? :blush:

1 Like

Looks great! Looking forward to trying it out. :slight_smile:

1 Like

I sorted this too… patch a 5V offset generator into say A2. In the Flip Global Chain, in-between the White Noise and the Sample and Hold units, insert a Ladder LPF followed by an offset unit. Set the f0 parameter of the LPF to something like 1.6KHz, set the Offset to 0, assign A2 to the amt param add 1.50 gain. Add another Offset after the Offset amt input and set it to -0.250.

This gives you all B at 0, All A at 5V and a nice balance in-between. It might need some tweaking, when locked to one side or the other it may occasionally get one wrong :wink:

If the reversed A/B direction gives you OCD jitters, just invert the signal hehe

Edit: Better results with Q set to 0 in the filter!


Worked a treat for me! I’d be happy to do a quick video showing how to set it up if anyone would find it helpful. I used the “perfect square” waveform from the adventure kid pack.

Actually my CPU for just this with the two-one shot samplers bypassed and disabled was only 8-9%. Given the 301 runs at 3% empty, it’s only ~5% CPU, so it’s pretty darned lightweight.



Excellent - try the probability I just posted too - that’s working pretty good now I adjusted the Q!

I’d love to see you do a video of this @Joe :smiley:

Yes please! :smile_cat:

I’ve got it queued up. :slight_smile: When I started setting things up to make the video,I found a few things I want to clarify with @anon83620728 first so as not to cause confusion. But, coming soon!

In the meantime I posted another video. It’s an independent technique, but I think it is going to pair up super nicely with Bernie. I’m excited anyway!


Yeah, it’s quite a finely balanced patch with quite a few subtleties that are not immediately obvious, we can chat tomorrow @Joe - apart from a trip to the Post OfficeI am around all day.

1 Like

Just had a great Skype meeting with @Joe and both resolved the issues he was having with the unit and learned a little more (mostly about duty cycles of what are supposed to be triggers from various bits of gear!)

Video coming soon apparently :wink:

In the mean time here’s an updated version with slightly better performance, just a few tweaks to a few parameters:

Bernie.lua (30.1 KB)

edit: It has struck me while doing this that the ER-301 allows development of patches that are really not that far removed from the process that would be followed for a circuit design - it’s very impressive!


Yeah, really interesting stuff. Testing 3 trigger sources, the pulse widths of the triggers vary pretty dramatically.

Eloquencer: 14ms
Beatstep Pro: 76ms
Maths Ch1 EOR: 304ms


304ms is not a trigger, it’s a gate!

76ms is questionable!

14ms is a trigger :smiley:

If you a re using Bernie, you need triggers, or you need a way to convert those gates to triggers in the ER-301, you would need to do this on the A and B global chains, after the G1 input that controls the VCA that just lets part of the Flip signal through!

Turns out on the Beatstep Pro’s drum sequencer, you can set a “gate length” as a percentage of the step, on a per step basis, or adjust all at once. It defaults to 50 out of a 1-99 range. So bringing that down to 1 for all steps reduces the gate to ~3ms at 120 bpm. :slight_smile:

That’s more like it!

Bet it’s triggering like crazy now :smiley:

Yes, working great! I guess both the Eloquencer and the BSP are really gate sequencers - they just have different defaults for gate length and the Eloquencer’s default is more akin to a trigger. Maths is not adjustable AFAIK but I’m not sure the EOR signal on it was designed for this purpose.

At any rate, I’ll be sure to point out this caveat in the video. Just a matter of understanding what is expected for the input!

1 Like

I’m really happy, @Joe has done a great introduction video to Bernie… enjoy:

Oh and here’s the AKWF:


you must be mistaken with your maths eor measurement, i use the eor and eoc on maths constantly to ping filters, they are ultra short and very hot +10V. with the response knob you can further lengthen or shorten the trigger, but a trigger it is for sure…something like 10ms i suspect.

I think EOR depends on decay time, EOC should stay high unless in loop mode I think.

I think @iPassenger must be right. The first time I tried Bernie and reported it was working for me, it was with Maths EOR as trigger signal. Then I tried again later and got unpredictable results. I thought I had broken the patch somehow, but when @anon83620728 and I isolated the root cause by eliminating differences, it all came down to pulse width.

Will have to have a play with Maths and report back on this.