2014年4月8日火曜日

PdでReverbを作る(スクラッチビルド)

アルゴリズミック(もしくはパラメトリック)なReverbには,代表的な理論がいくつかあります.
その中でも、"diffusion" "decay" "dump" と呼ばれるような係数で記述される「コムフィルタ式」Reverbは,デジタルミュージックの世界では特に有名.DTMに触れたことがある人ならご存知かと思います.

今回,そのコムフィルタ式Reverbの代表的なモデルとして以下の3つを勉強してみました.


これらの中では,Griestinger/Dattorroが使いやすいし実用的な音質という印象.
適応フィルタとかを作るならFDNが良いんでしょうね.

・Schroeder / Moorerモデル
Pd-extendedに同梱の[freeverb~]はこれ。
[並列に並べたコムフィルタ] → [直列に並べたオールパスフィルタ]
コムフィルタが音に「がなり」を加える働き.オールパスが余韻的な要素(decay).
Moorerはその前段に,初期反射(1次反射; early refrection)音に相当するタップディレイを追加したもの.

・Griestinger / Dattorroモデル
Lexicon 224のアルゴリズム.左右別系統のパスをもち,相互にフィードバックさせる構造のタンクと呼ばれるフローが図面的に印象的だが,オールパス部のdecayを変調できるようにして,複雑な拡散をしつつも共振を抑えることができるしくみもポイント.

・Jot’s FDN(Feedback Delay Network) モデル
行列接続でフィードバック構造を一般化してコムフィルタ/オールパスフィルタを統合.
MAX/Pdの創造神Pucketteも,このシステムの安定性解析に関する論文を出している.


Pdで作るにあたっては,delay lineを使うシステム上の制約から1次のIIRフィルタ(直前のサンプル値を参照して今の信号に加えるデジタル積分回路)を作るのに一工夫必要なんですが,[lop~]が多分内部的に同等の動き(いわゆるRCローパスフィルタのデジタル版,H(z)=b/(1+aZ^-1)的なアレ)をしていると思うので代用が可能みたいです

とりあえず自分で使うにはいいかなというものが出来たんですが,配れそうな程度にまとまったらまたupしようと思います.

--

うーむ、デジタルオーディオと制御工学の合いの子みたいで、何とも俺得な学問分野。

参考文献
http://cnx.org/content/m15491/1.2/snd_reverb-schroeder-theory.html (入門的 制御工学知らない人でもわかる)
http://mcpu.s12.xrea.com/dsp/jf/toc.html (マイアミ大学の修論 順序立っていて理解しやすい 日本語訳)
http://www-dsp.elet.polimi.it/ispg/images/pdf/audio/materiale/reverberation_algorithms.pdf (概論的)
http://msp.ucsd.edu/techniques/latest/book-html/node111.html (PdのマニュアルのG08と同じ)
https://ccrma.stanford.edu/~dattorro/ (論文にDattorroモデルのフローあり)
http://www.ari-web.com/service/soft/index.htm (最初からコレ読んでればよかったか)

0 件のコメント :

コメントを投稿