Announcing: Sapphire Elastika

What a fascinating module. It sounds really interesting and I’m having fun with the self oscillation unstable edges.

So a couple of minor comments. Bypass doesn’t route input to output. configBypass(INPUT_L, OUTPUT_L) is the API in the constructor. Also yeah some limited randomization may help. If you are building with c++17

template<typename T=rack::ParamQuantity, typename ...Args>
    T *configParamNoRand(Args... args){
        auto *res = configParam<T>(args...);
        res->randomizeEnabled = false;
        return res;
    }

worked well for me. The outputs can get very hot. I can drive it into clipping easily but there’s an attenuator of course.

It seems it isn’t polyphonic. That’s cool but I think you might be at least failing to sum the inputs. If I send a poly input it just ignores the other channels. inputs[FOO].getVoltageSum() perhaps?

I could make it generate nans and not recover in some cases especially when sending it a noisy input suddenly. I wonder if you want to check for nans every 1000 frames or so and reset if so?

Elastika.vcv (6.1 KB)

But anyway was able to get a really sweet distortion sound out of it. Very nice.

I bet this would be popular as a VST effect also. Pretty unique circuit.

3 Likes