Octave Quantizer?

Hey all, I’m trying to figure out how I could quantise say an lfo into only a octave scale.
I want to control the pitch of a sample but only by octave increments. -4oct,-3,-2,-1,0,1,2,3,4oct.
Is there a way to do this currently with existing units?

The Grid Quantizer should make short work of that.

I was thinking that. Just not sure how to set it up. I tried putting one before the scale quantizer and then another time placed it behind but I’m not getting the results I’m expecting. Totally user error, I’ve confused myself :joy:

1 Like

You are overthinking it. :slight_smile: Here’s a channel chain preset to check out. The output is an audio rate sine wave changing pitch quantized to octaves. Grid Quantizer is in the V/Oct subchain being fed by an LFO rate Sin Osc… Adjust the Grid Quantizer’s pre control to increments of 0.1 to reduce or expand the number of octaves it covers.

octave quant.lua (4.7 KB)


Joe thanks so much!
I knew I must have been over thinking things.
I’ll have a look at it and get back to you.
Cheers :blush:

And just in case, if any of the following statements are not clear then I highly recommend asking more questions so that you go away with problem solving tools :wink:

  • According to the 1V/octave standard, octaves are exactly 1V apart.
  • Inside the ER-301, 1V is represented as 0.1 because the input range of -10V to +10V is mapped internally to the range of -1 to +1.

Thanks so much for this. Just reading over both yours and joes comments has already clarified things for me. I’ve been really jumping into making my own custom units and I’m loving it. I do have lots of question but my main problem I’m having is how to setup custom unit controls. Just can’t figure it out :grimacing:

Where are you getting stuck? Creating the controls, or assigning them?

I’m getting stuck with assignments. I can add controls to a custom unit but I can’t figure out how to assign those controls to parameters in units or how to assign a cv input, say A1 to a custom unit control.

Also regarding the octave quantizer, I think I have it working correctly but I’m not getting the results I was imagining.
Basically I’ve been using the octave control on my sequencer to make a manual loops (sharing a buffer) shift up an down octaves along side a melody. It’s amazing.
But what I’m trying to achieve now is not to use my sequencer for octave control, instead have another cv source like a synced lfo get quantizer into octave shifts.
Sine = 0,1,2,1,0,-1,-2,-1,0 oct
Saw = -2,-1,0,1,2,-2,-1,0,1,2 oct
Tri = -2,-1,0,1,2,1,0,-1,-2 oct
Something like this anyway, hope it makes sense.

And thanks so much for helping me, really appreciate it.

I’ve thought about doing one of those written tutorials on the basics of a custom unit, but I want to hold off until 0.4 comes out to see if there are any big changes to custom units.

Let’s say you create a custom unit linear control called lin1. If you want to assign an offset coming in off of A1 to lin1, then enter the subchain for lin1, and at the front of the chain, press the Source (the little graph display) on the far left and choose A1 as the source, just like you’d assign it anywhere else. When you come back up out of the subchain, remember to set the gain (you’ll likely want 1.0 but whatever works in your context) for lin1's subchain. You can also set bias if needed.

To assign the lin1 custom control to control something within the unit, go into the subchain where you want to make the assignment. At the front of the subchain, again press on the Source graph display, just like you were going to assign ABCDx. You’ll notice in the lower display, it says Inputs, Globals, Locals. It looks like this:


Press the M button until you get to “Locals”. There you should see all of the custom controls you’ve created. Choose the one you want (in this example. lin1). When you come back up out of the subchain, remember to set the gain for the control you’re modulating so that lin1 has some effect on it.

Let me know if that’s not clear and I’ll try to grab some screen shots.


Fantastic! Thanks joe :smiley:
That makes sense. I think I did it this way but messed up the gain somewhere. I’ll have another shot at it after work.
This little description will help immensely.

Remembering to set the gains is what left me scratching my head at first. Eventually it becomes second nature.

1 Like

So keen to clean up my Frankenstein custom units into proper units I can share. Thanks again!

1 Like

So I’ve had lots of success creating custom units, thanks so much for the help, it’s opened up the 301 so much. But I havent been very successful creating the the octave quantizer imagined. Instead I’ve been thinking something like the ALM Beasts chalkboard or better still this:

Would there be an easy way to do this with the existing units?
Or better yet would you be able to code something like this?


You would need to step through a bunch of offsets

1 Like

Oh that’s an idea, offsets and a sequential switch. Is there a sequential switch unit?

Have you tried the Voltage Bank bespoke Unit in my library? The voltages you store in it could be octaves, and it does include a precision adder with the input signal if you enable it. I think it would get you pretty close to your wish. See video for a demo.


I missed this! Looks great. :clap::clap::clap:
So if I store say -2,-1,1,2 octaves from my beasts chalkboard, I could switch between them using a gate or sequencer? Brilliant!!!
Will be trying this as soon as I get home from work. Thanks!

Sure, or just use an internal offset to store values of -0.2, -0.1, 0, 0.1, 0.2.

1 Like

So I see we are now talking about an octave sequencer and not a quantizer. I wonder what went wrong with your quantizer attempt?

Also, don’t forget that you can just record a CV sequence and play it back as internal modulation. Slice the recorded CV up for even more control.

Pro Tip: If you use the Raw Player for the CV playback, CPU usage will be very low.