Two pole state variable filter, highpass and lowpass outputs go to either input of a crossfade. Crossfade mix position is controlled by an LFO. Kind of sounds like the filter center frequency is moving, but it's not!
The sound is a bit thin when the width is all the way down. I may add code to mix more of the dry or bandpass signal back into the output as the width goes down.
I might also add a control to move the filter's center frequency around a bit for different tones. As this algorithm doesn't take a ton of instructions, it might be cool to double it, send one filter to the left, one to the right, and add some envelope control to the LFO speed for pseudo-Leslie type sounds.
Pot 1 = speed
Pot 2 = depth
Code: Select all
; Program: Render Block exported from SpinCAD Designer
;------ Input
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX 20,1.0000000000
RDAX 34,-1.0000000000
RDAX 33,-1.0000000000
WRAX 32,0.1351716281
RDAX 33,1.0000000000
WRAX 33,0.1351716281
RDAX 34,1.0000000000
WRAX 34,0.1351716281
;------ Pot 0
;------ Pot 1
;------ LFO 0
SKP RUN ,1
WLDS 0,143,32767
RDAX 16,0.2798434442
WRAX 0,0.0000000000
RDAX 17,1.0000000000
WRAX 1,0.0000000000
CHO RDAL,0
WRAX 35,1.0000000000
;------ Scale/Offset
SOF 0.5000000000,0.5000000000
WRAX 37,0.0000000000
;------ Crossfade
RDAX 32,1.0000000000
RDAX 34,-1.0000000000
MULX 37
RDAX 34,1.0000000000
WRAX 39,1.0000000000
;------ Output
RDAX 39,1.0000000000
WRAX 22,0.0000000000
RDAX 39,1.0000000000
WRAX 23,0.0000000000
Code: Select all
;------ SVF 2P
SOF 0.0,0.0
RDAX ADCL,1.0
RDAX REG2,-1.0
RDAX REG1,-1.0
WRAX REG0,0.1351716281
RDAX REG1,1.0
WRAX REG1,0.1351716281
RDAX REG2,1.0
WRAX REG2,0.1351716281
;------ LFO 0
SKP RUN ,1
WLDS SIN0_RATE,143,32767
RDAX POT0, 0.2798434442
WRAX SIN0_RATE,0.0
RDAX POT1,1.0
WRAX SIN0_RANGE,0.0
CHO RDAL,0
;------ Scale/Offset
SOF 0.5,0.5
WRAX REG4,0.0
;------ Crossfade
RDAX REG0,1.0
RDAX REG2,-1.0
MULX REG4
RDAX REG2,1.0
;------ Output
WRAX DACL, 1.0
WRAX DACR, 0.0