読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

移動平均フィルタを作る - REAPERのJSFXでエフェクトを作る(5)

REAPER JSFX

移動平均をとれば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;