#MB:FILTER_S:静的フィルタ定義【記述例】
このように書くと、
#MB:FILTER_S @fs=1 {
type=bq_lpf, freq=3000, q=1/(2^0.5),
}
t120 @@"pls" o4 l8 q11,16
@fsz cegr
@fs1 cegcegcegr;
定義番号: 定義番号は、@fsコマンドの引数で使用する番号と合致するように定義します。 定義番号の設定範囲は 0 〜 255 です。 設定データ: 設定データのフォーマットは、まず最初のパラメータで指定する種別定義 (type=…)で変わります。種別定義が必ず先頭で行われる必要があります。
"Cookbook formulae for audio EQ biquad filter coefficients,"
という文書があります。双二次フィルタは、この文書の技術に基づいています。
この例では、
BiQuadのローパスフィルタ、カットオフ周波数=3000Hz、Q値=1/√2 のフィルタを定義しています。 【解説】 BiQuadのローパスフィルタを定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_lpf, freq=[], q=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 設定範囲は、40.0 〜 384000.0 です。 q: フィルタのQ値を設定します。 設定範囲は、0 より大きい値です。 カットオフ周波数付近を強調したくない場合は、Q値を1/√2にします。 Q値を大きくすることでカットオフ周波数でのGainの減少を抑えることができま すが、大きくしすぎるとカットオフ周波数付近が強調されてしまいます。
#MB:FILTER_S @fs=1 {
type=bq_lpf, freq=3000, q=1/(2^0.5),
}
この例では、
BiQuadのローパスフィルタ(2直列)、カットオフ周波数=3000Hz のフィルタを定義しています。 【解説】 BiQuadのローパスフィルタ(2直列)を定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_lpf2p, freq=[],
}
フィルタのQ値は、内部で自動定義されます。 このローパスフィルタでは、BiQuadのローパスを2回かけて、フィルタの次数を 上げる効果を得ています(通常-12dB/octのところ、-24dB/oct)。 Q値は2つあり、いずれも内部で最適なものが自動定義されるため、Q値の設定 項目はありません。最適なQ値とは、 Q1:0.5411961001461970; // 1 / (2 * sin(3π/8)) Q2:1.3065629648763766; // 1 / (2 * sin(π/8)) です。 freq: カットオフ周波数を設定します。単位は「Hz」です。 設定範囲は、40.0 〜 384000.0 です。
#MB:FILTER_S @fs=1 {
type=bq_lpf2p, freq_lpf2p=3000,
}
この例では、
BiQuadのハイパスフィルタ、カットオフ周波数=2000Hz、Q値=1/√2 のフィルタを定義しています。 【解説】 BiQuadのハイパスフィルタを定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_hpf, freq=[], q=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 設定範囲は、40.0 〜 384000.0 です。 q: フィルタのQ値を設定します。 設定範囲は、0 より大きい値です。 カットオフ周波数付近を強調したくない場合は、Q値を1/√2にします。 Q値を大きくすることでカットオフ周波数でのGainの減少を抑えることができま すが、大きくしすぎるとカットオフ周波数付近が強調されてしまいます。
#MB:FILTER_S @fs=1 {
type=bq_hpf, freq=2000, q=1/(2^0.5),
}
この例では、
BiQuadのバンドパスフィルタ、カットオフ周波数=1000Hz、バンド幅=0.8 のフィルタを定義しています。 【解説】 BiQuadのバンドパスフィルタを定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_bpf, freq=[], bw=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 (カットオフ周波数は、通す帯域の中心となる周波数になります) 設定範囲は、40.0 〜 384000.0 です。 bw: フィルタのバンド幅を設定します。単位はオクターブです。 設定範囲は、0 より大きい値です。 バンド幅は、カットオフ周波数からどこまでの周波数幅を通すかを指定する数値 になります。(「通す」とは、出力信号が 0dB 〜 -3dB の範囲) 例えば、カットオフ周波数が440Hzで帯域幅が1オクターブなら、220Hz~880Hz で、2オクターブなら110Hz~1760Hzが通す周波数となります。
#MB:FILTER_S @fs=1 {
type=bq_bpf, freq=1000, bw=0.8,
}
この例では、
BiQuadのノッチフィルタ、カットオフ周波数=2000Hz、バンド幅=2.0 のフィルタを定義しています。 【解説】 BiQuadのノッチフィルタ(範囲非通過)を定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_notch, freq=[], bw=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 (カットオフ周波数は、通さない帯域の中心となる周波数になります) 設定範囲は、40.0 〜 384000.0 です。 bw: フィルタのバンド幅を設定します。単位はオクターブです。 設定範囲は、0 より大きい値です。 バンド幅は、カットオフ周波数からどこまでの周波数幅を通さないかを指定する 数値になります。(「通さない」とは、出力信号が 無音 〜 -3dB の範囲) 例えば、カットオフ周波数が440Hzで帯域幅が1オクターブなら、220Hz~880Hz で、2オクターブなら110Hz~1760Hzが通さない周波数となります。
#MB:FILTER_S @fs=1 {
type=bq_bpf, freq=2000, bw=2.0,
}
この例では、
BiQuadのオールパスフィルタ、カットオフ周波数=1800Hz、Q値=0.5 のフィルタを定義しています。 【解説】 BiQuadのオールパスフィルタを定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_apf, freq=[], q=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 設定範囲は、40.0 〜 384000.0 です。 q: フィルタのQ値を設定します。 設定範囲は、0 より大きい値です。
#MB:FILTER_S @fs=1 {
type=bq_apf, freq=1800, q=0.5,
}
この例では、
BiQuadのローシェルフフィルタ、
カットオフ周波数=500Hz、Q値=1/√2、利得=12dB のフィルタを定義しています。 【解説】 BiQuadのローシェルフフィルタ(低域増幅)を定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_lsf, freq=[], q=[], dB=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 (カットオフ周波数はそれ以下の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 カットオフ周波数は厳密には出力信号が指定した増幅量の半分となる周波数で、 増幅はカットオフ周波数より高い周波数から始まります。 q: フィルタのQ値を設定します。 設定範囲は、0 より大きい値です。 カットオフ周波数付近を強調したくない場合は、Q値を1/√2にします。 Q値を大きくすることで増幅のカーブを急にすることができますが、大きくしす ぎるとカットオフ周波数付近が強調されてしまいます。 dB: フィルタの利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
#MB:FILTER_S @fs=1 {
type=bq_lsf, freq=500, q=1/(2^0.5), dB=12,
}
この例では、
BiQuadのハイシェルフフィルタ、
カットオフ周波数=7000Hz、Q値=1/√2、利得=12dB のフィルタを定義しています。 【解説】 BiQuadのハイシェルフフィルタ(高域増幅)を定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_hsf, freq=[], q=[], dB=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 (カットオフ周波数はそれ以上の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 カットオフ周波数は厳密には出力信号が指定した増幅量の半分となる周波数で、 増幅はカットオフ周波数より低い周波数から始まります。 q: フィルタのQ値を設定します。 設定範囲は、0 より大きい値です。 カットオフ周波数付近を強調したくない場合は、Q値を1/√2にします。 Q値を大きくすることで増幅のカーブを急にすることができますが、大きくしす ぎるとカットオフ周波数付近が強調されてしまいます。 dB: フィルタの利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
#MB:FILTER_S @fs=1 {
type=bq_hsf, freq=7000, q=1/(2^0.5), dB=12,
}
この例では、
BiQuadのピーキングフィルタ、
カットオフ周波数=1000Hz、バンド幅=2.0、利得=12dB のフィルタを定義しています。 【解説】 BiQuadのピーキングフフィルタ(ピンポイント増幅)を定義します。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_peaking, freq=[], bw=[], dB=[],
}
freq: カットオフ周波数を設定します。単位は「Hz」です。 (カットオフ周波数は、増幅する帯域の中心となる周波数になります) 設定範囲は、40.0 〜 384000.0 です。 カットオフ周波数は厳密には出力信号が指定した増幅量の半分となる周波数で す。 bw: フィルタのバンド幅を設定します。単位はオクターブです。 設定範囲は、0 より大きい値です。 バンド幅は、カットオフ周波数からどこまでの周波数幅を増幅するかを指定する 数値になります。 例えば、カットオフ周波数が440Hzで帯域幅が1オクターブなら、220Hz~880Hz で、2オクターブなら110Hz~1760Hzが通す周波数となります。 dB: フィルタの利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
#MB:FILTER_S @fs=1 {
type=bq_peaking, freq=1000, bw=2.0, dB=12,
}
この例では、
BiQuadのローシェルフフィルタ、
カットオフ周波数=200Hz、Q値=1/√2、利得=12dB
BiQuadのローパスフィルタ、
カットオフ周波数=7500Hz、Q値=1/√2 のフィルタを定義しています。 【解説】 BiQuadのローシェルフとローパスを組み合わせたものです。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_lsflpf,
freq_lsf=[], q_lsf=[], dB_lsf=[],
freq_lpf=[], q_lpf=[],
}
freq_lsf: ローシェルフの低域カットオフ周波数を設定します。単位は「Hz」です。 (低域カットオフ周波数はそれ以下の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 q_lsf: ローシェルフの低域Q値を設定します。 設定範囲は、0 より大きい値です。 dB_lsf: ローシェルフの低域利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
#MB:FILTER_S @fs=1 {
type=bq_lsflpf,
freq_lsf=200, q_lsf=1/(2^0.5), dB_lsf=12, //low shelf
freq_lpf=7500, q_lpf=1/(2^0.5), //low pass
}
freq_lpf: ローパスのカットオフ周波数を設定します。単位は「Hz」です。 設定範囲は、40.0 〜 384000.0 です。 q_lpf: ローパスのQ値を設定します。 設定範囲は、0 より大きい値です。 カットオフ周波数付近を強調したくない場合は、Q値を1/√2にします。 Q値を大きくすることでカットオフ周波数でのGainの減少を抑えることができま すが、大きくしすぎるとカットオフ周波数付近が強調されてしまいます。 【備考】 このローシェルフとローパスの組み合わせが想定している利用シーンは、ローパ スフィルタが必要なPCM音源に対し、低音増強もさせたいような状況です。
この例では、
BiQuadのローシェルフフィルタ、
カットオフ周波数=200Hz、Q値=1/√2、利得=12dB
BiQuadのローパスフィルタ(2直列)、
カットオフ周波数=3000Hz のフィルタを定義しています。 【解説】 BiQuadのローシェルフとローパス(2直列)を組み合わせたものです。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_lsflpf2p,
freq_lsf=[], q_lsf=[], dB_lsf=[],
freq_lpf2p=[],
}
ローパスフィルタ(2直列)のQ値は、内部で自動定義されます。 このローパスフィルタでは、BiQuadのローパスを2回かけて、フィルタの次数を 上げる効果を得ています(通常-12dB/octのところ、-24dB/oct)。 Q値は2つあり、いずれも内部で最適なものが自動定義されるため、Q値の設定 項目はありません。最適なQ値とは、 Q1:0.5411961001461970; // 1 / (2 * sin(3π/8)) Q2:1.3065629648763766; // 1 / (2 * sin(π/8)) です。 freq_lsf: ローシェルフの低域カットオフ周波数を設定します。単位は「Hz」です。 (低域カットオフ周波数はそれ以下の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。
#MB:FILTER_S @fs=1 {
type=bq_lsflpf2p,
freq_lsf=200, q_lsf=1/(2^0.5), dB_lsf=12, //low shelf
freq_lpf2p=3000, //low pass
}
q_lsf: ローシェルフの低域Q値を設定します。 設定範囲は、0 より大きい値です。 dB_lsf: ローシェルフの低域利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。 freq_lpf2p: ローパス(2直列)のカットオフ周波数を設定します。単位は「Hz」です。 設定範囲は、40.0 〜 384000.0 です。 【備考】 このローシェルフとローパス(2直列)の組み合わせが想定している利用シーン は、ローパスフィルタが必要なPCM音源に対し、低音増強もさせたいような状 況です。
この例では、
BiQuadの2バンドイコライザ、
低域カットオフ周波数= 250Hz、低域Q値=1/√2、低域利得=12dB、
高域カットオフ周波数=7500Hz、高域Q値=1/√2、高域利得=12dB のフィルタを定義しています。 【解説】 BiQuadの2バンドイコライザを定義します。 2バンドイコライザは、ローシェルフとハイシェルフを組み合わせたものです。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_eq2band,
freq_l=[], q_l=[], dB_l=[],
freq_h=[], q_h=[], dB_h=[],
}
freq_l: 低域カットオフ周波数を設定します。単位は「Hz」です。 (低域カットオフ周波数はそれ以下の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 q_l: 低域Q値を設定します。 設定範囲は、0 より大きい値です。 dB_l: 低域利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
#MB:FILTER_S @fs=1 {
type=bq_eq2band,
freq_l=250, q_l=1/(2^0.5), dB_l=12, //low shelf
freq_h=7500, q_h=1/(2^0.5), dB_h=12, //high shelf
}
freq_h: 高域カットオフ周波数を設定します。単位は「Hz」です。 (高域カットオフ周波数はそれ以上の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 q_h: 高域Q値を設定します。 設定範囲は、0 より大きい値です。 dB_h: 高域利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
この例では、
BiQuadの3バンドイコライザ、
低域カットオフ周波数= 200Hz、低域Q値=1/√2、低域利得=12dB、
中域カットオフ周波数=1000Hz、中域バンド幅=1/√2、中域利得=6dB、
高域カットオフ周波数=8000Hz、高域Q値=1/√2、高域利得=12dB のフィルタを定義しています。 【解説】 BiQuadの3バンドイコライザを定義します。 3バンドイコライザは、ローシェルフ、ピーキング、ハイシェルフを組み合わせ たものです。 フォーマットは次の通りです。
#MB:FILTER_S @fs=1 {
type=bq_eq2band,
freq_l=[], q_l=[], dB_l=[],
freq_m=[], bw_m=[], dB_m=[],
freq_h=[], q_h=[], dB_h=[],
}
freq_l: 低域カットオフ周波数を設定します。単位は「Hz」です。 (低域カットオフ周波数はそれ以下の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 q_l: 低域Q値を設定します。 設定範囲は、0 より大きい値です。 dB_l: 低域利得を設定します。単位は「dB」です。
#MB:FILTER_S @fs=1 {
type=bq_eq3band,
freq_l=200, q_l=1/(2^0.5), dB_l=12, //low shelf
freq_m=1000, bw_m=1/(2^0.5), dB_m=6, //peaking
freq_h=8000, q_h=1/(2^0.5), dB_h=12, //high shelf
}
設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。 freq_m: 中域カットオフ周波数を設定します。単位は「Hz」です。 (中域カットオフ周波数は、増幅する帯域の中心となる周波数になります) 設定範囲は、40.0 〜 384000.0 です。 bw_m: 中域バンド幅を設定します。単位はオクターブです。 設定範囲は、0 より大きい値です。 dB_m: 中域利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。 freq_h: 高域カットオフ周波数を設定します。単位は「Hz」です。 (高域カットオフ周波数はそれ以上の周波数を増幅する周波数になります) 設定範囲は、40.0 〜 384000.0 です。 q_h: 高域Q値を設定します。 設定範囲は、0 より大きい値です。 dB_h: 高域利得を設定します。単位は「dB」です。 設定範囲は、-18.0 〜 18.0 です。 負数を指定すると、増幅ではなく、減衰させる機能になります。
この例では、
フィルタ無効 を定義しています。 【解説】 フィルタ無効を定義します。(通常は使用しません) フォーマットは次の通りです。(引数はありません)
#MB:FILTER_S @fs=1 {
type=off,
}
#MB:FILTER_S @fs=1 {
type=off,
}