Using XORS with clocks for rhythmic variations

This is a trick I love so much that I have to force myself to not use it in every patch!

Instead of using a straight clock to drive a sequencer, put the clock into a clock divider, and then use XOR to compare the straight clock with a divided clock. This will have the result of periodically skipping a clock step, and giving your resulting sequences cool rhythmic variations.

The result sounds random but is on beat and is a repeating pattern. The ear knows that the sequence is varied but has an inner logic to it.

The perfect sequencer for these shenanigans is @jeremy wentworth’s GridSeq, because advancing in the X and Y directions separately introduces even more variation.

Because of VCVRack’s one sample delay, per module, it’s best to XOR the /1 output with another divided clock so that they actually happen simultaneously. You can XOR the clock directly with a divided pulse because the pulses are not infinitely narrow, but this seems cleaner.

No sound sample, just an example patch. Go forth and make skippy sequences!

xorClocksSequencer.vcv (18.6 KB)

12 Likes

Maybe you have not noticed, but it looks like your patch upload didn’t work :slight_smile:

Also fun combine odd and even divisors.

1 Like

Fixed. Either I screwed it up with text editing or uploading multiple files in one go doesn’t work exactly right.

1 Like

this is a neat trick! thanks for sharing.

i usually go for the bernoulli gate, because i’m fine with random skips and variations, but for a more regular effect this will be really useful.

2 Likes

Yeah, I’ve used Bernoulli gates this way too, but I love how the xor trick can take something predictable and turn it into something that sounds unpredictable, but is actually deterministic.

It actually suggests a cool simple module: a trigger skipper. One knob with CV that controls how often a trigger is skipped. Maybe do a quad gate skipper so you can cascade them for more complicated patterns.

3 Likes

Isn´t that possible with Laundry Soup, it even is quad ?

Oh… and cool idea ! (that´s what i intended to write in the first place) I feed sequencers with all kinds of gates, but this seems “evil genius”. :wink:

Laundry Soup (computerscare modules) does have random trigger capability by using the question mark symbol: ? . For example the sequence created by entering this in the text field:

1?2

will trigger on step 1 with 50% probability, and then will always trigger on step 2. It is 3 total steps in length. The limitation is that the probability is always fixed at 50%.

@chaircrusher I think that Audible Instruments “Bernoulli Gate” is exactly what you are describing with your trigger skipper idea. Am I missing something?

3 Likes

The Bernoulli gate takes a clock and depending on the probability knob randomly lets through a percentage of the input triggers.

The XOR trick is more regular. If you take a clock divider and use the /1 and /3 outputs into the XOR, it will play 2 triggers, skip one, 2 triggers, skip 1 etc. /1 and /4 skips every 4th tirgger. It’s deterministic.

What’s more you can cascade XORS for more fun time, like (/1 XOR /5) XOR /7 will skip both the 5th and 7th triggers, giving 5 triggers over 7 triggers.

1 Like

Oh my, I had no idea! This opens up another can of worms. :smiley:
Speaking of… will some of the documentation get updated? I notice that “-” doesn’t work anymore, so I replace “8-4” with “00004”. Same with the example of “@4,4” to create a snare pattern.
And then there’s all of the new modules. :slight_smile:

1 Like

This started out with your xor trick and gridseq :slight_smile:

Since then I have been experimenting more with rotating clock dividers and xoring 4 signals. It is fun to get theses patterns out.

6 Likes

Sounds cool ! Also i can see you like JW modules :slight_smile: I like them too ! whoever makes them is a genius ^^

Yes what a genius. I use those modules all the time. It’s like I know them inside and out. The just are so familiar to me.

2 Likes

Yes the documentation will be updated and I’m sorry about it being out of date. For now you’ve got it right: use the 0 for a “rest”. You can use the “@” symbol to make a rest of any length. Another way to program the “backbeat snare” pattern you describe: 0@4,4

1 Like