Cytomic CF100 Discrete OTA JH VCF

I believe there is a typo in the documentation regarding the FREQ control:

“FREQ (8hz – 30000khz)”

I certainly hope that should read either 30,000Hz, or 30kHz

1 Like

Yep, definitely a typo. I’ve fixed it now

1 Like

got it…congrats, it sounds amazing!

Yeaahhhh… bought. Thank you for the comparison videos, they really sold me. I wasn’t 100% on getting a very similar (on paper) premium filter this soon after buying the other one, but given that the filter wasn’t my main “wow” focus when getting that bundle (I love the oscillator modules), and given how phenomenal this one sounds, ultimately it was an easy buy :+1: … Congrats on the release!

1 Like

I’ve submitted an update v2.0.1, which should be available soon. It keeps the resonance a little stronger at high frequencies.

It also adds a new right click menu to select the forward beta of the pnp transistors in the circuit. This “beta” is one of the non-ideal parts of transistors that introduces more second order harmonics. The discrete OTA will add asymmetric clipping (and so 2nd order harmonics) when pushed hard, but this beta parameter works even at lower levels of drive. It’s pretty subtle, since the entire circuit distorts at lot already.

Shown in the picture is a pure sine wave input at 1khz from the Befaco Even Osc, with the filter at 2khz and the drive at 6 with various settings for pnp forward beta. The default value is 400:

6 Likes

Hi Andrew, maybe you like this one, in the first patch
(first 5 minutes in the video) I used only the CF100 for the voice:

1 Like

When I generated the previous PNP beta plots to show the harmonics I also tested the E440 model and was shocked by the plots. I double checked everything, and yes, it’s not pretty - this is at project sample rate of 44.1khz, using the latest versions of everything, 1khz sine input from the Befaco Even Osc, 12khz filter cutoff frequency on both, and clean post filter level adjustment to match the plots:

I’ve contacted the developer, hopefully they can fix it since it still seems pretty broken to me.

edit: for those that aren’t aware, what you should see in the plots from a 1khz input sine wave going through a non-linearity is a bunch of multiples of this frequency, so 2, 3, 4, 5khz, etc, slowly going down in amplitude, and then some lower level hiss, or possibly power supply hum from analog kit at around 100hz or so (double the frequency of the mains, since it’s rectified).

4 Likes

Jeepers! My intentionally alias-y, digital circuit-bent sounding filter doesn’t even do that, even with some of the “bend” switches at the bottom on.

Is that with E440 bass boost?

yes, but also note there is zero resonance so the bass boost won’t even do anything! the CF100 has correctly modelled bass boost from the JH circuit, which is what the E440 analog filter does.

Right click on the spectrum analyser and set the range of the analysis to show down to -120dB, you’re only showing half that range, down to -60dB.

Changing the bass boost seems to make a big difference on the spectrum even at zero resonance - strange.

Ah, I hadn’t caught you changed the range in yours.

I still have some noise, but it’s not the all encompassing pit of noise the E440 is giving in your screenshots - plus I did mean for mine to be more of a distortion than a filter, hence the wave folding you can see in the scope. If I crank my resonance it starts to resemble the E440, but still nothing quite that broad-spectrum/white in noise.

I’m honestly shocked the E440 looks that bad. I mean, it doesn’t sound as good as yours to my ears, but it doesn’t sound like it should look that bad. It is down far enough I’d think it wouldn’t be hugely audible, but still, it’s weird to me that it’s doing that.

1 Like

Alright, to avoid picking on the E440 too much, I thought I’d compare against a few others that I see as in the same use case: Filters with grit, but that can be smooth.

Alright, just bought yours. I’m testing against the other modules I know add some dirt for filtering. The Wasp and Ferox are both “CMOS Inverter” filters, Monsuta (My disaster) is a folder-in-a-filter with a lot of other stupidity, and then yours.

It seems to me yours (Yellow) is the cleanest, but also the least likely to clip, hitting 15Vpp on the output. I don’t know if the real hardware would let you do that, going above the rails? Not impossible, but certainly not expected.

Mine (Green) is definitely the worst noise floor, but also the most distorted/harmonically rich, which is sort of obvious given the topology. I also have the weakest signal, actually going smaller peak-to-peak than the input. That’s a side effect of the input being a sine though, as I can assure you it sometimes likes to slam the output depending on the switches at the bottom and input signal. I’ll drop it from the comparison from here.

The two Wasp clones are more interesting to compare to the CF100 I think. They both clip much harder, and both have a lot more going on in the high end. I have the A-124 set to +12dB of boost in the menu.

Switching to a linear plot and dropping Monsuta from the mix,

Yellow = CF100, Red = Ferox, Blue = A-124

