New Voxglitch Module: Satanonaut

Love it! Satanonaut works exactly as advertised. This is exactly the kind of module that makes virtual modular so exciting, so surprising. It rewards careless experimentation and unplanned connections. I setup a patch with a couple of them for VCP-67: Panning. Enjoyed it so much that I stripped the patch down to Looper and Satanonaut and built from there until I had this. It’ll be interesting to see what happens to the patches if you make the change discussed above and provide a context menu for changing the CV math.


Credit for the sample file used:

1 Like

I won’t change how the default CV math works, which will mean that nothing should change in your patches. Instead, it’ll be an option to switch to the alternative CV control. :smiley: Also, what a crazy recording! I love it, expecially about 3/4 of the way through.

Understood re: defaults. Looking forward to opening it after the change and flipping the switch.
Thanks. Got some cool results during recording by plugging Meander volume out CVs into various CV inputs on the Satanonaut choir. Cheers

Convention is good, agreed, it allows users to have immediate results with modules once they gain a certain level of experience.

On the other hand, there could be non-conventional implementations that could also provide an intuitive UI.

For example, my first module (I didn’t really know what I was doing when I created it) had the CV inputs directly set the param value, this causes the actual controls react to the CV input. Which, whilst not realistic, actually does provide a nice user experience, because they can see the effect that the CV has directly.

Later I wanted to add a more conventional setup, so like you say Bret, I added it to the context menu as an alternative mode to not break existing patches.

Just for reference (although I don’t expect this is exemplary code) here is how I deal with the CV inputs and params in my WAVULIKE module (this is in the body of a loop for the 6 points):

      pointValues[v] = params[pointParams[p]].getValue();
      if (inputs[pointInputs[p]].isConnected())
        pointValues[v] = math::clamp(
            ((slewType == 0) ? (inputs[pointInputs[p]].getVoltage() / 5.0f) : clickFilters[p].process(args.sampleTime, (inputs[pointInputs[p]].getVoltage() / 5.0f))) +
                (knobsOffset ? params[pointParams[p]].getValue() : 0.0f),
            -1.0f, 1.0f);
        if (!knobsOffset)

Hello dag, so what would be the basic fxs you would like? Delay, Reverb, phaser, Flanger or… I must admit I would like to see such module if you could modulate the modulator.

1 Like