ダイナミクスコントロール
ダイナミクスコントロールは、マスターにどれだけ動きを残すかを決めるパートです。デモではコンプレッサーの段とクイックマスターの Dynamics マクロに反映されます。
スレッショルド、レシオ、アタック、リリース、ニーの 5 つは、まとめて判断して初めて意味のある設定になります。
5 つをまとめて、耳で判断する
1 つを変えると他のふるまいも変わるので、各つまみ単体ではなく結果で判断します。必ずラウドネスマッチした A/B 比較 で確認してください。大きくなったから「良く」聞こえるだけのコンプレッションは、実際には改善ではありません。
各パラメータの役割
コンプレッサーは信号のレベルを監視し、決めた点を超えているあいだだけ音量を下げます。その下げ方を 5 つのコントロールで決めます。
- スレッショルドは、コンプレッションが始まるレベル(dBFS)です。これより下では何もしません。
- レシオは、スレッショルドを超えたレベルがどれだけ上がってよいかを決めます。4:1 なら、入力がスレッショルドを 4 dB 超えても、出力は 1 dB しか超えません。
- アタックは、レベルがスレッショルドを超えたときにゲインが下がる速さです。リリースは、レベルが戻ったときにゲインが回復する速さです。どちらの時間も時定数 1 つ分で、設定した時間のあいだにゲインは目標に向かう動きのおよそ 63% を進み、全部は進みません。
- ニーは、スレッショルドでいきなりかかる(ハードニー)か、その前後数 dB でなめらかにかかる(ソフトニー)かを決めます。
コンプレッサーがその時点で下げている量をゲインリダクション(GR、dB 単位)と呼びます。コンプレッションは音量を下げる方向にしか働かないため、多くの場合、後段で一定のメイクアップゲインを足して平均レベルを戻します。
ハードニーでスレッショルドを −20 dBFS にした場合、静的な特性は次のとおりです。
| 入力レベル | スレッショルド超過分 | 2:1 の出力(GR) | 4:1 の出力(GR) | ∞:1 の出力(GR) |
|---|---|---|---|---|
| −26 dBFS | — | −26(0 dB) | −26(0 dB) | −26(0 dB) |
| −16 dBFS | 4 dB | −18(2 dB) | −19(3 dB) | −20(4 dB) |
| −12 dBFS | 8 dB | −16(4 dB) | −18(6 dB) | −20(8 dB) |
| −8 dBFS | 12 dB | −14(6 dB) | −17(9 dB) | −20(12 dB) |
コンプレッサーとリミッターの違い
リミッターは、コンプレッサーを極端にしたものです。レシオは事実上無限大(上の表の ∞:1 の列)で、アタックはごく速く、ピークが届く前に動けるよう通常はルックアヘッドを持ちます。役割も違います。コンプレッサーはレベルの動きと聞こえ方を整え、リミッターはチェーンの最後でピークがシーリングを越えないことだけを保証します。マスタリングでは、コンプレッサーが曲全体に穏やかにかかり、残ったピークを True Peak リミッターが受け止めます。
| コントロール | 聴くポイント |
|---|---|
| スレッショルド | 曲のどの範囲がコンプレッションに入っているか。 |
| レシオ | 大きい部分がどれだけ密に/押さえつけられて感じるか。 |
| アタック | ドラムや子音の先端が残っているか。 |
| リリース | 呼吸が自然か、ポンピング感が出ていないか。 |
| ニー | 急に掴むか、なめらかに入るか。 |
実用的な流れ
- 穏やかなレシオ(ミックス全体なら 1.5:1〜2:1 程度)とソフトニーから始める。
- 大きいセクションで自然なゲインリダクションが出るまで、スレッショルドを下げていく。マスターではピークで 1〜3 dB 程度が目安。
- トランジェント(ドラムの打点や子音の先端に出る、短いレベルの立ち上がり)が制御されつつ潰れないアタックに合わせる。10〜30 ms 前後なら打点の先端が通り、それより短いと鈍くなる。
- グルーヴに合うリリースで戻るようにする。多くは 100〜300 ms のあいだ。短すぎるとレベルが細かく揺れ、長すぎると打点のあいだで回復しきらない。
- ラウドネスマッチした A/B で、コンプレッションが本当に改善になっているか確認する。
パラレルコンプレッション
コンプレッションは「全か無か」ではありません。パラレル(「ニューヨーク」)コンプレッションは、強く潰したコピーを、手を加えていないドライ信号の下に混ぜます。ドライのコピーがトランジェントとパンチを保ち、潰したコピーが厚み(ボディ)を加えて静かなディテールを持ち上げます。ブレンドのコントロールが、潰したコピーをどれだけ混ぜるかを決めます。100% ではコンプレッサーだけが聞こえ、下げるほどドライのダイナミクスが戻ってきます。
マルチバンドコンプレッション
ここまでのコンプレッサーは信号全体を一度にまとめて処理します。libsonare のマスタリングチェーンは、信号を複数の周波数帯域に分割し、それぞれを独立してコンプレッションするマルチバンドコンプレッサーも備えています。低域だけがボワつく、高域だけが刺さるといった、特定の帯域だけが問題を起こしているときに、ミックス全体を潰さずに対処できます。
バンド数を選ぶ
WASM、Node、Python では、dynamics.multibandComp.crossover と、バンドごとの独立したコンプレッサー設定を並べる bands 配列を使い、2〜64 バンドを設定できます。C ABI は dynamics.multibandComp.bands.<i>.<field> や dynamics.multibandComp.crossover.cutoffsHz.<i> のようなインデックス付きのフラットなキーで同じ設定を表します。1 バンドは拒否されます。low/mid/high の固定キーは 3 バンドの簡易記法として使えます。JSON のチェーン文書では、構造化形式にスキーマバージョン 2、簡易記法にバージョン 1 を使います。フィールドは MasteringChainConfig、チェーンのパラメータはマスタリングプロセッサを参照してください。
帯域の分け方と、各クロスオーバーモードがカットオフ付近でどう振る舞うかはクロスオーバーにあります。
libsonare での扱い
Studio モードではスレッショルド、レシオ、アタック、リリースを直接調整できます。ニーはコンプレッサーモデルとプリセット設計に組み込まれていますが、ブラウザ UI の直接のコントロールには含めていません。
実装メモ
libsonare は検出レベルを dB で評価し、スレッショルドと比較します。ステレオ検出はリンクされており、全チャンネルから 1 つの検出レベルを作り、その同じゲインを全チャンネルへ適用します。これにより、ステレオイメージが左右に引っ張られにくくなります。リンクの取り方は検出器によって異なります。ピークはその時刻で大きい方のチャンネルを使い、RMS 系はチャンネル間の平均パワーを使うため、左右が逆相の成分でも検出レベルが潰れません。
ハードニーの静特性カーブは、概念的には次の形になります。
over_db = input_db - threshold_db
gain_reduction_db = over_db * (1 - 1 / ratio)ソフトニーは、スレッショルド付近の急峻なコーナーを 2 次関数でなめらかにつなぎ替えます。その後、アタックとリリースが目標リダクション値を時間方向にスムージングしてゲインエンベロープを生成します。検出器は入力レベルを複数の方式で測れます。ピーク(瞬間最大値で、最も速く反応する)、RMS(10 ms の短い移動平均で、体感ラウドネスに近い)、logRms で選ぶ遅い RMS(名前に反して既定と同じ線形 RMS 平均で、50 ms の長い窓で取るため、持続レベルを推定し、短いトランジェントを無視する)です。既定は RMS です。どれを使うかで、コンプレッサーの反応の鋭さが変わります。なお、この検出器のスムージング時定数とアタック/リリースのエンベロープ時定数は別物として設計されています。
オートメイクアップは測定値ではなく開ループの推定値です。ブロックごとにスレッショルドとレシオから 0.5 × max(0, -thresholdDb) × (1 - 1/ratio) dB を計算します。負のスレッショルドとハードニーを仮定すると、これは検出レベル 0 dBFS での理論上のリダクション量の半分です。スレッショルドちょうどの信号には、ハードニーで補うべきリダクションはありません。半分という係数は、時間とともにレベルが変わる素材を持ち上げすぎないためのものです。オートメイクアップと手動メイクアップは排他で、makeupGainDb に 0 以外を指定すると自動計算値は加算されずに上書きされます。最終的なラウドネスは後段のラウドネスオプティマイザーで調整します。