Page 1 of 1

Questions about modulating delay lines.

Posted: Wed Mar 30, 2022 2:39 am
by lymark
The codes I see in a Reverb + Shimmer :

Code: Select all


MEM	d1	2437

;-------------- Initialize LFOs etc -------------------
SKP	RUN,end_init
WLDS	SIN0,25,100		; Sin LFO for reverb "smoothing". (25 ==> 1Hz)
end_init:
;-------------------------------------------------

;-- Reverb smoothing (modulate delay lines in the loop) --
CHO	RDA,SIN0,REG|SIN|COMPC,d1+100
CHO	RDA,SIN0,SIN,d1+101
WRA	d1+200,0

I guess what it does is modulate delay lines.
I drew the diagram according to my understanding.

WLDS SIN0,25,100
A sine-modulated pointer in the range D1[76] to D1[124] will be generated centered on D1[100]. A total of 50 samples are occupied.
After interpolation, the sample value of the pointer is written to D1[200].
The ram space from D1[125] to D1[199] is not useful.
And the value of D1[199] will not be written to D1[200].

If D1 (2437) is split into two MEM spaces, D1 (124) and D2 (2238).The modulation pointer in D1 takes out the value and writes it to the head of D2.
Finally output from D2#, the effect is the same. Saves about 75 ram space, but increases the number of lines of code.

Is my understanding correct ? Thanks a lot for anyone's help.

[img]https://ibb.co/zxg77zz [img]

Re: Questions about modulating delay lines.

Posted: Wed Mar 30, 2022 1:02 pm
by frank
That is basically all correct.

Keith made the modulation "window" larger than he thought was necessary so he could play with speed and depth to get the right sound and not have to change a bunch of parameters every time. So yeah, 75 memory locations are wasted but all the other lengths have already been fixed to the desired length for the desired sound so you would not use them anyway. 75 memory locations is 2.3mS at 32KHz so really of no consequence.

Re: Questions about modulating delay lines.

Posted: Thu Mar 31, 2022 12:53 am
by lymark
Thank you very much, Frank.