If anyone can run a quick eye over this and point me in the right direction that would be great.
Code: Select all
;Reverb from wah
;Pot0 = Reverb level Dry Mix
;Pot1 = Reverb Time
;pot2 =
;memory declarations:
mem ap1 334
mem ap2 556
mem ap3 871
mem lap1a 808
mem lap1b 1934
mem d1 2489
mem lap2a 1016
mem lap2b 1787
mem d2 2287
;register equates:
equ krt reg0
equ mono reg1
equ apout reg2
equ lp1 reg3
equ lp2 reg4
equ revout reg5
;declare constants:
equ kap 0.6 ;all pass coefficient
;equ krt 0.6 ;reverb time
equ krf 0.5 ;reverb lpf freq
equ krs -0.6 ;reverb lpf shelf
;clear registers and initialize LFOs:
skp run,endclr
wrax lp1,0
wrax lp2,0
wlds sin0,12,100
endclr:
;Pot 0 read directly to control reverb level/mix
;Pot1 prepare decay
rdax pot1,0.96 ;get pot. limit to less than infinate
log 0.5,0
exp 1,0 ;square root pot0
sof 0.6,0.3 ;ranges 0.3 to 0.9
wrax krt,0 ;write for later use
;sum inputs to mono:
rdax adcl,0.5
rdax adcr,0.5
wrax mono,0
;do reverb and put result in revout (after pot0 control):
rdax mono,0.5
rda ap1#,kap
wrap ap1,-kap
rda ap2#,kap
wrap ap2,-kap
rda ap3#,kap
wrap ap3,-kap
wrax apout,0
rda d2#,krt
rdax apout,1
rda lap1a#,kap
wrap lap1a,-kap
rda lap1b#,kap
wrap lap1b,-kap
rdfx lp1,krf
wrlx lp1,krs
wra d1,0
rda d1#,krt
rdax apout,1
rda lap2a#,kap
wrap lap2a,-kap
rda lap2b#,kap
wrap lap2b,-kap
rdfx lp2,krf
wrlx lp2,krs
wra d2,1.99
rda d1,1.99
mulx pot0
mulx pot0
wrax revout,0
;smooth reverb:
cho rda,sin0,sin|reg|compc,lap1b+100
cho rda,sin0,sin,lap1b+101
wra lap1b+200,0
cho rda,sin0,sin|reg|compc,lap2b+100
cho rda,sin0,sin,lap2b+101
wra lap2b+200,0
;now combine outputs to make a mixed signal
rdax mono,1
rdax revout,1
wrax dacl,0
<0000>[ Pass 2] [ 1005] Line: 72 "rda d2#,krt " - ERROR:Coefficient out of range -
<0001>[ Pass 2] [ 1005] Line: 82 "rda d1#,krt " - ERROR:Coefficient out of range -
2 Log Messages