More Advanced Module Dev Tutorials

I’ve made a few oscillators using the basis of the tutorial modules, and I was wondering how to get started with making more complex ones

Envelopes and basic filters are mainly what I’m curious about making

Making filters is pretty difficult.

1 Like

For filters a good reference INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS and then https://www.native-instruments.com/fileadmin/ni_media/downloads/pdf/VAFilterDesign_2.1.0.pdf

Generally control rate things (envelopes lfos sequencers) are easier than dsp things (oscillators filters fx) but it’s all learnable and among the hierarchy of dsp thingies I would say delays and associated modulations (flanger chorus) are easiest then simple filters then oscillators then good filters then reverbs, roughly. But that’s an opinion not a fact

There’s good literature on each of these which is worth reading, and it’s fun to learn!

2 Likes

I agree with @baconpaul (as usual). A couple things I might add.

1: what he says about oscillators being harder the LFO/EG is only true for a decent oscillator. It is super easy to make a naive VCO that has lots of aliasing and uses lots of CPU. here goes: phases += delta phase; if phase > 1 phase -= 1;

2: that PDF from NI is for sure good, but I don’t know how seriously I would take that “introduction” in the title - it’s not a trivial read by any means.

1 Like

more recent edition of the VA Filter design pdf:

2 Likes

You forgot in rack to then output (phase -0.5 ) * 10 - chuckle.

But it’s really instructive to code up this sawtooth and listen to it and hear why it is bad

For the clap saw demo synth i implemented a simple alias suppressing saw wave with an ar envelope and an svf filter from cytomic. Thst voice imlementation may be a nice thing to port as a test module also to learn but again there’s better choices in the lib today so it is more as an exercise on your journey clap-saw-demo/saw-voice.cpp at main · surge-synthesizer/clap-saw-demo · GitHub

Have fun!

I used to have a public repo called “demo” that had the naive saw up to a pretty good one. I think there were three versions.

Btw, you don’t need to code it up, there are several like that in the library.

Ha sure

But for me coding the dumb saw then adding different approaches was useful so was just suggesting that as a learning path

oh, for sure!