Stop Random notes repeating

Any ideas to help with stopping random notes repeating same note value twice in a row?

In a generative patch using random note CV, quantised to a certain scale it sticks out a bit when the same note repeats twice in a row.

Many thanks

1 Like

There was a discussion about this topic a while back, but I can’t find the thread now.

If you are using a random note CV anyway, why not just use 2, and mix the CVs before going into your quantiser. The probability of them both hitting the same note twice is much lower.

I have the same itch and have often toyed with the idea that if I were ever to develop a quantizer it would have a “don’t repeat” feature. In the meantime I can’t think of any module or combination of modules that would do this.

Maybe Shift-Register the CV together send it through an Arpeggiator set to Random… ?

Edit. no. (Just tried it out…)

The Gate/Trigger output of Quantum works like this so it will only output a signal if there’s a change in notes.

Another thing you can try is using the Slope Detector from Count Modula. You send the sequence to it and then you can choose when to trigger your voice according to the output you use.

This is a great idea!

1 Like

the Probably Note module from Frozen WasteLand have a not repeat option. I don’t use this option so i don’t know how it works, but maybe it is what you search for !

2 Likes

I know. But as I understand the OP he doesn’t want silence on repeated notes, he wants fresh notes on every beat, that is guaranteed to never be the same as the previous one.

I took the problem as a challenge and made some experiements, with comparators, switches, shift registers etc. The problem is this: It’s a recursive problem. Each time you set up another chain of comparison to the previous you lessen the chance of repetition but you can’t get rid of it. And it gets ugly fast with all those modules. So it’s a heuristic that needs to be built into the module.

I think this is it! @Puzzledbadger This is what you need. It will take your random input and quantize it to your preferences. Because it has the “No Repeat control” you can determine the amount of repetition, down to no repetition: " * No Repeat controls the probablilty that a note can repeat - at 100% a note will never repeat".

Check it out:

The fine manual: FrozenWasteland/README.md at master · almostEric/FrozenWasteland · GitHub

that is a great module, forgot about it, used it a lot in the V1 days… Eric has made tons of highly underrated and underused modules…

2 Likes

Those are fantastic tips folks, time to try all out!

1 Like

This is a job for an accumulator, which takes a voltage, adds or subtracts a given amount from it when triggered, outputs this second voltage, and then adds an amount to that voltage, and outputs the new sum, then adds to this third voltage, et cetera. Here is how you build one:

nonreprand1

In this case the amount we’re adding is the output of the FUNC, which is 0.7v, producing the series 0.7, 1.4, 2.1, 2.8, et cetera. This works great if you always want your voltage to increase by 0.7. What you want, though, is to change your voltage with each trigger by an amount that’s sometimes positive, sometimes negative, but never zero,

nonreprand2

Here’s a square wave, which (when centered on 0v) is a voltage above zero, and sometimes below zero, but never zero. This one’s either 5v or -5v, so if you replace the FUNC above with this, your voltage will always change by five volts, and never stay the same. This solves your repeating pitch problem, but we have to admit that as a melody, (5, 10, 5, 10, 5, 0, -5, 0) isn’t very engaging. We want the voltage to change by a “random” amount that’s never too close to zero. So, let’s modulate the amplitude of the square wave.

nonreprand3

Here we run that same square wave through an amplifier, to control how big a step we want to accumulate. I figure we want our pitches to rise or fall by no more than an octave (1v) and no less than, say, 0.3v, which is in between a major and minor third. Somebody on this forum will be better than I am at explaining the arithmetic for this, but that means setting our modulator - the LLFO on the left, producing “random” voltages - to 14% scale at an offset of 1.3v - or a range of 0.6v to 2v. The VCA interprets this as 6%-20% amplitude, which when multiplied by the +/-5v of our square wave, results in a range of +/- 0.3v to 1v. You now have random voltages that are never farther from 0 than 1v, and never closer than 0.3v.

All that’s left now is to just slot it into the accumulator where the FUNC was. Now you have a little melody of pitches that always change with every trigger by at least +/-0.3v. And without the scopes it’s pretty small and cheap too:

nonreprand5

The main issue with this approach is that there’s nothing keeping your voltage in any particular range, and it could easily accumulate out of bounds. I suggest using Orange Line FENCE to rein in your pitches.

Also: If you use an LFO with a controllable pulse width, you can use this to control whether your voltage is more likely to go up or down. Wider pulse width = more ascension, narrower = more descent.

2 Likes

Here’s a patch with all these steps, PLUS I fixed the obvious problem that voltage leaps of 1v, when limited by FENCE, often result in repeated notes (0.3v plus 1v is 1.3v, and if this is outside FENCE’s range, FENCE will correct it to 0.3v - same pitch as before). So I changed the offset/scale settings of the modulator LFO so that voltages will change by no more than +/-0.7v and no less than +/-0.3v.

nonreprand.vcv (3.3 KB)

What I’m missing in this setup is a Quantizer, and it can’t be at the end of the line because it can still quantize 2 different cv’s to the same note ?

1 Like

True, much depends on the quantizer setting. If the smallest interval we’re creating is 0.3v, if any of the quantizer pitches are more distant from their neighbor than 0.3v, it stands a chance of repeating a pitch (I’m pretty sure this is correct?). It works in principle, though, and this can be avoided by adjusting the variables (min/max leap size)

1 Like

Impressed by Probably Not(e), fed it a constant cv , tweaked the settings and it never played a not(e) twice.

Even in the closet.

3 Likes