LRユニット"The Tank"の開発

McGillでResearch Assistantしているわけですが、今年は24chスピーカー用の高品質リアルタイム・リバーブアルゴリズムの研究開発をお手伝いしています。基本的にリバーブを三種類の成分(direct sound、early reflection、late reverberation)に分けて、それぞれを別のアルゴリズムで計算してから加算するという、基本に忠実な方式です。

ER部分はプロジェクト・リーダーがレイトレーシング法で実装したのがあり、それを使っています。それの音質ももうちょっと見直しが必要なんですが、ここ数日の僕の担当はLR部分の音質改良でした。もうすでにPDの開発者Miller Puckettが博士課程の時に考案したFeedback Delay Networkという方式で作った8フィードバックのリバーブ2機がすでにプロジェクト内部で実装されていたので、そこに手を加えることになりました。リバーブ音をそこから汲み出してくるようなイメージなので、別名「The Tank」です。細かいことは論文に書くのですが、大まかにはリバーブの尻尾にモジュレーションをかけてフランジャーと同様の効果を作る、というもの。それだけだと本当にフランジャーのようなしゅわしゅわした音になってしまうので、ちょっと細工をしてやりました。C言語でexternを書かないといけないかと思っていたんですが、PDだけでも十分な速度でできました。優秀だね、PD。

バーブの研究の途中で出てきた「ちょっと細工をしてやりました」の部分が、本物のフランジャーやコーラスにも使えるかもしれません。ものになりそうなので、引き続き研究してみます。