echo
Moderator: frank
-
- Posts: 338
- Joined: Mon Nov 12, 2012 1:12 pm
- Contact:
Here you go.
; Pot 0: Delay time 50 msec - 950 msec
; Pot 1: Feedback level
; Pot 2: Delay level
; Left in, left out
;
; ----------------------------
;------ Input
;------ Pot 0
;------ Smoother
RDAX POT0,1.0000000000
RDFX REG0,0.0009173407
WRAX REG0,0.0000000000
;------ Feedback Output
;------ Pot 2
;------ Pot 1
;------ Mixer 2:1
RDAX ADCL,1.0000000000
WRAX REG2,0.0000000000
RDAX REG1,1.0000000000
MULX POT1
RDAX REG2,1.0000000000
WRAX REG2,0.0000000000
;------ LPF 1P
RDAX REG2,1.0000000000
RDFX REG4,0.3961005515
WRAX REG4,0.0000000000
;------ Scale/Offset
RDAX REG0,1.0000000000
SOF 0.9400000000,0.0600000000
WRAX REG5,0.0000000000
;------ Coarse Delay
RDAX REG4,1.0000000000
WRA 0,0.0
CLR
OR $007FFF00
MULX REG5
SOF 0.9749755859,0.0000305176
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG6,0.0000000000
;------ Mixer 2:1
RDAX ADCL,1.0000000000
WRAX REG7,0.0000000000
RDAX REG6,1.0000000000
MULX POT2
RDAX REG7,1.0000000000
WRAX REG7,0.0000000000
;------ FB In 1
RDAX REG6,0.7600000000
WRAX REG1,0.0000000000
;------ Output
RDAX REG7,1.0000000000
WRAX DACL,0.0000000000
; Pot 0: Delay time 50 msec - 950 msec
; Pot 1: Feedback level
; Pot 2: Delay level
; Left in, left out
;
; ----------------------------
;------ Input
;------ Pot 0
;------ Smoother
RDAX POT0,1.0000000000
RDFX REG0,0.0009173407
WRAX REG0,0.0000000000
;------ Feedback Output
;------ Pot 2
;------ Pot 1
;------ Mixer 2:1
RDAX ADCL,1.0000000000
WRAX REG2,0.0000000000
RDAX REG1,1.0000000000
MULX POT1
RDAX REG2,1.0000000000
WRAX REG2,0.0000000000
;------ LPF 1P
RDAX REG2,1.0000000000
RDFX REG4,0.3961005515
WRAX REG4,0.0000000000
;------ Scale/Offset
RDAX REG0,1.0000000000
SOF 0.9400000000,0.0600000000
WRAX REG5,0.0000000000
;------ Coarse Delay
RDAX REG4,1.0000000000
WRA 0,0.0
CLR
OR $007FFF00
MULX REG5
SOF 0.9749755859,0.0000305176
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG6,0.0000000000
;------ Mixer 2:1
RDAX ADCL,1.0000000000
WRAX REG7,0.0000000000
RDAX REG6,1.0000000000
MULX POT2
RDAX REG7,1.0000000000
WRAX REG7,0.0000000000
;------ FB In 1
RDAX REG6,0.7600000000
WRAX REG1,0.0000000000
;------ Output
RDAX REG7,1.0000000000
WRAX DACL,0.0000000000
-
- Posts: 338
- Joined: Mon Nov 12, 2012 1:12 pm
- Contact:
-
- Posts: 338
- Joined: Mon Nov 12, 2012 1:12 pm
- Contact:
In this ping ping effects there is pitch effect like before
Now if i remove rdfx ping_addr my problem is solved?
Help me thanks.
;Ping-pong delay
;Frank Thomson
;OCT Distribution (310)348-9626
;
;pot0 adjusts ping delay time
;pot1 adjusts pong delay time
;pot2 adjusts feedback coefficient
equ ping_len 16383 ;Max ping delay length (left)
equ pong_len 16383 ;Max pong delay length (right)
equ smooth 0.001 ;Smoothing coefficient, adjust to change speed/zippernoise
equ feedforward 0.8 ;The dry (input) coefficient, increase to make louder
equ del_out 0.8 ;The output from the delay coefficient, increase to make louder
mem ping ping_len
mem pong pong_len
equ ping_addr reg0
equ pong_addr reg1
equ feedback reg2
equ ping_data reg3
equ pong_data reg4
; Clear register on start
skp RUN, loop
clr
wrax ping_addr,0
wrax pong_addr,0
wrax feedback,0
loop:
; Select tap from delay based on pot0, should range 0 to length
; Since pot only has 512 states, want to filter pot to avoid jumping
; Smooth POT0
clr ; Clear the ACC
or ping_len*256 ; Put delay length into ACC alligned to ACC[22:8]
mulx pot0 ; Multiply by POT0, new target value
rdfx ping_addr, smooth ; Smooth it : (target - current) * C + current
wrax ping_addr, 0 ; Save it
or ping*256 ; Load ping base address
rdax ping_addr,1.0 ; add pointer offset
wrax addr_ptr, 0 ; Write it to the address pointer register
rmpa 1 ; Read from memory
wrax ping_data,0 ; Write data from delay output to register
; Smooth POT1
or pong_len*256 ; Put delay length into ACC alligned to ACC[22:8]
mulx pot1 ; Multiply by POT1, new target value
rdfx pong_addr, smooth ; Smooth it : (target - current) * C + current
wrax pong_addr, 0 ; Save it
or pong*256 ; Load pong base address
rdax pong_addr,1.0 ; add pointer offset
wrax addr_ptr, 0 ; Write it to the address pointer register
rmpa 1 ; Read from memory
wrax pong_data,0 ; Write data from delay output to register
; Smooth POT2
rdax pot2,1.0 ; Get target
rdfx feedback, smooth ; Smooth it : (target - current) * C + current
wrax feedback, 0 ; Save it
; At this point, we have the delay data and feedback coefficient
; Left output
rdax adcl, feedforward ; Left in * coefficient
rdax ping_data,del_out ; add in ping delay
wrax dacl,0 ; write to DAC
; Right output
rdax adcr, feedforward ; Right in * coefficient
rdax pong_data,del_out ; add in pong delay
wrax dacr,0 ; write to DAC
; Ping delay input
rdax pong_data,1.0 ; get pong delay
mulx feedback
rdax adcl, feedforward ; add Left in * coefficient
wra ping,0 ; write to ping delay
; Pong delay input
rdax ping_data,1.0 ; get ping delay
mulx feedback
rdax adcr, feedforward ; add Right in * coefficient
wra pong,0 ; write to pong
Now if i remove rdfx ping_addr my problem is solved?
Help me thanks.
;Ping-pong delay
;Frank Thomson
;OCT Distribution (310)348-9626
;
;pot0 adjusts ping delay time
;pot1 adjusts pong delay time
;pot2 adjusts feedback coefficient
equ ping_len 16383 ;Max ping delay length (left)
equ pong_len 16383 ;Max pong delay length (right)
equ smooth 0.001 ;Smoothing coefficient, adjust to change speed/zippernoise
equ feedforward 0.8 ;The dry (input) coefficient, increase to make louder
equ del_out 0.8 ;The output from the delay coefficient, increase to make louder
mem ping ping_len
mem pong pong_len
equ ping_addr reg0
equ pong_addr reg1
equ feedback reg2
equ ping_data reg3
equ pong_data reg4
; Clear register on start
skp RUN, loop
clr
wrax ping_addr,0
wrax pong_addr,0
wrax feedback,0
loop:
; Select tap from delay based on pot0, should range 0 to length
; Since pot only has 512 states, want to filter pot to avoid jumping
; Smooth POT0
clr ; Clear the ACC
or ping_len*256 ; Put delay length into ACC alligned to ACC[22:8]
mulx pot0 ; Multiply by POT0, new target value
rdfx ping_addr, smooth ; Smooth it : (target - current) * C + current
wrax ping_addr, 0 ; Save it
or ping*256 ; Load ping base address
rdax ping_addr,1.0 ; add pointer offset
wrax addr_ptr, 0 ; Write it to the address pointer register
rmpa 1 ; Read from memory
wrax ping_data,0 ; Write data from delay output to register
; Smooth POT1
or pong_len*256 ; Put delay length into ACC alligned to ACC[22:8]
mulx pot1 ; Multiply by POT1, new target value
rdfx pong_addr, smooth ; Smooth it : (target - current) * C + current
wrax pong_addr, 0 ; Save it
or pong*256 ; Load pong base address
rdax pong_addr,1.0 ; add pointer offset
wrax addr_ptr, 0 ; Write it to the address pointer register
rmpa 1 ; Read from memory
wrax pong_data,0 ; Write data from delay output to register
; Smooth POT2
rdax pot2,1.0 ; Get target
rdfx feedback, smooth ; Smooth it : (target - current) * C + current
wrax feedback, 0 ; Save it
; At this point, we have the delay data and feedback coefficient
; Left output
rdax adcl, feedforward ; Left in * coefficient
rdax ping_data,del_out ; add in ping delay
wrax dacl,0 ; write to DAC
; Right output
rdax adcr, feedforward ; Right in * coefficient
rdax pong_data,del_out ; add in pong delay
wrax dacr,0 ; write to DAC
; Ping delay input
rdax pong_data,1.0 ; get pong delay
mulx feedback
rdax adcl, feedforward ; add Left in * coefficient
wra ping,0 ; write to ping delay
; Pong delay input
rdax ping_data,1.0 ; get ping delay
mulx feedback
rdax adcr, feedforward ; add Right in * coefficient
wra pong,0 ; write to pong
-
- Posts: 338
- Joined: Mon Nov 12, 2012 1:12 pm
- Contact:
All the info you need to learn how to edit the codes is in this document along with some other documents on the main Spin Website.aparat wrote:I asked you for help because I do not have much information about the codes
and i need And I need those codes
http://spinsemi.com/Products/datasheets ... Manual.pdf
www.stanleyfx.co.uk
"It's fairly straight forward, if you want to start it press start, you can work out the rest of the controls yourself."
"It's fairly straight forward, if you want to start it press start, you can work out the rest of the controls yourself."
-
- Posts: 338
- Joined: Mon Nov 12, 2012 1:12 pm
- Contact:
I'm not making fun of you. I'm suggesting that you can test your ideas easily by trying them and this is a great way to learn. Just make sure you aren't wearing headphones when you do it, because you never know what might happen.
I am fairly sure what you mentioned would work, although I didn't look at it too carefully.
Did you try it?
I am fairly sure what you mentioned would work, although I didn't look at it too carefully.
Did you try it?