Code: Select all
skp run,1 ;only establish the LFO on the first sample pass
wldr rmp0,0,4096 ;set rmp0 to its widest range
cho rdal,rmp0 ;load in the current RMP0 pointer
rdax mpos,-1 ;subtract the desired position
wrax rmp0_rate,0 ;write the position error to the ramp rate register
cho rda,rmp0,reg|compc,del ; read from first delay location
cho rda,rmp0,0,del+1 ; read from second delay position and interpolate
Code: Select all
skp run,1 ;only establish the LFO on the first sample pass
wldr rmp0,0,4096 ;set rmp0 to its widest range
ldax leftsig ; read in left delay input
wra ldel,0 ; write to first delay
ldax rightsig ; ditto the right delay input
wra rdel,0 ; write to second delay
cho rdal,rmp0 ;load in the current RMP0 pointer
rdax [b]mpos[/b],-1 ;subtract the desired position
wrax rmp0_rate,0 ;write the position error to the ramp rate register
cho rda,rmp0,reg|compc,ldel
cho rda,rmp0,0,ldel+1
wrax leftout,0
cho rda,rmp0,reg|compc,rdel
cho rda,rmp0,0,rdel+1
wrax rightout,0
If this method is valid, is there any reason you couldn't use the same ramp to control two completely different delays, either by updating mpos between delay reads or by using a different register to hold the second delay position value? It seems like that wouldn't work, since you have to read in the current position value and then change the ramp rate, but I thought I'd ask.