It looks to me like the A-124 is aliasing a far amount, albeit it looks like that is low enough to likely not be audible, and indeed testing it quickly it seems to be ever so slightly audible, but only at the extremes and in a way that doesn’t have the stereotypical wosh-wosh-woosh of aliasing as the cutoff is adjusted.

I can’t get any of that out of Ferox, but I think more interestingly the signal does get though a bit even with the cutoff all the way down if bite is high enough. I’ve kept “bite” at 0 though as I think it’s just a pre-filter gain + distortion. Ferox lists it’s frequency from 0 to 1, not in Hz, but with it at 1 has almost exactly the same phase shift as CF100 at 12000. Intriguingly, the A-124 is getting enough phase shift to almost be entirely out of phase. The same is true of the CF100’s behavior though if there’s a good amount of resonance and you do a frequency sweep. Not that this is unexpected or bad.

I think it’s interesting to see here how Ferox actually distorts less on the bottom, but more on the top half. This got me curious about how they respond to DC bias, and suffice it to say the results are wildly different per filter, with the A-124 seemingly being the only of the 3 with AC coupling. I actually think the CF100 wins here too, being the most pleasant sounding when abusing this. Changing the resonance on the CF100 also makes the bottom distort less. With the CF100’s resonance at 4.5ish and drive ~8.8 I can get it to more-or-less match the Ferox’s bottom half, but the Ferox is still clipping a lot more aggressively on the top side. (Ferox set to max drive, 0-resonance, max cutoff - changing resonance doesn’t do much like this)

What was a bit unexpected was the CF100’s self oscillation stopping at ~5kHz. I don’t think this is a big problem, but notable. I also noticed just playing around with it that modulating the CF100’s FM with a strong square was a bit clickier than the others, in a bad way? The obvious answer to this is “duh, it’s a square” but I suspect the others are slewing/LP’ing their CV’s at least a bit.

Overall, I think the CF100 might be the best filter I’ve heard in VCV for “general use”. The Wasp’s are both good for when you need a LOT more grit and that thick but buzzy wall of anger.

I’ll probably put it up against some of Vults other models another time. I’d be particularly interested to see it against the Polivoks emulations.

3 Likes

If you’re pushing the filter into hard clip, then you’ll need to oversample the filter, which is what the Vult ones are doing. Oversampling the filter means you can’t do single sample feedback “tricks” to join the output back to the input like you can in analog, which is why I don’t do that. So if you want a cleaner sound from my DSP, and stronger resonance at high cutoff frequencies, head on up to the Engine menu and select a higher sample rate.

Also I did calibrate the A-124 and the CF100 to clip exactly like the analog devices, as much as possible, I’m pretty sure the outputs go through an op-amp that clips, but I’ll double check since they should not output > +=- 15Volts, so thanks for pointing that out.

2 Likes

Your filter looks like regular aliasing, but note the spectrum still falls off towards the top end. Have you set the cutoff to 12khz? The E440 spectrum looks like a bug in the DSP.

2 Likes

I’m surprised you’re not over sampling for how clean yours are! I’m also quite impressed with the low CPU usage.

I’m not oversampling in Monsuta and I do know I alias a bit (or a lot, at times), but due to other effects in it it’s not actually all that audible over everything else going on and sometimes is actually out right intentional. I have some noodling going on in the feedback path to get the top in roll off to avoid some of the more aggressive aliasing artifacts. I wanted it to be used and abused for harsh, digital distortion sounds, and I think it does do that well. I think the demo videos I’ve made for it are relatively clear in stating their intent is for this and not what you’d typically use a filter for. ¯_(ツ)_/¯

1 Like

Yes, I checked it out and it definitely doesn’t operate as a regular filter, but does make all kinds of interesting noises.

I may well add an oversampling option, probably a minimum phase two path polyphase one to keep the latency down. I’ve got the code sitting there, but I think it’s a better idea to oversample the entire project for a better sound when pushing things hard as everything gets the benefit of the oversampling, and you get no added latency between devices - it’s more like real eurorack to do this.

3 Likes

my ancient “Stairway” has a wavefolder option, so it can generate a lot of harmonics. Here’s a setting where you can see some grunge that looks like aliasing at maybe -70 db? I think that thing uses 4X oversampling. It’s a bit of a CPU pig, also. btw, sometimes you need to change the sin freq a little bit to see the distinctive aliasing lines.

2 Likes

Hi Rodney,

I tried it with bass boost off and yes, that fixes it. This is what I was expecting, since the E440 oversamples internally and the CF100 doesn’t, so the E440 should be slightly cleaner at 44.1khz for this test, and it is if you switch off bass boost:

1 Like