Non-quantizing range limiter

I like using OrangeLine FENCE to keep pitch CV within a defined range. It sure is useful how it increments voltages outside the range by multiples of +/-1v, using the principle of octave identity to keep pitch classes the same, harmonically speaking.

Useful! But it’s got a problem, for me! The problem is it quantizes pitch CV to 12 equal-temperament pitches. I work in 5-limit just intonation, so this is an issue, as FENCE has led me astray from the PURE HARMONIC RATIOS I prize.

Therefore I had to roll my own - NONQUANTRALIM™, the Nonquantizing Range Limiter (attached).

Q: Does it work?

A: PRETTY CLOSE! Sometimes the output upper and lower limits are fuzzy by about +/-0.05v, but the voltage that comes out always differs from the input by multiples of 1v, so I’d say it’s OK! There’s also a few spiky artifacts probably caused by micro-timing issues, but a SLEW smooths them right out.

Q: I know a better way to do this!

A: Please tell me what it is!

Nonquantralim.vcvs (11.0 KB)

(In other news, I have loads of little saved-selection doodads like this, that I’ve made to solve problems specific to my compositional style, and can post more if people want to see them)

1 Like

I have no idea what I’m doing but how is this ? (Wk-101 is set to Just Intonation)

When changing the range you also have to change the step on Fence

1 Like

You might try Count Modulas Voltage Scaler.

But it also might be that I didn’t understand what you want.

1 Like

It’s good, but it doesn’t really allow me to change keys - this constructs a chromatic scale built from C, but if I need ratios built from another root, that’s too bad, unless I want to manually adjust the tuning on the fly. In my case I’m solving that problem elsewhere in my patch, and I just need the range limiter with octave identity

1 Like

A great scaler, but it doesn’t preserve octave identity by adding/subtracting volts only in increments of 1, and therefore makes a mess of my Pure Harmony

Maybe load the scala file in this ?

You know what, I think I never realized what the Step knob on FENCE does - it might be exactly what I need after all

1 Like

Honestly, I also don’t know what it does :blush:

1 Like

Apparently it’s a fold interval! Set it to 1v and FENCE adds/subtracts 1v from any input CV outside the defined range, which is exactly what I need. If only I’d noticed this before I spent yesterday evening designing a pretty good replacement. I should post on this forum more often I think!


I’d be curious to hear some music you are making with this setup!

I should have some results of the current research phase soon - here’s some prior results in xenharmonic ambient domains:


I use this, works pretty well for interpolating values into a range without applying quantisation

although 99% of the time I will immediately follow it with Quantum to do exactly that

1 Like

Great stuff! Evokes a rainy forest hot spring in Japan I once visited, a happy place.

1 Like

Really lovely, nice use of space and distance!

1 Like

Some of the timing issues could be eased by using a pair of AO-106 instead of lots of AO-101.

All the operations of the AO-106 happen in the same sample, whereas you have a 1-sample delay along each of the AO-101 devices.

1 Like

I think better yet would be using a single AO-118. Work from top to bottom in left column for steps 1 - 6, then move across the bottom for steps 7 and 8. The result of step 4 can also be passed to the right so that it can be used as the Y value in step 7. (of course the formulas need to be adjusted a bit regarding use of X vs Y in any given formula)

I don’t understand the original patch, but I’m pretty sure the following gives the same result, and with the couple of sample delays added in, all paths have consistent timing, so there should be no need for a slew limiter.


That makes perfect sense - I tried setting it up that way and found that it was like, one notch wider and used 1% CPU, so I rejected the idea, not realizing it had solved my 1-sample-delay problem