form caption("pvsBlur"), size(235,125) colour( 70, 90,100), pluginID("blur")
image bounds(0, 0,235,125), colour( 70, 90,100), shape("rounded"), outline("white"), line(5)
rslider bounds( 10, 10, 70, 70), text("FFT Size"), channel("att_table"), range(1, 7, 4, 1,1), fontcolour("white"),colour( 70, 90,100),trackercolour("white")
rslider bounds( 80, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("white"),colour( 70, 90,100),trackercolour("white")
rslider bounds(150, 10, 70, 70), text("Level"), channel("lev"), range(0, 1.00, 0.5, 0.5), fontcolour("white"),colour( 70, 90,100),trackercolour("white")
hslider bounds( 10, 70,210, 40), channel("blurtime"), range(0, 2.00, 0.0, 0.5, 0.0001), fontcolour("white"),colour( 70, 90,100),trackercolour("white")
label bounds( 92,103, 60, 11), text("Blur Time"), fontcolour("white")
-d -n
sr = 44100
ksmps = 64
nchnls = 2
0dbfs = 1 ;MAXIMUM AMPLITUDE
; Author: Iain McCurdy (2012)
; http://iainmccurdy.org/csound.html
/* FFT attribute tables */
giFFTattributes1 ftgen 0, 0, 4, -2, 128, 64, 128, 1
giFFTattributes2 ftgen 0, 0, 4, -2, 256, 128, 256, 1
giFFTattributes3 ftgen 0, 0, 4, -2, 512, 128, 512, 1
giFFTattributes4 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1
giFFTattributes5 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1
giFFTattributes6 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1
giFFTattributes7 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1
opcode pvsblur_module,a,akkkiiii
ain,kblurtime,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG
f_blur pvsblur f_anal, kblurtime, 2 ;BLUR AMPLITUDE AND FREQUENCY VALUES OF AN F-SIGNAL
aout pvsynth f_blur ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX
xout amix*klev
endop
instr 1
kblurtime chnget "blurtime"
kmix chnget "mix"
klev chnget "lev"
ainL,ainR ins
;ainL,ainR diskin "808loop.wav",1,0,1 ;USE FOR TESTING
/* SET FFT ATTRIBUTES */
katt_table chnget "att_table" ; FFT atribute table
katt_table init 5
ktrig changed katt_table
if ktrig==1 then
reinit update
endif
update:
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1
iwintype table 3, giFFTattributes1 + i(katt_table) - 1
/*-------------------*/
kporttime linseg 0,0.001,0.02
kblurtime portk kblurtime,kporttime
aoutL pvsblur_module ainL,kblurtime,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype
aoutR pvsblur_module ainR,kblurtime,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype
outs aoutR,aoutR
endin
i 1 0 [60*60*24*7]