移動平均をとればLPFが作れるというのでやってみた。確かにLPFっぽいな。。 次はJSFXの@gfxを使ってフィルタ特性を視覚化しようかなと思っている。
ソースコード
desc:SF:Moving Average
slider1:50<0,100,1>Wet (%)
slider2:50<0,100,1>Dry (%)
slider3:10<0,100,1>Length
@init
length = 10;
bufferL = 0;
bufferR = length;
idx = 0;
@slider
wet = slider1 / 100;
dry = slider2 / 100;
length = slider3;
bufferL = 0;
bufferR = length;
idx = 0;
@block
@sample
l = spl0;
r = spl1;
i = 0;
resultL = l;
resultR = r;
loop(length,
resultL += bufferL[i];
resultR += bufferR[i];
i+=1;
);
resultL /= (length + 1);
resultR /= (length + 1);
spl0 = resultL;
spl1 = resultR;
bufferL[idx] = l;
bufferR[idx] = r;
idx+=1;
idx >= length? idx = 0;