biquad
ノードイコライザーとフィルタ。ベルからノッチまで8種類のフィルタ形状を、トポロジー保存の状態変数型(TPT-SVF)で処理します。
パラメータ
? = 省略できる欄
{
"cutoff_hz": 1000,
"gain_db": 3,
"q": 1,
"shape": "bell",
"type": "biquad"
}計算
g = tan(π · cutoff_hz / レート) レート = 705,600 または 768,000 Hz
k = 1 / q (bellでは 1 / (q · A))
応答型・遮断周波数・q・gain_db から5つの係数(g・k と3つの混合係数)を解き、
TPT状態変数型フィルタとして走らせる- gain_dbが効くのはbell・low_shelf・high_shelfです。ほかの応答型では省略するかnullにします。
- 係数を算出しているのは、アプリで特性曲線を描画しているのと同じコードです。画面に表示される特性曲線と実際に適用されるフィルタ特性が乖離することはありません。
- フィルタ係数は両方の内部レートで個別に算出され、その双方で安定動作の検証を満たす必要があります。
使うときの注意
遮断周波数は可聴域よりずっと上まで置けます。
上限は低いほうの系列の内部ナイキスト(352.8kHz)です。これは意図した仕様で、非線形段によって生成された高周波倍音を整形するフィルタの配置を想定しているためです。検証で拒否されるのは、その超音波帯域を増幅(ブースト)することです。
高いQ値は一律禁止ではなく、実際のピーク利得を測定します。
Q値が極めて狭くブースト量の大きいフィルタは鋭いピーク利得を生じるため、係数検証ではその最大ゲインを厳密に測定します。制限値を超過して拒否された場合は、超過量が具体的な数値として返されます。
線形ノードのため音量合わせの対象となります。
帯域をブーストするbiquadはシグナルチェーン全体の出力レベルを上昇させるため、A/B比較の自動音量合わせがフィルタ係数からブースト分を自動的に相殺します。