CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

デジタルディレイ(2)

信号の遅延をオシロで測定しました。
 
ここで遅延時間が長いとオシロの管面に収まらないので一時的に短くしています。
遅延時間を短くするにはリングバッファを小さくする手もありますが、ここでは書込みポインタと読出しポインタの初期値に100のインターバルをあけました。
こうすると入力信号から100サンプリング後に遅延した出力信号が得られることになります
信号入力は1kHzサイン波の3波バーストをファンクションジェネレータから注入。(ch.2)出力はぴったりfs=25kHzでの100サンプル=4ms遅れていることがわかります(ch.1)
 
イメージ 1
 
ディレイ処理はできましたが、このままでは原音と全く同じものが少し遅れて出てくるだけで全くエフェクトにはなりません。遅れの無い原音と混ぜることでエコー、ダブリングの効果が発生します。
データ出力部分を少し変更し現在時刻での信号データをx、一定時間遅延した信号データをyとし、これを加算してDACに書き込みます。
本来はオーバーフロー、ミックスバランスを考慮して係数を掛け合わせればいいのですが、実験なので単なる足し算です
 
イメージ 3
 
 
この処理の出力波形です。
原音と遅延音が連続して出力されダブリングの効果が得られています
 
 
イメージ 2