I’m interested in making some funky nonlinear/adaptive filter/distortion modules, so I am trying to learn more about traditional filters. Besides reading books and articles and watching videos (e.g. Leonardo Laguna Ruiz), I am also trying to understand some of the source code for existing filters in VCV. I started with the Fundamental VCF module, since I thought that might be one of the simpler ones. I have a few questions, many thanks in advance for any answers:

The lowpass filter in the VCF module is modeled on a Moog 4stage filter, using what seems to be a slightly unusual technique of simulating the circuits through differential equations (as opposed to zero/pole placement or Ztransform analysis). The closest description I could find to this was a Raph Levien paper (https://levien.com/ladder.pdf), although he did some strange exponentiation of a linearized version of the equations instead of the 4thorder RungeKutta method that is used by VCF (which I haven’t been able to find a reference for in this context, although Levien mentions it as a possible method). Was this a novel approach? If there is a published analysis of this approach I’d like to read it.

The highpass output of the Fundamental VCF does not work correctly, as has been noted on this forum already, and it is also noted in the source code. I’ve spent quite a bit of time trying to fix it unsuccessfully. As far as I can tell, it is trying to use a spectral inversion techique on the output of the RK4 simulation to convert the lowpass information to a highpass filter. I haven’t found any reference that discusses that sort of technique, so if anyone knows of one I’d appreciate it. There are a number of analyses of the Moog filter that relate it to more traditional IIR filters, and using that approach a spectral inversion would be relatively straightforward, but I don’t see a direct connection to the information generated by the ODE approach. Perhaps it would be better to just replace this with a biquad highpass resonant filter?

As the Fundamental VCF turned out to be a longer educational rabbithole than I anticipated, does anyone have any suggestions for an opensource filter in VCV that would be particularly simple to look at? I am also curious about any references that filter authors have found exceptionally clear and useful.