ダイナミクスコントロール
ダイナミクスコントロールは、マスターにどれだけ動きを残すかを決めるパートです。デモではコンプレッサーの段とクイックマスターの Dynamics マクロに反映されます。
スレッショルド、レシオ、アタック、リリース、ニーの 5 つは、まとめて判断して初めて意味のある設定になります。
5 つをまとめて、耳で判断する
1 つを変えると他のふるまいも変わるので、各つまみ単体ではなく結果で判断します。必ずラウドネスマッチした A/B 比較 で確認してください。大きくなったから「良く」聞こえるだけのコンプレッションは、実際には改善ではありません。
各パラメータの役割
コンプレッサーは信号のレベルを監視し、決めた点を超えているあいだだけ音量を下げます。その下げ方を 5 つのコントロールで決めます。
- スレッショルドは、コンプレッションが始まるレベル(dBFS)です。これより下では何もしません。
- レシオは、スレッショルドを超えたレベルがどれだけ上がってよいかを決めます。4:1 なら、入力がスレッショルドを 4 dB 超えても、出力は 1 dB しか超えません。
- アタックは、レベルがスレッショルドを超えたときにゲインが下がる速さです。リリースは、レベルが戻ったときにゲインが回復する速さです。どちらの時間も時定数 1 つ分で、設定した時間のあいだにゲインは目標に向かう動きのおよそ 63% を進み、全部は進みません。
- ニーは、スレッショルドでいきなりかかる(ハードニー)か、その前後数 dB でなめらかにかかる(ソフトニー)かを決めます。
コンプレッサーがその時点で下げている量をゲインリダクション(GR、dB 単位)と呼びます。コンプレッションは音量を下げる方向にしか働かないため、多くの場合、後段で一定のメイクアップゲインを足して平均レベルを戻します。
下の図は、大きな箇所が 1 つ来たときのゲインリダクションを追ったもので、レベルが変わった時点から時定数 1 つ分の位置に印を付けています。
- 入力レベル
- ゲインリダクション
- スレッショルド
ハードニーでスレッショルドを −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 のマスタリングチェーンは、信号を複数の周波数帯域に分割し、それぞれを独立してコンプレッションするマルチバンドコンプレッサーも備えています。低域だけがボワつく、高域だけが刺さるといった、特定の帯域だけが問題を起こしているときに、ミックス全体を潰さずに対処できます。
バンド数を選ぶ
チェーンは 2〜64 バンドに対応し、バンドごとに独立したコンプレッサー設定を持てます。1 バンドは通常のコンプレッサーと同じです。フィールドは MasteringChainConfig、チェーンのパラメータはマスタリングプロセッサを参照してください。
帯域の分け方と、各クロスオーバーモードがカットオフ付近でどう振る舞うかはクロスオーバーにあります。
サイドチェインとダッキング
コンプレッサーは通常、自分が下げる対象の信号を聞いて動きます。サイドチェインは、これを別の信号、つまりキーに聞かせる仕組みです。キーは「いつ、どれだけ下げるか」を決めるだけで、それ自体は聞こえません。
典型的な使い方がダッキングです。ナレーターが話し始めると、下に敷いた音楽ベッドが数 dB 下がり、話の合間にまた戻ってきます。声がキー、音楽が下げられる側の信号です。スレッショルド −24 dBFS、レシオ 4:1 のとき、ピークが −12 dBFS の声はスレッショルドを 12 dB 超えるので、ベッドは 9 dB 下がります(上の表と同じ計算です)。ただし rangeDb(既定 18 dB)が下げ幅の上限になります。
- アタックは、ベッドがどれだけ速く引くかを決めます。遅すぎると、最初の音節が大きな音楽の上に重なってしまいます。
- リリースは、ベッドがどれだけ速く戻るかを決めます。短すぎると、言葉の合間ごとにベッドが急に戻り、耳に聞こえるポンピングになります。長めにすると、文の間ずっとベッドを下げたままにできます。
- サイドチェインフィルター(
sidechainHpfEnabled、sidechainHpfHz)はキーにハイパスをかけ、低域のこもりや破裂音でダッキングが誤って動くのを防ぎます。
libsonare では次のように扱います。
dynamics.sidechainRouterとdynamics.duckingProcessorがダッキング用のプロセッサで、thresholdDb、ratio、attackMs、releaseMs、rangeDbを持ちます。ルーターには上記のキーフィルターもあります。パラメータの一覧はマスタリングプロセッサを参照してください。- ミキサーのシーンでは、インサートが
sidechainKeyでキーにするストリップを指定します。組み込みのcommentaryDuckingシーンは、music-bedのdynamics.sidechainRouterをhostでキーにしています。詳しくはミキシングシーン JSONを参照してください。 - ライブエンジンでは、
setLaneSidechain(trackId, insertIndex, sourceTrackId)が、あるレーンのインサートを別のレーンでキーにします(ソースに0を渡すと解除)。バスとマスターのインサートにはsetBusSidechainとsetMasterSidechainがあります。canSetLaneSidechainなどは、バインドが受け付けられるかをselfKeyやcycleといった理由つきで返します。関係するストリップとバスはミキシングエンジンを参照してください。
下のデモで、声が音楽ベッドをダッキングする様子と、リリースを短くしたときの変化を聴けます。
libsonare での扱い
Studio モードではスレッショルド、レシオ、アタック、リリースを直接調整できます。ニーはコンプレッサーモデルとプリセット設計に組み込まれていますが、ブラウザ UI の直接のコントロールには含めていません。
実装メモ
libsonare は検出レベルを dB で評価し、スレッショルドと比較します。ステレオ検出はリンクされており、全チャンネルから 1 つの検出レベルを作り、その同じゲインを全チャンネルへ適用します。これにより、ステレオイメージが左右に引っ張られにくくなります。リンクの取り方は検出器によって異なります。ピークはその時刻で大きい方のチャンネルを使い、RMS 系はチャンネル間の平均パワーを使うため、左右が逆相の成分でも検出レベルが潰れません。
ハードニーの静特性カーブは、概念的には次の形になります。
over_db = input_db - threshold_db
gain_reduction_db = over_db * (1 - 1 / ratio)ソフトニーは、スレッショルド付近の急峻なコーナーを 2 次関数でなめらかにつなぎ替えます。その後、アタックとリリースが目標リダクション値を時間方向にスムージングしてゲインエンベロープを生成します。検出器は入力レベルを次の 3 つの方式のどれかで測ります。
| 検出器 | 窓 | ふるまい |
|---|---|---|
peak | 瞬間値 | 最も速く反応します。 |
rms(既定) | 10 ms の移動平均 | 体感ラウドネスに近くなります。 |
logRms | 50 ms | 名前に反して線形の RMS 平均ですが、窓が長いので持続レベルに追従し、短いトランジェントを無視します。 |
どれを使うかで、コンプレッサーの反応の鋭さが変わります。なお、この検出器のスムージング時定数とアタック/リリースのエンベロープ時定数は別物として設計されています。
オートメイクアップは測定値ではなく開ループの推定値です。ブロックごとにスレッショルドとレシオから 0.5 × max(0, -thresholdDb) × (1 - 1/ratio) dB を計算します。負のスレッショルドとハードニーを仮定すると、これは検出レベル 0 dBFS での理論上のリダクション量の半分です。スレッショルドちょうどの信号には、ハードニーで補うべきリダクションはありません。半分という係数は、時間とともにレベルが変わる素材を持ち上げすぎないためのものです。オートメイクアップと手動メイクアップは排他で、makeupGainDb に 0 以外を指定すると自動計算値は加算されずに上書きされます。最終的なラウドネスは後段のラウドネスオプティマイザーで調整します。