Author Topic: SpinCAD chorus issue  (Read 349 times)

Hoffmann

SpinCAD chorus issue
« on: January 31, 2020, 12:50:47 PM »
Hi guys,

I've been using SpinCAD ver. 893 for quite some time but since it lacks some useful blocks from the updated editions I used latest version 1027 to build some sort of chorus. However, I noticed audible glitches with LFO Chorus block that is quite annoying. :( I am posting Spin ASM patch from the SpinCAD ver 893 that is glitches-free and this one from ver. 1027 if somebody more skillful could take a look and give some input?  :)

;  Program: Render Block exported from SpinCAD Designer 893
;------ Input
;------ Pot 0
;------ Pot 1
;------ Chorus
SKP RUN ,1
WLDS 0,50,64
RDAX POT1,0.0023436070
WRAX SIN0_RANGE,0.0000000000
RDAX POT0,0.0391389432
WRAX SIN0_RATE,0.0000000000
LDAX 20
WRA 0,0.0
CHO RDA,0,REG | COMPC,257
CHO RDA,0,0,258
WRAX REG0,0.0000000000
;------ Output
RDAX REG0,1.0000000000
WRAX DACL,0.0000000000
RDAX REG0,1.0000000000
WRAX DACR,0.0000000000


SpinCAD Designer 1027

; Untitled
; null
; Pot 0:
; Pot 1:
; Pot 2:
;
;
; ----------------------------
;------ Input
;------ Pot 0
;------ Pot 1
;------ Chorus
SKP RUN ,1
WLDS 0,50,64
RDAX POT1,0.0023436070
WRAX SIN0_RANGE,0.0000000000
RDAX POT0,0.0391389432
WRAX SIN0_RATE,0.0000000000
LDAX ADCL
WRA 0,0.0
CHO RDA,0,REG | COMPC,257
CHO RDA,0,0,258
WRAX REG0,0.0000000000
;------ Output
RDAX REG0,1.0000000000
WRAX DACL,0.0000000000
RDAX REG0,1.0000000000
WRAX DACR,0.0000000000


Another thing came to my mind when designing chorus - it might be cool to build Chorus block (flagner too) to be able to use external LFO so it would be possible to drive multiple chorus blocks with Sin/Cos LFO oscillator (phase shifted differently)... What do you think?

Digital Larry

Re: SpinCAD chorus issue
« Reply #1 on: January 31, 2020, 03:03:53 PM »
I don't see any relevant difference in the code.

One has:

LDAX ADCL

and the other has:

LDAX 20

which should be the same thing.

Are you having this problem on a real FV-1 or using the simulator?

For the second problem, there is a block under modulation called (I believe) "Servo Flanger".  This is a short modulatable interpolated delay line based on the "Servo Delay" example in Spin's Knowledge Base.  It uses a RAMP LFO internally instead of the SIN/COS LFO.  You can of course give it a SIN LFO as the LFO input.  Interesting results can be obtained by using the Power control block to warp any given LFO signal to one side or the other.

If all you're interested in is phase shifting a SIN chorus LFO, this is already possible with the 4-voice chorus.  If you use all 4 voices then you get 4 LFOs to use at 0, 90, 180, 270.  To selectively use just a couple you'd probably wind up hand commenting out the ones you don't want to use.
« Last Edit: January 31, 2020, 03:14:12 PM by Digital Larry »
Digital Larry
DSP tinkerer and former transistor twister

Hoffmann

Re: SpinCAD chorus issue
« Reply #2 on: February 09, 2020, 04:59:26 PM »
Thank you DL for your input. I never tried it on real FV-1, only using simulator. I will give it a try on a real thing and reply here.
So you say 4-voice chorus has the following taps: 1st - 0 , 2nd, 90 , 3rd tap 180 and 4th 270 degree LFO modulated delay, right? If that is correct, it's great indeed.


ElectricDruid

Re: SpinCAD chorus issue
« Reply #3 on: February 09, 2020, 05:57:23 PM »
So you say 4-voice chorus has the following taps: 1st - 0 , 2nd, 90 , 3rd tap 180 and 4th 270 degree LFO modulated delay, right? If that is correct, it's great indeed.

That's *one* perfectly valid way to do four-voice chorus. There are a million other options. Whether they offer genuine improvements is an open question. With multi-voice chorus I reckon there's point of "diminishing returns" where everything just starts to be "lush" and exactly how that is achieved isn't actually that important any more...

Digital Larry

Re: SpinCAD chorus issue
« Reply #4 on: February 10, 2020, 12:33:42 PM »
Thank you DL for your input. I never tried it on real FV-1, only using simulator. I will give it a try on a real thing and reply here.
So you say 4-voice chorus has the following taps: 1st - 0 , 2nd, 90 , 3rd tap 180 and 4th 270 degree LFO modulated delay, right? If that is correct, it's great indeed.
The 4-voice chorus is based on the chorus examples at the Spin Knowledge base.  They even suggest that you can get an 8-voice chorus by using the approach with both SIN LFOs.

See: http://www.spinsemi.com/knowledge_base/coding_examples.html#Chorus

The simulator in SpinCAD is based on the original code from ElmGen (which I didn't write).  Parts of this code were incomplete, especially in the chorus area.  I did my best to get those working and it's possible there is a difference between the earlier and current version.  You'd have to look into the checkin history at Github.  Take a look at this IF YOU DARE:

https://github.com/HolyCityAudio/SpinCAD-Designer/blob/master/src/org/andrewkilpatrick/elmGen/instructions/ChorusReadDelay.java

and others in that same folder.

At this point I have no plans to do anything else with SpinCAD development.  I'm not trying to be mean or anything, but I worked on it as a hobby for a good 4 or 5 years and have gone on to other things.  As I'm fond of saying, it is open source.  Anyone can get in there and fix it if they are highly motivated.

DL
« Last Edit: February 11, 2020, 12:53:41 AM by Digital Larry »
Digital Larry
DSP tinkerer and former transistor twister