Here's a 3-band implementation.
Each band is just a 2-pole SVF bandpass, abs value (rectifier) and smoother (low pass filter) to create the control signal. matching filters go into a mixer whose levels are controlled thereby.
Going to 4 bands goes over the register limit. It is certainly possible to hand optimize, not sure if you can get enough for another full band though.
It does "something" in simulation under SpinCAD. I had my standard guitar riff going to the left, white noise for the carrier. Takes the rhythm of my guitar playing and makes it sound like a trashy drumset a mile away in a hangar. However, I understand that this is what "kids today" enjoy listening to.
Tweaking the filters might lead to something interesting. Or not.
Code: Select all
; Patch: C:\Users\User\Documents\SpinCAD Designer\vocoder.spcd
; SpinCAD Designer version: 952
; Pot 0:
; Pot 1:
; Pot 2:
;
;
; ----------------------------
;------ Input
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX ADCL,1.0000000000
RDAX REG2,-1.0000000000
RDAX REG1,-0.0312500000
WRAX REG0,0.0592153472
RDAX REG1,1.0000000000
WRAX REG1,0.0592153472
RDAX REG2,1.0000000000
WRAX REG2,0.0000000000
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX ADCL,1.0000000000
RDAX REG5,-1.0000000000
RDAX REG4,-0.0277777778
WRAX REG3,0.1345807085
RDAX REG4,1.0000000000
WRAX REG4,0.1345807085
RDAX REG5,1.0000000000
WRAX REG5,0.0000000000
;------ AbsoluteValue
RDAX REG4,1.0000000000
ABSA
WRAX REG6,0.0000000000
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX ADCL,1.0000000000
RDAX REG9,-1.0000000000
RDAX REG8,-0.0277777778
WRAX REG7,0.2067361810
RDAX REG8,1.0000000000
WRAX REG8,0.2067361810
RDAX REG9,1.0000000000
WRAX REG9,0.0000000000
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX ADCR,1.0000000000
RDAX REG12,-1.0000000000
RDAX REG11,-0.0277777778
WRAX REG10,0.0592153472
RDAX REG11,1.0000000000
WRAX REG11,0.0592153472
RDAX REG12,1.0000000000
WRAX REG12,0.0000000000
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX ADCR,1.0000000000
RDAX REG15,-1.0000000000
RDAX REG14,-0.0277777778
WRAX REG13,0.1345807085
RDAX REG14,1.0000000000
WRAX REG14,0.1345807085
RDAX REG15,1.0000000000
WRAX REG15,0.0000000000
;------ SVF 2P
SOF 0.0000000000,0.0000000000
RDAX ADCR,1.0000000000
RDAX REG18,-1.0000000000
RDAX REG17,-0.0270270270
WRAX REG16,0.2067361810
RDAX REG17,1.0000000000
WRAX REG17,0.2067361810
RDAX REG18,1.0000000000
WRAX REG18,0.0000000000
;------ AbsoluteValue
RDAX REG8,1.0000000000
ABSA
WRAX REG19,0.0000000000
;------ AbsoluteValue
RDAX REG1,1.0000000000
ABSA
WRAX REG20,0.0000000000
;------ Smoother
RDAX REG6,1.0000000000
RDFX REG21,0.0028321367
WRAX REG21,0.0000000000
;------ Smoother
RDAX REG19,1.0000000000
RDFX REG22,0.0028321367
WRAX REG22,0.0000000000
;------ Smoother
RDAX REG20,1.0000000000
RDFX REG23,0.0028321367
WRAX REG23,0.0000000000
;------ Mixer 3:1
RDAX REG11,1.0000000000
MULX REG23
WRAX REG24,0.0000000000
RDAX REG14,1.0000000000
MULX REG21
RDAX REG24,1.0000000000
WRAX REG24,0.0000000000
RDAX REG17,1.0000000000
MULX REG22
RDAX REG24,1.0000000000
WRAX REG24,0.0000000000
;------ Output
RDAX REG24,1.0000000000
WRAX DACL,0.0000000000
RDAX REG24,1.0000000000
WRAX DACR,0.0000000000