“The SSI2144 reprises the SSM2044 of legacy chipmaker
Solid State Micro Technology, which many believe to be the
best-sounding analog synthesis filter IC ever produced”
Thanks all for the useful input. Taking a step back, in general my philosophy (and one shared by team at Befaco) is that the VCV versions should be faithful representations that reflect the hardware, but not necessarily perfect emulations. They should get the key ideas and character (e.g. with wavefolders, I’m careful to capture the response accurately) but may only approximate other parts. Someone buying the module shouldn’t get any big surprises, but could probably tell them apart (sometimes!).
By example, the recent Wasp filter, which was a very carefully circuit modelled project, represents a higher level of detail/emulation than I (or Befaco) are prepared to invest. For PonyVCF the key parts to capture are
4 pole low pass, transistor ladder
Self oscillating
Three channel mixer with VCA (and appropriate CV)
Some sort of feedback for channel 3
Some gain compensation
I really am looking to take a pre-existing ladder model, tune it, add appropriate CV control. Thanks to all for resources about where to start! I suspect it’s a case of trying a few and seeing which match most closely (though if anyone has intuition about specific models that might be close please say).
The reason I’m asking is also partly, it’s one thing to adhere to the license but it’s also nice if the original authors are supportive, given the usage here is effectively minor tweaks and reskinning.
We write surge code so people can use it as long as they read the licenses. We even break into submodule some parts have less restrictive licenses ! (By which I mean - even though it looks like it might not help in this instance, thrilled for you to use any of our code in whatever license adhering context you want)
x4 would certainly be better than x2. My Venom Benjolin Oscillator relies on oversampling, and I am not satisfied until x8 is used.
I am getting ready to begin development of a new Venom oscillator, and plan to rely on oversampling as well so it can anti-alias all manner of manipulation, including FM, PM, sync, etc. With everything I have planned, I can only hope to keep the CPU usage reasonable.
Perhaps you could add a context menu option to Octaves for oversampling amount.
It looks like you are using simd to handle polyphony. But I imagine mono is much more common than poly, and all six Octaves oscillators are active at all times. You might consider using simd across the oscillators instead of polyphony channels so that you always get simd benefit. Or perhaps apply one set of simd to the first four oscillators, and use two sets of simd applied to polyphony for the last two oscillators. I’m sure that will complicate the code, but it might be worth it.
I also did not notice the oversample control. Of course when I read about this module I immediately pulled it down to see how bad the aliasing was. I saw that it’s terrible, but being an improved person I didn’t make a post about how bad it is.
But I see now that it’s controllable. I agree with @DaveVenom that 2X is not a great default choice. Personally, my hearing isn’t as good - 4X is my default of choice.
btw, I don’t find the CPU usage that terrible for mono use. I don’t know if I personally would worry about it that much. It’s not great, but it’s not terrible.
I tried emulating the sound with a polyphonic VCO with 6 channels, each one 1 octave higher than the predecessor, and it definitely was not as harsh. I am guessing it is the phase relationship between the Octaves oscillators that give the distinctive harshness. I notice they are all offset from one another in a mathematical way.