Shimmer
Moderator: frank
There is a few errors on the code:
In the register declarations must say:
The LPFF and LPFSH must be 0.3 and -0.5, I putted 0,3 and -0,5
And on the mixer stage must say:
I mulx with pot2 instead... my bad!!.
The shimmer is sounding and it's pretty good, I'd like to bring the octave a little bit on front, it's a lot of reverb and on the tails de shimmer. That's ok, but it's a little too on the tails. Perhaps boosting the signal entering the pitchshifting stage?.
In the register declarations must say:
Code: Select all
equ revout reg1
And on the mixer stage must say:
Code: Select all
wrax pitchout, 1
mulx pot1
rdax adcl, 1
wrax revin, 0
The shimmer is sounding and it's pretty good, I'd like to bring the octave a little bit on front, it's a lot of reverb and on the tails de shimmer. That's ok, but it's a little too on the tails. Perhaps boosting the signal entering the pitchshifting stage?.
-
- Posts: 10
- Joined: Wed May 04, 2011 4:43 am
-
- Posts: 10
- Joined: Wed May 04, 2011 4:43 am
here is what i have so far
still have no sound tho
[/code]
still have no sound tho
Code: Select all
; Hall reverb w/shimmer
; Jan 2012
;
;
; Mono input, Stereo output
; POT0: Damping
; POT1: Feedback
; POT2: Decay
;
; by Sweetalk
;MEMORY
mem delayl 4096 ; Pitch Shift mem
mem temp1 1
mem iap1 156 ; Reverb mem declarations
mem iap2 223
mem iap3 332
mem iap4 448
mem ap1 1251
mem ap1b 1751
mem ap2 1443
mem ap2b 1343
mem ap3 1582
mem ap3b 1981
mem ap4 1274
mem ap4b 1382
mem del1 3559
mem del2 2945
mem del3 3976
mem del4 4445
;REGISTERS
equ revin reg0 ;Reverb In
equ revout reg1 ;Reverb Out
equ pitchout reg2 ;Pitch Shift Out. (really it's Reverb->Pitch out)
equ LPF reg3 ;LPF reg
equ temp reg4 ;Temp register
equ hpf1 reg5 ;High pass filters for reverb registers
equ hpf2 reg6
equ hpf3 reg7
equ hpf4 reg8
equ lpf1 reg9 ;Low pass filters for reverb registers
equ lpf2 reg10
equ lpf3 reg11
equ lpf4 reg12
equ rt reg13 ;Reverb Time register
equ iapout reg14
;CONSTANTS
equ LPFF 0.3 ;LPF coefficent for LPF after pitch shifting
equ LPFSH -0.5 ;Shelving coefficent for LPF -6dB.
equ kfh 0.01
equ kfl 0.4
equ kiap 0.5
equ klap 0.6
;PITCH SHIFTER RAMP0 INIT
skp run, START
wldr 0, 16384, 4096 ;Init RAMP0 for +1 octave pitch shifting
;Prepare POT2 for Decay
rdax pot2,1
sof 0.65,0.3 ;Scale by 0.65 and add 0.3
wrax rt,0 ;rt ranges 0.3 to 0.95
START:
;REVERB
rdax revin, 1 ;Read reverb in
sof 0.25, 0 ;
rda iap1#, kiap
wrap iap1, -kiap
rda iap2#, kiap
wrap iap2, -kiap
rda iap3#, kiap
wrap iap3, -kiap
rda iap4#, kiap
wrap iap4, -kiap
wrax iapout, 0 ;write to register for ring injection
;now do reverb ring, use temp as reg for filtering:
;aps into delay1:
rda del4#, 1 ;read previous delay
mulx rt ;multiply by reverb time coefficient
rdax iapout, 1 ;read left input from input allpass filter bank
rda ap1#, klap ;do an allpass filter
wrap ap1, -klap
rda ap1b#, klap ;do second all pass filter
wrap ap1b, -klap
wrax temp, 1 ;write to temp, keep in acc
rdfx lpf1, kfl ;low pass filter
wrlx lpf1, -1
rdfx hpf1, kfh ;high pass filter
wrhx hpf1, -1
rdax temp, -1
mulx pot0 ;crossfade between filter and no filter
rdax temp, 1
wra del1, 0 ;write to next delay, clear accumulator
;aps into delay2:
rda del1#, 1
mulx rt
rda ap2#, klap
wrap ap2, -klap
rda ap2b#, klap
wrap ap2b, -klap
wrax temp, 1
rdfx lpf2, kfl
wrlx lpf2, -1
rdfx hpf2, kfh
wrhx hpf2, -1
rdax temp, -1
mulx pot0
rdax temp, 1
wra del2, 0
;aps into delay3:
rda del2#, 1
mulx rt
rdax iapout, 1
rda ap3#, klap
wrap ap3, -klap
rda ap3b#, klap
wrap ap3b, -klap
wrax temp, 1
rdfx lpf3, kfl
wrlx lpf3, -1
rdfx hpf3, kfh
wrhx hpf3, -1
rdax temp, -1
mulx pot0
rdax temp, 1
wra del3, 0
;aps into delay4:
rda del3#, 1.0
mulx rt
rda ap4#, klap
wrap ap4, -klap
rda ap4b#, klap
wrap ap4b, -klap
wrax temp, 1
rdfx lpf4, kfl
wrlx lpf4, -1
rdfx hpf4, kfh
wrhx hpf4, -1
rdax temp, -1
mulx pot0
rdax temp, 1
wra del4, 0
;take outputs as taps from reverb ring:
rda del1, 0.8
rda del2, 0.8
rda del3+2876, 1.5
rda del1+2093, 1.1
rda del4+1234, 1.1
wrax revout, 1 ;Write to revout register, keep in ACC for pitch shifting
;PITCH SHIFT +1 OCTAVE
cho rda, RMP0, REG|COMPC, delayl
cho rda, RMP0, , delayl+1
wra temp1, 0
cho rda, RMP0, RPTR2|COMPC, delayl
cho rda, RMP0, RPTR2, delayl+1
cho sof, RMP0, NA|COMPC, 0
cho rda, RMP0, NA, temp1
;LPF to smooth out a little of the high end
rdfx LPF, LPFF ;Freq coef
wrhx LPF, LPFSH ;Shelving coef.
wrax pitchout, 1 ;Write the pitch + reverb out on pitchout and keep it in acc. ACC = Pitch + Reverb
mulx pot1 ;Multily by Feedback pot (POT2). ACC = (Pitch + Reverb) * POT2
rdax adcl, 1 ;Read ADCL and add to ACC. ACC = ((Pitch + Reverb) * POT2) + Clean
wrax revin, 0 ;Write the mix from the ACC (feedback and clean signal) on the revin and clear the ACC.
;Making mono output
rdax revout, 1 ;Read output from Reverb (revout) and write it to ACC.
wrax dacl,1 ;Write the ACC on DACL and keep it.
wrax dacr,0 ;Write the Acc on DACR and clear it.
;set up lfo, 1Hz to 2Hz, +/-100 samples, for smearing loop all passes:
skp run, 2
wlds sin0, 30, 50
wlds sin1, 41, 50
;smear 4 allpass filters in reverb ring:
cho rda, sin0, reg|compc, ap1+50 ;sin0
cho rda, sin0, 0, ap1+51
wra ap1+100, 0
cho rda, sin0, cos|compc, ap2+50 ;cos0
cho rda, sin0, cos, ap2+51
wra ap2+100, 0
cho rda, sin1, reg|compc, ap3+50 ;sin1
cho rda, sin1, 0, ap3+51
wra ap3+100, 0
cho rda, sin1, cos|compc, ap4+50 ;cos1
cho rda, sin1, cos, ap4+51
wra ap4+100, 0[code]
-
- Posts: 10
- Joined: Wed May 04, 2011 4:43 am
Sweetalk wrote:Well, I been working a little bit on the shimmer algorithm with a different approach than the one posted earlier.
I tooked the Hall reverb, eliminated the predelay section. The signal flow intents to be like this:
INPUT ---> + ---> REVERB -------> OUTPUT
| |
|<--- PITCH <----|
The adder on the front it's controled by POT2, allowing to adjust the amount of pitch shifted signal going back to the reverb.
I haven't tried yet but I'll be nice if you can take a look at this and see if it's OK. I'll be trying it tomorrow I hope (not at the office right now)
Code: Select all
-
- Posts: 34
- Joined: Thu Nov 09, 2006 6:58 am
- Contact:
I know this is an old thread, but I thought I'd chime in.
Putting the read for POT2 in the LFO setup means that it only gets read once. Change it to this:
if you want POT2 to do anything.
Also, if you change the pitch shifter delay to a shorter time you can have more DRAM left for the reverb. 2048 is fine, since the 'verb is pretty much mangling all the fine detail you'd normally get. It smooths out the warble, especially if you use the lowpass, too.
Code: Select all
PITCH SHIFTER RAMP0 INIT
skp run, START
wldr 0, 16384, 4096 ;Init RAMP0 for +1 octave pitch shifting
;Prepare POT2 for Decay
rdax pot2,1
sof 0.65,0.3 ;Scale by 0.65 and add 0.3
wrax rt,0 ;rt ranges 0.3 to 0.95
START:
Code: Select all
PITCH SHIFTER RAMP0 INIT
skp run, START
wldr 0, 16384, 4096 ;Init RAMP0 for +1 octave pitch shifting
START:
;Prepare POT2 for Decay
rdax pot2,1
sof 0.65,0.3 ;Scale by 0.65 and add 0.3
wrax rt,0 ;rt ranges 0.3 to 0.95
Also, if you change the pitch shifter delay to a shorter time you can have more DRAM left for the reverb. 2048 is fine, since the 'verb is pretty much mangling all the fine detail you'd normally get. It smooths out the warble, especially if you use the lowpass, too.
-
- Posts: 7
- Joined: Mon Dec 09, 2013 4:03 am
POT2 NOT WORKING
Hey Guys!
I have tested this program, and the shimmer is perfect! Very nice, warm and pleasant tone.
But I noticed that the POT2 (decay) is not working at all.
Do you guys have a clue?
Second point: what is the feedback control? why should be feedback in a reverb?
Cheers!
I have tested this program, and the shimmer is perfect! Very nice, warm and pleasant tone.
But I noticed that the POT2 (decay) is not working at all.
Do you guys have a clue?
Second point: what is the feedback control? why should be feedback in a reverb?
Cheers!
Hey Ho, Let's Go!
-
- Posts: 338
- Joined: Mon Nov 12, 2012 1:12 pm
- Contact:
-
- Posts: 7
- Joined: Mon Dec 09, 2013 4:03 am
I tried to do this modification in the code Digital Larry! (putting "START:" before the POT2 definitions)Digital Larry wrote:Check the post immediately before yours for a clue why POT2 doesn't do anything.
But did not succeed....
Im eating my fingernails, because this shimmer program is so beautiful! Its just a matter of enhancement in the POTS behavior.
Hey Ho, Let's Go!
Have removed the other START command (after pot2) ?danielgiani wrote:I tried to do this modification in the code Digital Larry! (putting "START:" before the POT2 definitions)Digital Larry wrote:Check the post immediately before yours for a clue why POT2 doesn't do anything.
But did not succeed....
Im eating my fingernails, because this shimmer program is so beautiful! Its just a matter of enhancement in the POTS behavior.