SIM Development thread

I just set Rack to an empty patch, quit, deleted the plugin folder, loaded Rack again, updated the plugin, quit, opened Rack, checked the browser - no Coerce or Coerce6, just the blank, oddly enough. Here’s the log…

log.txt (103.2 KB)

Does the slug in your pugin.json file match the slug in the module code? Have you flagged the module as deprecated/hidden in the plugin.json file Have you added the model in your plugin init code?

Any of these can cause your module to not appear in the browser


I see in the log where the SIM-2.0.0. plugin was extracted

And the SIM 2.0.0 plugin was loaded.

Have you tried subscribing to the plugin in the library? That sometimes fixes this type of problem for me. Sometimes I have to “remove” the “modules” first from the library.

I am subscribed, let’s see what happens if I unsubscribe and resubscribe…

OK there they are. Turns out I had already removed them, and they needed to be added - weird, given that I’m running a patch with a COERCE in it right now. Thank you @cosinekitty @soundismovement @k-chaffin and the venerable @CountModula for jumping in to help!!!


Anyway, these modules are still awesome, thank you

1 Like

The slug juggling happened before the initial release so I didn’t bother.

But thanks! for the short & complete manual on how to handle a situation like this in the future.

1 Like

I’m bumping this thread because I’ve just discovered Coerce and its freaking awesome. Its exactly what I’ve been trying to patch up - a customisable quantizer! Thank you @soundismovement !!!


Glad to hear you like it :slight_smile:

There are a few more in the pipeline. Perhaps the autumn weather will entice me to resume programming, allowing me to iron out the bugs so I can finish and publish them.


Same for me. I built like ten different patches trying to achieve what this module was capable of all along :slight_smile:


Hello! as a graphic designer I really appreciate the visualization used to denote normalling of quant ins.

This might sound silly, and maybe it is, but since the quant input requires a fairy-specific thing compared to what other common quantizer inputs ask for, it might be helpful to provide a module in the plugin dedicated to producing “poly cable scales”? or perhaps call your input something more specific to your plugin? Either might increase how intuitive the plugin feels to people who might not read documentation… idk. ( also I recognize just blindly asking for a module is rediculous )

1 Like

We have so many great modules here that this conversation reminded me what a great simple module SIM Coerce is. I love quantizing a melody to chords, such as with MelodyGen and Slips.

I would love to see more modules along the lines of Coerce.


Check out my Venom v2.6 beta with the new (not yet released) NORSIQ Chord to Scale module. Coerce is fantastic and compact - perfect as long as you are working with octave repeating scales. My new module is for the situation where you want a non-octave repeating scale. So you can play an extended chord to define a scale, and properly quantize notes that lie outside the range of the original chord.


Thanks for the heads up. Actually, this caught my eye as a result of your post yesterday.

Is it a conscious design decision not to have a trigger input on Coerce? I’m mostly fine with the continuous quantization but in some cases it’d simplify the patch having a trigger input on the module.

I’m wondering if it’d make sense to add a ‘default’ scale? I.e. just to have some chromatic scale available in case the QUANT cable is not connected.

I was also thinking hard about non-octave based scales and to come up with a third option (beside ‘Restrict’ and Octave fold’). Would it make sense to ask for an ‘Interval based’ calculation? I.e. providing a QUANT with 0.25, 0.50, and 0.55 would internally generate a scale of 0.25, 0.50, 0.55, 0.80, 1.05, 1.10, etc. Is there anybody having a view on this?

1 Like

Thanks. As a dancer, I really appreciate your appreciation.

As for your question: I often use the following module to connect to the quant input: VCV Library - Aaron Static DiatonicCV

Yes. Paradoxically, I wanted Coerce to be agnostic of anything discrete. No triggers and no default scales. That way you can use it as a free quantizer, but also as a versatile bit crusher or odd audio convolution module. I don’t think it’s worth adding a trigger input, since the functionality can already be achieved by adding a sample and hold module. But I am open to be convinced it should have a trigger input.

I guess it does make sense to have a default chromatic scale. All I have to do is step over my contrarian character trait. I think it can be done.

I think it does make some sense. But isn’t @DaveVenom’s module Non-Octave-Repeating Scale Intervallic Quantizer (quite a mouth full) capable of that?

1 Like

NORS_IQ (or NORSIQ) among friends.

Oooh - I don’t know why I never thought to feed audio signals into the NORS_IQ “V/Oct” input. Great fun. It almost makes me want to put an oversample option on the quantizer.

For your Coerce you could add a trigger input, and preserve the existing continuous behavior if the trigger input is unpatched. But you are correct, there are a number of polyphonic sample and holds available that would do the trick without any changes to your module. I chose to add the trigger option to my NORSIQ Chord to Scale module.

1 Like


I’d like to introduce a few new modules.


Expandable modules:

  • Phi: A Sequencer
  • Spike: A Gate sequencer
  • Via: Use the compatible expanders on a polyphonic signal
  • Arr: Value provider (raw/scales/steps/fractions)
  • Bank: Value provider (On/Off)

Input expanders:

  • Reˣ: Change start and length of an Expandable
  • Inˣ: Overwrite data or insert data into an Expandable
  • Modˣ: Per step (im)probability/repetitions/glide for Expandable sequencer

Output expanders:

  • Outˣ: Copy data (individual or normalled) from or Cut data out of an Expandable
  • Gaitˣ: extra sequencer outputs (EOC/Step phase/Current Step)

TODO: (as in, not working yet or anymore)

  • I’ve disabled the phasor clock for the two sequencers since the reverse glide and reverse gate delay seem broken. There might be remnants in the plugin.json and elsewhere.
  • There’s a connection light bug when you have smart rearrangement enabled and drag an expandable over another expanded expandable.

The new modules are currently in alpha. And although there isn’t a manual, I did make two extensive patches that serve as walk throughs explaining and demonstrating most of the functionalities. This way you can immediately tinker with them and hopefully grasp them easily. Here’s a sample of a selection of one of these patches.


You can download them here: manual_part1.vcv (9.7 KB) manual_part2.vcv (9.4 KB)

Unfortunately each time I take them for a spin I find a bug. As “not a developer” I use them in my own patches, and it might be the case that code assumes too much of the happy path.

I would appreciate feedback, ideas, feature requests and bug reports (either here or on github).

Over the past few months I’ve seen other modules appear in the library that implement very similar ideas. That’s a good sign. (Hello @DaveVenom, @trickyflemming , Sparkette (couldn’t find your @)).

I hope to iron out the bugs soon so that these modules can find their way into the library. Until then I’m definitely open to suggestions and feature request.

Some exploration tips:

  • Check out the two patches above. (you can ignore the rest of this list if you do)
  • Input Expanders go left and output Expanders go right of an Expandable.
  • Each Expander can be used only once per Expandable.
  • The context menu of most Expandables and some Expanders contain extra options.
  • Everything is relative. The gate duration, glide time, and individual gate delays are all relative to the time between two clock pulses.
  • The order of the input expander matters. In most cases: put Reˣ immediately left of the expandable.
  • Arrˣ can be useful icw the sequencers (or perhaps in general).
    • If you want to have the Nth gate of Spike to ratchet with 5 repetitions, setting Arrˣ “Snap to steps” allows you to dial in (or type in) the number of repetitions without having to worry about voltage levels divided by like 10/16.
    • If you want to delay the Nth gate of the gate sequencer by increments of 3/7ths of a clock pulse you can set the Snap to fraction by picking 3 for the numerator and 7 for the denominator to. …

Enough. Off you go modules. Into the world.