見出し画像

max/msp リバーブ gigaverbの研究


Max/msp リバーブ  gigaverbについて中身を調べます。


max/mspでリバーブを作る_シンプル版

以下はmax/mspでとてもシンプルなリバーブを作る記事です。



Gigaverbについて

gigaverbはmax/mspのgen~などで実装されているリバーブです。
beapなど様々なところでよく使われています。
gigaverbはモノラル入力→ステレオ出力のリバーブです。
形式的にはFDNを備えたリバーブの一種です。
gigaverbのgen~の中身を見ながらパラメータや仕組みをざっくり見ていきます。


FDNリバーブについて

AMCJにてFDNリバーブを一緒に制作するワークショップを行いました。
以下にパワポ、パッチなどの資料を販売しています。
こちらも参考になるかもしれません。


bandwithについて


gigaverbのgenの最初の部分は入力を足して×0.707しています。
この部分は二乗平均和√2で信号を割っている部分になります。

次にmixとhistoryが組み合わさりbandwidthというパラメータが挟まっています。 この部分はワンポールフィルターというフィルターです。この場合はLow passフィルターとして使われています。


ワンポールフィルターは次のようなブロック図で表されます。ここでZ^-1の部分がhistoryオペレータになります。
ワンポールフィルターではb0 = 1 - |a1| という感じで使われます。
mixの部分がそのような役割をしています。
a1がマイナスだとローパス、プラスだとハイパスの役割をします。a1の絶対値は1より小さくする必要があります。


prediffuseについて

ローパスフィルターを抜けるとprediffuseという部分に信号が入ります。


これはオールパスフィルターの形になっています。
オールパスフィルターは以下のようなブロック図で表します。


ここでb0=aMの場合にオールパスフィルターになります。ここではb0=aM=0.75のフィードバックゲインを持ちます。


ディレイタイムがroomsizeと接続されたパラメータになっています。exprで計算されている部分についてroomsizeの単位がメートルだった場合roomsizeの距離を移動するまでにかかる時間をサンプル数で表したものが出力になります。
以下の式がディレイタイムの設定で使われることがあります。
340は音速 そしてサンプルレートは1/Tです。in1をdとした場合exprの式は下の式のd/cTと同じになります。

もしin1がメートルならばこれはサンプル数を出力します。そうでない場合、また係数として掛かっている0.110732はパラメータを調整するための係数だと思われます。例えば部屋の形状などに応じた係数かもしれません。この部分はマジックナンバーですが、全体としてはオールパスフィルターが前段にあるという事が分かります。


Tap delaysについて



これは4タップディレイになっています。4回だけディレイされます。
それぞれのディレイタイムはルームサイズから係数が掛かって決定されています。ルームサイズから出るのはサンプル数です。 ディレイのゲインはrevtimeとroomsizeから計算されています。 
revtimeの直下のexprの中身を見てみます。
pow(10,-60/20)=0.001です。これはt60というパラメータに関係する部分です。t60とはオーディオの減衰時間などにかかわるパラメータで元の音量から0.001倍になるまでの時間の事を表します。0.001の何乗かという部分を表しているのが直下のexprの部分です。

gigaverbではexprが二つあるのですがこれはまとめてしまった方が分かりやすいです。これは指数の法則で


$${x^a×x^b=x^{ab}}$$

という風にまとめてしまうと分かりやすいです。
まとめると以下のような式と同じことを行っています。


+5という数字がdelay timeに加算されていますがこれはおそらくdelay timeが0にならないように安全のために入れてあるものだと思います。0.41や0.3 0.155などはばらけたディレイタイムのための係数だと思います。

earlyでは初期反射のゲインを調整しています。


FDN について

Tap delaysから出力された信号は分岐してFDNに入ります。
FDNのディレイタイム、フィードバックゲインはTap delaysと同じような計算方法で行われています。0.5はFDNの正規化係数です。
FDNが4つなので

$${1/ \sqrt{4}=0.5}$$

となります。



また各ディレイラインにはLow Pass Filterが挟まっています。
このフィルターはOne Pole フィルターです。 
フィルターの掛かり具合はdampingというパラメータで調整されます。

tailというパラメータが後段にかかりこの部分で後期残響部分のゲインが調整されます。ここまででリバーブの出力はモノラルです。


Diffusion chainsについて


FDNを通った信号は初期残響と後期残響が合わさったものとして最終段Diffusion chainsに送られます。

この部分は拡散とステレオ感を表現する部分です。各部にはroom sizeとspreadというパラメータから決定されるディレイタイムを持つオールパスフィルターが(3つ直列)×2 で左右に備わっています。左右のディレイタイムは異なる係数が掛かっていて左右差が出るようになっています。最終的にここでステレオ化されたあとdryパラメータでd/wのゲインが決定されリバーブの出力となります。
以上がgigaverbのざっくりとした中身になります。




画家 原亜也華さんの個展『 波立つ庭 』の会場音楽を担当いたしました。

原 亜也華 個展『 波立つ庭 』

会期:2023.04.20(木)~04.24(月)
時間:13:00~18:30 (最終日は17:00まで)
会場:gallery hydrangea (東京 曳舟)
音楽:fendoap
入場無料
詳細:https://gallery-hydrangea.shopinfo.jp/posts/40905772
誰もいない静寂だけが
私たちを知っている

アンビエント楽曲集としてリリースしています。



全編 Pure Dataによる制作 パッチも付属しています。


Max/mspを中心に制作 パッチも付属しています。


Max for liveの販売をしています。


よろしければサポートお願いします!