CuteFox Modules - Intervallic Pair Quantizer | Release

Hi everyone,

I’d like to announce my first module - the Intervallic Pair Quantizer. It’s a quantizer based on 2 intervals - it quantizes the 1V/Oct input by the 1st interval, then by the 2nd, and repeats this process forever.

The idea is to arrive at cool melodic shapes through the unique sound of each possible pair of intervals. I made it because I wanted to escape scale-based quantization and these kinds of intervallic patterns are closer to the rest of my musical practice.

I’ve made a small demo of how I use it (in a shameless KFW ‘Generators’ style) which you can see below:

The module also features a Trigger output which outputs a trigger every time a new note is quantized. If you’re curious why I added it please find the module documentation here.

The module is open-source through the GPL-3.0-or-later license. Source:

I’m kind of a newbie programmer and totally new to module development & panel design. Therefore I am very open to any suggestions/feedback about the module.

Special thanks to CoffeeVCV and VCVRack, whose code I based this on.

Hope you find it useful!

25 Likes

Cool module! I have already had some fun with it.

But I see a couple issues

plugin.json needs updating

You should add the following tags to your plugin.json

  "manualUrl": "https://github.com/CuteFoxModules/CuteFoxModules/blob/master/README.md",
  "sourceUrl": "https://github.com/CuteFoxModules/CuteFoxModules",

Doing so will make the manual and your source code accessible both from the module page in the web library, as well as from the module’s info context menu.

To implement the changes you would need to submit a new release.

Pitch computation bug?

Assuming both interval values are constant, I would expect a given input voltage to always produce the same resultant V/Oct output. But based on my test below, that is clearly not happening. The output voltage seems to be dependent on past input values.

Intervallic Pair Quantizer Test.vcv (3.3 KB)

Unless I am misunderstanding the intent of the quantizer, that is a bug, albeit a potentially pleasing bug.

It would be good if you could fix the algorithm to always produce a constant V/Oct output for a given input and interval 1 and interval 2 value. However, I think it would be cool if you provided an option to use the current bug computation, or the correct computation. I have no idea what you would call the current computation.

1 Like

Hey!

Thanks for the feedback! I will update the json ASAP.

Regarding the pitch computation: this was not what I set out to achieve, but it is now the intended way to compute pitch values. I will try to explain why.

The way it is now is always relative to the last quantized note. When it first receives a note it will quantize it according to a standard 12 tone, chromatic scale, since it has no other point of comparison. From that moment on it will always calculate values relative to the latest quantized note.

This is because it is meant to be relative, and not an ‘absolute’ quantizer. What I call the current mode is loose mode, since it’s not super strict.

The issue arises when there is a big jump in voltage values. If it is currently quantizing by a semitone, and you give the pitch input is rises suddenly by 1.5Volt, what would you expect a quantizer to do? Normally there would be a note in the scale which is near this voltage value, but in our case any note fits the ‘over 1 semitone difference’ rule.

The solution is for it to be loose and just find a note in that vicinity. This means that huge jumps in voltage values just don’t work well with this - which I am OK with since it is meant as a linear-style quantizer with relatively linear inputs.

I have tried making a strict mode, but besides it being challenging, it’s not actually very useful - in the above example, it would give us a ‘true’ interval which is somewhere 1.5V above the previous note, but it would sacrifice the ability to then go on with more linear voltage values, and with enough jumps, would make a huge difference between the current input voltage and the quantized voltage value.

So in summary, I think this looseness adds to the musical intention of the module, and brings with it obvious cons. You can’t predict notes 100%, but for some musical situations you don’t need to.

Sorry for the huge text. Hopefully it is clear. Let me know if you disagree with me - I intended to eventually make a strict mode but now I am not sure it would be useful.

Thanks again!

1 Like

I have to admit - the current design does give interesting results!

Here is a quick random tune using the IPQ

Intervallic Pair Quantizer Random Tune.vcv (3.6 KB)

If you don’t plan on implementing an absolute quantizer version, then I think I will attempt to create one for my Venom plugin.

3 Likes

That sounds great! Happy to see it in use.

I might someday have a go at making a strict mode, but I’m curious to see what you can come up with.

Both examples really remind me of early Steve Vai songs.

I’m looking forward to playing with this quantizer.

1 Like

I forgot - you should also add the quantizer tag to your module within plugin.json

      "tags": ["Quantizer"]

Maybe take a moment to review of the documentation regarding the plugin manifest: Plugin Manifest - VCV Rack Manual for all the points to cover.

I’ve just updated the plugin.json so it should be all OK when the update goes live. I didn’t really understand how this stuff worked when I first made the plugin, now it makes sense. Thanks for the help!

2 Likes

My Non-Octave Repeating Scale Intervallic Quantizer is now available for beta testing.

1 Like