I want to create a no-frills VA synth for live playing and have been hypnotized by the Daisy platform. I see DaisySP has a filter modelled after the famous Moog 4 pole Diode ladder filter ported from soundpipe, but on soundpipes github page I can’t find the code or the mathematical foundation the emulation is based on.

Does anyone know more about the implementation of DaisySP’s moogladder module? I see the code has a HEAT variable but it seems to be constant. I was hoping to incorporate some properties of analog circuits like how heat alters the properties and components to make my future VA more unstable and dirty.

Hi,

I can see THERMAL defined in the moogladder.cpp present in the (oldish) version of libdaisy I pulled a while ago. I think that refers to Vt - a transistor parameter. It shows up at 10:45 in this useful video:

Cheers

this isn’t about moog filters specifically or maybe explicitly(It’s def implicitly about moog filters, they’re just talked about as ladder filters I believe, I havent read it in a while) , but a blog post by Urs Heckmann regarding the implimentation of zero delay filters within the virtual instrument Diva is a great little read, as it deals with the territory I think you’re trying to occupy. here’s a link :

in fact all of his blog posts are just top notch material, at the least for entertainment, but also informative.

and this has nothin to do with the subject at hand but the creator of that there video, Aaron Lanterman… their course material that they’ve made available to the public is just top notch through and through, I think their analysis of Buchla’s wavefolding circuit topography wound up informing a lot of DSP implementations too, so that’s neat.

When I was getting a grasp on spice simulation his stuff really helped a lot of stuff click, for sure.

The `THERMAL` constant is the thermal voltage from the Shockley equation. It is just used to scale appropriately physical constants in the code. Don’t expect any dramatic sound variation by tweaking this value, it will mostly change the clipping level, exactly as if you applied a gain at the filter input and the inverse gain at the output.

BTW the original `MoogLadder` code comes from CSound and is based on the Antti Huovilainen DAFx paper.

1 Like