WEB Guitar AMP API design NOTE
ギターアンプの音作り(ディストーション・サウンド:歪み重視)
2021/04/14:初稿
2021/04/19:更新
2021/04/21:フィルタ説明更新
2023/03/04:コメント追記
工事中:我想日々更新!!
Web Audio APIのフィルター特性を確認
Web Audio API "createBiquadFilter()"の各設定と周波数特性の調査
Web Audio APIで1次フィルタを作ってみた
BiquadFilterは全て2次なので,1次フィルタをIIRで作ってみる
フィルター
WEB Audio APIではcreateBiquadFilter()によってフィルターを作り特性を自由に設定できます。 このフィルターを駆使しして音作りしていくわけですが,まずはこれらのフィルターとイコライザーの特性を知っておく必要があります。
2次のフィルタですのでギターアンプの回路特性をそのまま再現することはできませんが,効きが良いのでフィルター効果を実感しやすいです。
こちらでフィルター特性をグリグリ可変して可視化できます。 覚えやすいように各フィルターのパラメータ設定をまとめておきます。
以下「frequency」は1000Hz(1kHz)に統一して表示しています。
LPF(Low Pass Filter)/HFP(High Pass Filter)
Type : Low Pass Filter, Q:-3, 1000Hz
Type : Low Pass Filter, Q:+6, 1000Hz
LPFの特性のみ示します。HPFは左右反転した特性になります。
フィルターのスロープは12dB/octの2次フィルタです。
「Q」パラメータは周波数「frequency」におけるゲイン[dB]を示しています。
常識的設定範囲は「±18」くらい。「-18」に設定すると1次フィルタに近い切れ味になるという発見がありましたがIIRで1次フィルタを作れることが分かったのでこのネタはお蔵入り。
HPF/LPFでは「gain」パラメータが無視されます。
Shelf Filter(Shelving EQ)
Type : High Shelf Filter(Shelving EQ), gain:+12dB, 1000Hz
"Shelf"は"棚"のことです。最大傾斜12dB/octの2次フィルタです。High Shelf/Low Shelfがあります。 「frequency」を基準としてHigh Shelfは高域側をブースト/カットし,Low Shelfは低域をブースト/カットします。
「frequency」は変化する"棚"の中心部分の周波数に設定されています。
「gain」+12dBの場合,High Shelfならば「frequency」の-1oct(1/2)の周波数からターン・オーバーします。 「frequency」で+12dBの半分の+6dBになります。そして+1oct(2.0)の周波数でゲイン変化が停止して"棚"を形成します。 Low Shelfならば左右反転した特性となります。
常識的設定範囲は「±24」くらいですが設定可能範囲はもっと広いです。
Shelf Filterでは「Q」パラメータが無視されます。
Peaking EQ(Parametric EQ, Graphic EQ)
Type : Peaking EQ, Q:0.667, gain:+12dB, 1000Hz
ピーキング・イコライザは特定の周波数を狙い撃ちしてブースト/カットできます。 周波数可変のピーキング・イコライザはパラメトリック・イコライザと呼ばれます。 周波数を固定にしたピーキング・イコライザを沢山並べるとグラフィック・イコライザを構築できます。
「frequency」で周波数を設定し「gain」でピーク・ゲインを設定します。ブーストしてピークを作ったり,カットして谷(ディップ)を作ることもできます。
「Q」はピーク・ゲイン1/2におけるBW(Band Width)を示します。Q = 0.667でBW = 1.0[oct]という関係があります。(詳細は後述) グラフの例はQ=0.667,ピーク・ゲイン+12dBですが,±1oct(周波数倍/半分)のポイントでゲインが半分の+6dBとなります。
Notch Filter
Type : Notch Filter, Q:0.667, 1000Hz
ノッチフィルターは「frequency」を中心とする周波数を鋭くカットする特性です。ブーストはできません。 特定周波数のノイズ除去に効果的です。
−3dBポイントに着目するとQ = 0.667で±1octに設定されます。
Notch Filterでは「gain」パラメータが無視されます。
Band Pass Filter
Type : Band Pass Filter, Q:0.667, 1000Hz
「frequency」を中心とする周波数帯域のみを通過させるフィルターです。
−3dBポイントに着目するとQ = 0.667で±1octに設定されます。
Band Pass Filterでは「gain」パラメータが無視されます。
「Q」と「BW」の関係
WEB Audio APIのcreateBiquadFilter()における「Q」と「BW」の関係を説明します。
式(1)はBPF/Notch/Peak各Filterで重要となる「Q」の定義です。
f0はフィルター中心周波数,fH,fLはBPF/Notch両Filterでは−3dB周波数,Peak Filterではゲイン1/2周波数になります。
式(2)(3)で示す通り,BW(バンド幅:Band Width)はオクターブ([oct])単位で定義します。 周波数[Hz]に換算すると,中心周波数f0[Hz]に対して+1.0[oct]は2倍の周波数,-1.0[oct]は1/2倍の周波数となります。
式(4)は周波数の高い側と低い側の両側を考慮したBWの定義です。 デジタルフィルタの場合はBWH=BWLとなるようですので, 式(4)はBW=BWH=BWLと書き換えることができ,3者を区別する必要がなくなります。
式(5)(6)は式(2)(3)を変換すると得られます。2を底とする対数を2を基数とする指数に変換しています。
式(7)は式(1)へ式(5)(6)を代入して導出されます。BW=1.0の時,Q=0.666...となります。
式(8)は式(7)から「2次関数の解の公式」と「対数と指数は逆関数という関係」を使って導出しました。高校数学の範疇ですがグーグル先生無しではどうにも・・・
Type : Band Pass Filter, Q:0.667, 1000Hz
このQ設定だと、1oct上(2000Hz)と1oct下(500Hz)で-3dBとなります。
こちらでフィルター特性をグリグリ可変して可視化できます のでインタラクティブに動かしてみると分かりやすいと思います。
式(7)と式(8)を覚えれるか何かで計算させればよいのですが毎回計算するのは面倒なのでチャートにしてみました。
Q - BW Chart1
式(7)よりBWをベースとしたチャートを作ってみました。BW=1.0は1オクターブなのでfHは周波数2倍,BW=0.5は0.5オクターブなのでfHは√2倍となり偶然ですがQと一致します。 fH周波数N[倍]=2^BWという計算です。
使い方の例ですが,片側バンド幅1[oct]のBPFを作りたい場合は,Q=0.667を設定すればよいです。 1オクターブの範囲の周波数を通過させるフィルターならば片側バンド幅は0.5[oct]になりますので,Q=1.414を設定すればよいです。
Q - BW Chart2
式(8)よりQをベースとしたチャートを作ってみました。Q=0.1,BW=3.3のfHは約10倍の周波数になります。 Q=4.0ではf0+13.3%の周波数がfHになります。
繰り返しですが,fH周波数N[倍]=2^BWという計算です。
もし,半音階単位で考えたいなら,BW*12します。 Q=4.0では0.180 * 12 = 2.16なので全音+αです。 ピアノなら黒鍵を挟んだ白鍵同士+α,ギターのフレットで言うと2フレット+αの周波数変化になります。
数式は苦手なんですけど,どこにも書いてなかったので頑張りました。。
IIR1次(1st order)LPF/HPF
Type : LPF/HPF
createIIRFilter()で作った1次フィルターの特性を示します。最大傾斜は-6dB/octになります。
グレーの線は位相です。「frequency」周波数で45度の位相回転となり,最大で90度の位相回転となります。 2次フィルターは最大で180度の位相回転となりますので並列接続する逆相接続としますが,1次フィルタは正相接続可能です。
最もシンプルなIIRフィルタなので切れが悪くフィルター効果としては弱いですが,アナログ回路と同等の素直な特性が持ち味です。 「like Fender」の3-Band分割フィルタで使用しています。
Pre-EQ,Post-EQの使いこなし組み合わせ
ディストーション(歪み)を生み出すクリッピング回路(クリッパー)とフィルターを組み合わせて欲しいトーンを作り込むためのコツやノウハウを説明したいです。
周波数特性(トーン)いじるEQが歪みの手前なのか,それとも後なのか。「プリイコかポスイコ」これがとても重要です。 以下のコンテンツはこれを念頭に作られています。
「WEB AMP like boogie」の接続説明
フェンダー型プリイコと5-Band EQによるポスイコを駆使してブギータイプのディストーション・トーンを作ります。
INPUT GAIN | gain=0.5 | コメント未記入 |
HPF | frq=40Hz,Q=-3 | 真空管アンプは各増幅段にHPFが入ります。歪ませたときに暴れた感じになり弾きずらいので必ずHPFを入れます。6弦解放(約80Hz)の1oct下に設定しています。 |
BASS:LowShelf | frq=160Hz | プリイコライザのベース・コントロールです。プリイコライザでは低域を上げるのはよろしくなく、下げたほうが良いです。160Hzは5弦7フレットです。一般的に迫力ある低音というとこのあたりの周波数になります。 |
MID:Peaking | frq=284Hz,Q=1.5 | プリイコライザのミドル・コントロールです。フェンダータイプのトーンコントロールはミドルがカットされ、すっきりした音になります。周波数はフェンダーのトーンコントロール回路に合わせてあります。幅広くコントロールしたいのでQは低めに設定しています。 |
TREBLE:HighShelf | frq=1.2kHz | プリイコライザのトレブル・コントロールです。上げるとジャキジャキした感じに、下げるとモコっとした感じになります。 |
HPF | frq=320Hz,Q=-3 | 歪みの手前で低域をバッサリと切ります。深い歪を作る際のコツです。 |
DIST | *1 | 一旦ここで歪ませます。歪み1段だとショボいので2段にしています。実際の真空管回路も何段もの歪みステージがあり、少しずつトーン調整していきます。 |
LPF | frq=4kHz,Q=-3 | 高域を出しっぱなしにするとザラザラとうるさくなるので歪みの間にLPFを入れます。 |
HPF | frq=160Hz,Q=-3 | もう一度HPFをかまします。カットオフは前段ほど高く、後段ほど低くした方がまとまりが出ます。 |
DIST | *1 | 歪ませます。最後の歪み段出口にはLPFは不要です。 |
OUTPUT VOL | gain=0.2 to 1.0 | ポストイコライザでのクリッピングを防ぐためにボリュームは手前に入れます。 |
GEQ1:Peaking | frq=100Hz,Q=1.5 | メサブギーの5BandEQの数字に合わせています。ズンズンくるローを制御します。スマホスピーカーだと再生できません。 |
GEQ2:Peaking | frq=360Hz,Q=2.0 | ローミッドの帯域になります。下げるとスッキリします。 |
GEQ3:Peaking | frq=720Hz,Q=2.0 | ハイミッドの帯域です。下げることでドンシャリなスクープサウンドとなります。 |
GEQ4:Peaking | frq=1.6kHz,Q=1.1 | ピッキングニュアンスを決める帯域です。ガキっとか、ジャキっとしたところが変化します。 |
GEQ5:Peaking | frq=4.8kHz,Q=1.2 | ハイです。耳に痛い音を調節します。上げればジャリジャリ、下げればモコモコです。 |
Speaker SIM | *2 | 簡易的なスピーカー・シミュレータですが、説明は別途。 |
「WEB AMP like Marshall」の説明
2ボリュームによるプリイコとフェンダー型ポスイコを駆使してマーシャルタイプのディストーション・トーンを作ります。
INPUT | ノーマル・インプット(LOUDNESS1)です。 | |
HPF | frq=80Hz,Q=-3 | メサブギより少しカットオフを上げています。 |
LPF | frq=3.2kHz,Q=-3 | ノーマルインプットは少し音を丸めておきます。 |
LOUDNESS 1 | gain=0 to 1.0 | 中低域を中心としてゲインを決めます。 |
MIX | LOUDNESS1と2を混ぜます。 |
INPUT | ブライト・インプット(LOUDNESS2)です。 | |
HPF | frq=640Hz,Q=-3 | 深く歪ませるときはHPFのカットオフ周波数を高くして大胆に低域を切った方が扱いやすくなります。 |
LOUDNESS 2 | gain=0 to 1.0 | 高域のゲインを決めます。 |
MIX | LOUDNESS 1と2を混ぜます。 |
MIX | 混ざった音がここに入ります。 | |
HPF | frq=160Hz,Q=-3 | 歪み手前のHPFです。真空管アンプらしくするために毎回入れます。 |
DIST | *1 | 歪ませます。 |
LPF | frq=4kHz,Q=-3 | メサブギと同様です。 |
HPF | frq=40Hz,Q=-3 | ひずみ手前のLPFです。ローゲインで迫力が出るように少し低めにしています。 |
DIST | *1 | 歪ませます。 |
BASS:LowShelf | frq=240Hz | フェンダー・ベースマンタイプのトーンコントロールです。迫力が出るようにカットオフ周波数を高めにしています。 |
MID:Peaking | frq=500Hz,Q=1.5 | ベースマンタイプなので周波数を高めにしています。 |
TREBLE:HighShelf | frq=1.6kHz | ポストイコライザでトレブルを調整するのでやや高めに設定しています。そういえばプレゼンスの設定が無いですね。 |
OUTPUT VOL | gain=0.2 to 1.0 | 最終的なボリュームを決めます。 |
Speaker SIM | *2 | 簡易的なスピーカー・シミュレータですが、説明は別途。 |
「WEB AMP like Fender」の説明
フェンダー型のプリイコと3-Band Splitted Clipper(3帯域分割クリッパー)を駆使してフェンダータイプのオーバードライブ・トーンを作ります。自己採点50点。改善必要。
INPUT GAIN | gain=0.5 | コメント未記入 |
HPF | frq=40Hz,Q=-3 | コメント未記入 |
BASS:LowShelf | frq=160Hz | コメント未記入 |
MID:Peaking | frq=284Hz,Q=1.5 | コメント未記入 |
TREBLE:HighShelf | frq=1.2kHz | コメント未記入 |
Split | High/Middle/Low 3 band | コメント未記入 |
Split | High frq | コメント未記入 |
HPF | frq=780Hz,IIR*3 | コメント未記入 |
DIST | *1 | コメント未記入 |
EDGE | gain=1.0 | コメント未記入 |
MIX | コメント未記入 |
Split | Middle frq | コメント未記入 |
HPF | frq=320Hz,IIR*3 | コメント未記入 |
DIST | *1 | コメント未記入 |
LPF | frq=780Hz,IIR*3 | コメント未記入 |
BODY | gain=1.0 | コメント未記入 |
MIX | コメント未記入 |
Split | Low frq | コメント未記入 |
DIST | *1 | コメント未記入 |
LPF | frq=320Hz,IIR*3 | コメント未記入 |
BOTTOM | gain=1.0 | コメント未記入 |
MIX | コメント未記入 |
MIX | コメント未記入 | |
SELECT | 3 Type of speaker | コメント未記入 |
15inch:Peaking | frq=60Hz,Q=1.0,gain=12dB | f0の低い大口径スピーカーをオープンバック使う感覚で低域をブーストしています。ローエンドがバシバシくる感じを出しています。 |
12inch:Peaking | frq=80Hz,Q=1.0,gain=10dB | 一般的な12インチです。6弦解放80Hzを狙ってブーストしています。 |
10inch:Peaking | frq=120Hz,Q=1.0,gain=9dB | 小型コンボアンプに使われる10インチです。モコっとした部分をブーストしています。 |
TILT:HighShelf | frq=3.2kHz | アンプを傾けてよく聞こえるようにした場合、このあたりの帯域が耳に付くようになります。 |
OUTPUT VOL | gain=0.2 to 1.0 | コメント未記入 |
Speaker SIM | *2 | コメント未記入 |
*1:ディストーション(DIST)の説明
ディストーションやオーバードライブを作り出すクリッパーについて説明します。
エフェクターではダイオード・クリッパが一般的です。 ダイオードを2本使えば上下対称のクリップ回路になります。上下非対称特性を作り出すことも容易です。 歪み系エフェクターのクリッパーは非常にマニアックでディープな沼がありますので足を取られると危険です。
真空管アンプは真空管のサチュレーション(飽和)によって信号がクリップします。 基本的に上下非対称のクリップとなりますが,バランスの取れたプッシュプル回路は上下対象になります。 真空管を飽和させるとクリップだけでなく,ゲインコンプレッションやサグといった副次的な効果が発生するので,単純なダイオード・クリッパでは再現できない質感となります。 エンベロープ変化の感触を再現するのはなかなか難しく,ヘッドフォーンやイヤホンではなくて実際に大音量で演奏してみる必要があると思います。 WEB AMPでは低遅延での演奏ができないので感触の作り込みが難しく課題になっています。
指数関数タイプの上下対象クリッピング関数
ポスイコでブーストするので振幅制限を±0.4としています。
*2:Speaker SIMの説明
ギター用スピーカーにも色々と種類があり,個性があります。 MarshallやMESA Boggieでよく使われるCELESTIONとFenderでよく使われるEMINENCEやJENSENがメジャーブランドでしょう。 ギター用スピーカーの特徴は高能率でハイパワーであることです。そして音質は高域の明るいメリハリのあるトーンです。 具体的には3kHz〜4kHzにピークを持つ特性が多く,この帯域は聴感上も非常に敏感な帯域なので個性が出やすいと感じます。
WEB AMPはスピーカーではなくアンプを主眼に考えているので,自己主張しない程度に耳障りな帯域をカットする特性としてます。 味付けとしてちょっぴりピークを持たせている一方で耳障りな帯域をざっくりとカットするためにノッチ・フィルターを使用しています。
LPF | frq=3.2kHz,Q=6 |
Notch | frq=8kHz,Q=1 |
フェンダー用のフィルターはJENSENを意識してよりパリッとした音質とすべく,ピーク周波数を4kHzとした。
LPF | frq=4kHz,Q=6 |
Notch | frq=8kHz,Q=1 |
実際はマイクの種類,マイキングの角度,位置でトーンが大きく変化します。オフマイクでは部屋の鳴りも無視できません。 ライブ演奏ではアンプの設置方法とプレイヤーの立ち位置が非常に重要です。 こうした要素は全てポストイコライザー要素となりますのでトーンへの影響は大きいです。