2016年5月21日土曜日

1.6.1 Angle-Interpolated Stereo Panner


改良型パン(ステレオ入出力) 


次の.dspコードとそのダイアグラムをみてください。


  1 import("filter.lib") ; 
  2 t = hslider("interpolation time", 0.001, 0, 0.01, 0.0001);
  3 c = hslider("pan", 0.5, 0, 1, 0.01) : smooth(tau2pole(t));
  4 
  5 OutL(c,l,r) = sqrt(min(1,2-2*c))*l + sqrt(max(0,1-2*c))*r ; 
  6 OutR(c,l,r) = sqrt(max(0,2*c-1))*l + sqrt(min(1,2*c))*r ;
  7 pan(c,l,r) = OutL(c,l,r)/2, OutR(c,l,r)/2 ;
  8 
  9 process = pan(c);




コード内の Out L ( c, l, r)と Out R (c, l, r ) は、

もちろん出力配列になる2行を表しています。

2で割っているのは、 Out L と Out R の関数が、
2つの入力が同じチャンネル(c = 0 や c = 1)に割り当てられたときに、
音量がクリップするのを避けるためです。

SVGダイアグラム(公式のリファレンスより)







Fig.1.12
"Angle-Interpolated Stereo Panner" のダイアグラム図。
3つの段階に分かれている。

ここには、左ch のprocessingしか掲載していないが、
右ch の様子も当然ながら同じようなものになる。

実行画面



0 件のコメント:

コメントを投稿