Spin Semiconductor Forum Index Spin Semiconductor
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

3K room reverb help

 
Post new topic   Reply to topic    Spin Semiconductor Forum Index -> Algorithm development
View previous topic :: View next topic  
Author Message
ice-nine



Joined: 24 May 2012
Posts: 125

PostPosted: Sat Dec 12, 2015 11:41 am    Post subject: 3K room reverb help Reply with quote

Hi, after looking at the excellent 3k Room reverb program I am trying to alter it so that instead of having the pre delay pot control the delay it is just a set pre delay of 100ms or so, then into the reverb code.

The trouble is that every time I try and remove or replace the pot0 control, the pre delay disappears.

The code below is up to where it enters the reverb, a point in the right direction from someone who knows better would be a great help.

Code:

;prepare predelay pot:

rdax   pot0,0.1      ;to 1/10th total delay (100ms)
and   %01111110_00000000_00000000
wrax   addr_ptr,0      ;write to memory pointer

;prepare decay pot:

rdax   pot1,0.97      ;get pot, limit to less than infinite
wrax   krt,1         ;write loop decay time
sof   0.4,0.6         ;scale to 0.6 to 1.0
wrax   kirt,0         ;write impulse filter gains
sof   -1,0.99         ;scale to decrease gain with RT
wrax   gain,0         ;write gain factor

;prepare damping pot:

rdax   pot2,-1
wrax   kd,0         ;increases shelf to -1 (infinite loss)

;do inputs to predelay:

rdax   adcl,0.5
rdax   adcr,0.5      ;get inputs
mulx   gain         ;give greater gain to short RT
wra   pdel,0

;read predelay and write initial response delay:

rmpa   1
rda   iap0#,0.5
wrap   iap0,-0.5      ;complicate input to initial delay
wrax   temp,1
rdfx   lf,0.4
wrhx   lf,-1
mulx   kd
rdax   temp,1         ;low pass fiter entire input
wra   idel,0         ;write initial sound delay



I have tried replacing the pot code with a register but that does not work

Code:

;prepare predelay pot:

rdax   pot0,0.1      ;to 1/10th total delay (100ms)
and   %01111110_00000000_00000000
wrax   addr_ptr,0      ;write to memory pointer


Code:

;prepare predelay pot:

rdax   predlk,0.1      ;to 1/10th total delay (100ms)
wrax   addr_ptr,0      ;write to memory pointer


where predelk is an equ constant

I have also wrote a stand alone 100ms delay code which works fine but when I try to put it in with the reverb code I lose the delay as well. I'm a bit stumped here.
Back to top
View user's profile Send private message Visit poster's website
frank



Joined: 19 Oct 2005
Posts: 972

PostPosted: Sat Dec 12, 2015 1:49 pm    Post subject: Reply with quote

Try
Code:


;prepare predelay pot:

sof  0,0
or %00001100_11000000_00000000
wrax   addr_ptr,0      ;write to memory pointer

_________________
Frank Thomson
Experimental Noize
Back to top
View user's profile Send private message Visit poster's website
ice-nine



Joined: 24 May 2012
Posts: 125

PostPosted: Sun Dec 13, 2015 8:09 am    Post subject: Reply with quote

Thanks Frank, that was a big help and today I got the rest of the reverb all sorted towards what I was aiming for.

[/code]
Back to top
View user's profile Send private message Visit poster's website
Sweetalk



Joined: 15 Oct 2009
Posts: 95

PostPosted: Mon Dec 14, 2015 4:09 am    Post subject: Reply with quote

Can you use rdax with an equ const??.

My approach:


Code:
clr                  ; Assure the accumulator is cleared
sof 0.1, 0                 ; Add 0.1 to the accumulator for the needed delay
wrax addr_ptr, 0       ; Write to the address pointer
Back to top
View user's profile Send private message
ice-nine



Joined: 24 May 2012
Posts: 125

PostPosted: Mon Dec 14, 2015 6:12 am    Post subject: Reply with quote

Sweetalk wrote:
Can you use rdax with an equ const??.

My approach:


Code:
clr                  ; Assure the accumulator is cleared
sof 0.1, 0                 ; Add 0.1 to the accumulator for the needed delay
wrax addr_ptr, 0       ; Write to the address pointer


using rdax with an equ constant didn't work in that way, so you will be correct.

I have used this before which also works but forgot about it.
Code:
 clr                        ; Clear the ACC
 or       predel*256               ; Put predelay predel into ACC alligned to ACC[22:8]
 wrax       predel_read, 0            ; Save it
Back to top
View user's profile Send private message Visit poster's website
ice-nine



Joined: 24 May 2012
Posts: 125

PostPosted: Mon Dec 14, 2015 6:20 am    Post subject: Reply with quote

Sweetalk wrote:
Can you use rdax with an equ const??.

My approach:


Code:
clr                  ; Assure the accumulator is cleared
sof 0.1, 0                 ; Add 0.1 to the accumulator for the needed delay
wrax addr_ptr, 0       ; Write to the address pointer


using rdax with an equ constant didn't work in that way, so you will be correct.

I have used this before but forgot about it.
Code:
 clr                        ; Clear the ACC
 or       predel*256               ; Put predelay predel into ACC alligned to ACC[22:8]
 wrax       predel_read, 0            ; Save it
Back to top
View user's profile Send private message Visit poster's website
Aaron



Joined: 04 Mar 2015
Posts: 42

PostPosted: Mon Dec 14, 2015 8:09 am    Post subject: Reply with quote

Instead of reading from the address pointer I would just read from the end of pdel

Code:
rdax   adcl,0.5
rdax   adcr,0.5      ;get inputs
mulx   gain         ;give greater gain to short RT
wra   pdel,0

;read predelay and write initial response delay:

;rmpa   1               ;instead of reading from address pointer

rda   pdel#,1          ;read from the end of pedl
rda   iap0#,0.5
wrap   iap0,-0.5      ;complicate input to initial delay
wrax   temp,1
rdfx   lf,0.4
wrhx   lf,-1
mulx   kd
rdax   temp,1         ;low pass fiter entire input
wra   idel,0         ;write initial sound delay
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Spin Semiconductor Forum Index -> Algorithm development All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group