| Hi,
I put source for some new opcodes at
http://www.werewolf.net/~hljmm/csound/opcodes/
nestedap implements three different nested all-pass filters useful for
implementing reverbs.
aout nestedap asig, imode, imaxdelay, idelay1, igain1 [, idelay2, igain2,
idelay3, igain3]
Mode 1 is a simple all-pass filter:
__d1,g1__
| |
v v
------------->
Mode 2 is a single nested all-pass filter:
__d1,g1____
| _d2,g2_ |
| | | |
v v v v
---------------->
Mode 3 is a double nested all-pass filter:
__d1,g1______________
| _d2,g2_ _d3,g3_ |
| | | | | |
v v v v v v
-------------------------->
Note imaxdelay is not currently used but will be necessary if k-rate delay
is implemented.
lorenz implements the lorenz system of equations:
ax, ay, az lorenz ksv, krv, kbv, kh, ix, iy, iz, iskip
Note that the biquad example is not the latest version with the
initialization skipping feature.
entry.c:
void nestedapset(void*), nestedap(void*);
void lorenzset(void*), lorenz(void*);
{ "nestedap", S(NESTEDAP), 5, "a", "aiiiiooooo", nestedapset, NULL,
nestedap },
{ "lorenz", S(LORENZ), 5, "aaa", "kkkkiiii", lorenzset, NULL, lorenz },
The following example illustrates usage:
sr=44100
kr=4410
ksmps=10
nchnls=2
instr 5
insnd = p4
gasig diskin insnd, 1
endin
instr 10
imax = 1
idel1 = p4
igain1 = p5
idel2 = p6
igain2 = p7
idel3 = p8
igain3 = p9
idel4 = p10
igain4 = p11
idel5 = p12
igain5 = p13
idel6 = p14
igain6 = p15
afdbk init 0
aout1 nestedap gasig+afdbk*.4, 3, imax, idel1, igain1, idel2, igain2,
idel3, igain3
aout2 nestedap aout1, 2, imax, idel4, igain4, idel5, igain5
aout nestedap aout2, 1, imax, idel6, igain6
afdbk butterlp aout, 1000
outs gasig+(aout+aout1)/2, gasig-(aout+aout1)/2
gasig = 0
endin
instr 20
ksv = p4
krv = p5
kbv = p6
ax, ay, az lorenz ksv, krv, kbv, .01, .6, .6, .6, 1
outs ax*1000, ay*1000
endin
; SCORE
f1 0 8192 10 1
; Diskin
; Sta Dur Soundin
i5 0 3 1
; Reverb
; Sta Dur Del1 Gain1 Del2 Gain2 Del3 Gain3 Del4 Gain4 Del5 Gain5 Del6
Gain6
i10 0 4 97 .11 23 .07 43 .09 72 .2 53 .2 119
.3
; Lorenz system
; Sta Dur S R V
i20 5 1 10 28 2.667
|