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

公開:2016-08-08 21:05
更新:2020-02-15 04:37
カテゴリ: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;