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

S.F. Page

Programming,Music,etc...

疑似ステレオ効果を得る - REAPERのJSFXでエフェクトを作る(7)

REAPER JSFX

モノラルなシンセ音をステレオ感を感じさせるエフェクトを作ってみた。 少し遅らせた音をLチャンネルはそのまま、Rチャンネルは逆相でミックスすることによってステレオ感を得るというものである。

逆相の音というのは、簡単に言えばサンプルの符号を逆転させたものである。ちゃんというと位相を180度ずらしたとかいうらしい。

https://ngjdcw-bn1305.files.1drv.com/y3mK3n51XzIkaEYcHepr8wuAoaF9E2mWfgXAKSJ3mgUOXNUP4I5V8EEYmgJj8fkMH2hmj9UZ3HTr_nkhpqGSSk8rdFcRt0jl9qU-y51t5hviKGCXv8wfQJy31fuTySsl3hERThs6JGjSofTRnic5N72K39MQZh4U7u4ClZaQQQkuro?width=948&height=644&cropmode=none

今回やったことを図にすると以下になる。なぜこれでステレオ感が得られるのかはちゃんと理解していない。。

https://nwjdcw-bn1305.files.1drv.com/y3mg8MfggsBO2LrF1c72ZUbT_1Lt9v5Jle9viWwkuqNlREbJ3jk1ZRnv9zCiDa68VDumF-Qm_i-E_75Hzby6hDUFdqDO0KCyUmidgeHxAjaVpb769iOZNs0nXy-50v8GJ40aADKjv1Cec2gOUm8Ckw--d7Gz2FRaysyWim2hh9U44U?width=948&height=644&cropmode=none

ソースコード

desc:SF:STEREO

slider1:50<0,100,1>Wet (%)
slider2:50<0,100,1>Dry (%)
slider3:512<0,4096,1>Buffer Size

@init
  index = 0;
  bufsize = 512;
@slider

  wet = slider1 / 100;
  dry = slider2 / 100;
  bufbefore = bufsize;
  bufsize = slider3;
  
  buf = 0;
  
@block

@sample

  l = spl0;
  r = spl1;
  
  result = buf[index];
 
  buf[index]= -l ;
 
  (index += 1) >= bufsize ? index = 0;
  
  spl0 = l * dry + result * wet;
  spl1 = l * dry - result * wet;