-odac
;example by joachim heintz
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
giSine ftgen 0, 0, 2^10, 10, 1
seed 0
opcode FiltFb, aa, akkkia
;;DELAY AND FEEDBACK OF A BAND FILTERED INPUT SIGNAL
;input: aSnd = input sound; kFb = feedback multiplier (0-1); kFiltFq: center frequency for the reson band filter (Hz); kQ = band width of reson filter as kFiltFq/kQ; iMaxDel = maximum delay time in seconds; aDelTm = delay time
;output: aFilt = filtered and balanced aSnd; aDel = delay and feedback of aFilt
aSnd, kFb, kFiltFq, kQ, iMaxDel, aDelTm xin
aDel init 0
aFilt reson aSnd, kFiltFq, kFiltFq/kQ
aFilt balance aFilt, aSnd
aDel vdelayx aFilt + kFb*aDel, aDelTm, iMaxDel, 128; variable delay
xout aFilt, aDel
endop
opcode Opus123_FiltFb, a, a
;;the udo FiltFb here in my opus 123 :)
;input = aSnd
;output = filtered and delayed aSnd in different mixtures
aSnd xin
kdB randomi -18, -6, .4; random movement between -18 and -6
aSnd = aSnd * ampdb(kdB); applied as dB to noise
kFiltFq randomi 100, 1000, 1; random movement between 100 and 1000
iQ = 5
iFb = .7; feedback multiplier
aDelTm randomi .1, .8, .2; random movement between .1 and .8 as delay time
aFilt, aDel FiltFb aSnd, iFb, kFiltFq, iQ, 1, aDelTm
kdbFilt randomi -12, 0, 1; two random movements between -12 and 0 (dB) ...
kdbDel randomi -12, 0, 1; ... for the noise and the delay signal
aOut = aFilt*ampdb(kdbFilt) + aDel*ampdb(kdbDel); mix it
xout aOut
endop
instr 1; well known context as instrument
aSnd rand .2
kdB randomi -18, -6, .4; random movement between -18 and -6
aSnd = aSnd * ampdb(kdB); applied as dB to noise
kFiltFq randomi 100, 1000, 1; random movement between 100 and 1000
iQ = 5
iFb = .7; feedback multiplier
aDelTm randomi .1, .8, .2; random movement between .1 and .8 as delay time
aFilt, aDel FiltFb aSnd, iFb, kFiltFq, iQ, 1, aDelTm
kdbFilt randomi -12, 0, 1; two random movements between -12 and 0 (dB) ...
kdbDel randomi -12, 0, 1; ... for the noise and the delay signal
aOut = aFilt*ampdb(kdbFilt) + aDel*ampdb(kdbDel); mix it
aOut linen aOut, .1, p3, 3
outs aOut, aOut
endin
instr 2; well known context UDO which embedds another UDO
aSnd rand .2
aOut Opus123_FiltFb aSnd
aOut linen aOut, .1, p3, 3
outs aOut, aOut
endin
instr 3; other context: two delay lines with buzz
kFreq randomh 200, 400, .08; frequency for buzzer
aSnd buzz .2, kFreq, 100, giSine; buzzer as aSnd
kFiltFq randomi 100, 1000, .2; center frequency
aDelTm1 randomi .1, .8, .2; time for first delay line
aDelTm2 randomi .1, .8, .2; time for second delay line
kFb1 randomi .8, 1, .1; feedback for first delay line
kFb2 randomi .8, 1, .1; feedback for second delay line
a0, aDel1 FiltFb aSnd, kFb1, kFiltFq, 1, 1, aDelTm1; delay signal 1
a0, aDel2 FiltFb aSnd, kFb2, kFiltFq, 1, 1, aDelTm2; delay signal 2
aDel1 linen aDel1, .1, p3, 3
aDel2 linen aDel2, .1, p3, 3
outs aDel1, aDel2
endin
i 1 0 30
i 2 31 30
i 3 62 120