Effector Tips
ディレイ用のバッファ
ディレイを実装するにあたり、リングバッファと呼ばれるバッファを用意する。
リングバッファとはデータ確保領域が環状に配置されたエンドレスなバッファである。
環状なバッファため、配列とは違い「先頭から○○番目のデータ」のような指定ができない。そのため、読み取りと書き込みを行うバッファ位置の情報を持つ。
この読み取り位置を進める(戻す)ことで必要なデータを読み出す。
リングバッファ実装概要
実際には1次元バッファを用意し、基準位置がバッファの大きさを超えるとバッファ先頭へ戻るという処理を行うだけである。
ディレイの実装方法概要
以下のステップで入力信号を処理することでディレイを実装することができる。
- 入力信号をリングバッファへ書き込む
- リングバッファの書き込み位置を1つ進める
- リングバッファからデータを読み出す
- リングバッファの読み出し位置を1つ進める
- 読み出したデータと入力信号を加算し、出力信号とする。
ディレイとリングバッファの関係
上記のディレイの実装方法では、入力信号を書き込むと同時にデータを取り出しているため、リングバッファの読み込み位置・書き込み位置の距離(Interval)がそのまま入力信号の遅れる時間となる。
たとえば入力信号を0.5秒遅らせたい場合、読み込み位置と書き込み位置の距離(Interval)を22050バッファ分とすればよい(サンプリング周波数44100の場合)
同一カテゴリのTips
最終更新:2010年06月04日 01:00