2022/05/13

Feedback Delay Network の実装

Feedback Delay Network の実装を読む (github.io) 

Feedback delay network (FDN) が発散しないフィードバック行列について調べました。配布準備がまだですが VST 3 プラグインの FDN64Reverb として実装もしました。画像は FDN のブロック線図です。

リバーブであれば、浮動小数点数が使えるならランダムな直交行列、整数演算ならアダマール行列conference 行列がよさそうです。巡回行列を作る方法は細長い管を通したような音がでます。フィードバック行列にこだわるよりも、ディレイ時間などの変調をうまくかけたほうが簡単に雰囲気がでます。

FDN は素朴な実装だと行列の乗算で N^2 の計算量がかかるのでかなり重たいです。行列の種類によっては FDN ではない形に実装を特殊化するほうがよさそうです。行列の乗算をより高速に計算できるアルゴリズムもあるようですが、 Eigen の開発者による 10 年前のコメントによると 2000*2000 ほどの大きさを超えないと高速化は期待できないそうです。オーディオレートに追いつけるのであれば GPU で計算という手もあるかもしれません。