ダイナミクスコントロール
ダイナミクスコントロールは、マスターにどれだけ動きを残すかを決めるパートです。デモではコンプレッサーのステージとクイックマスターの Dynamics マクロに反映されます。
スレッショルド・レシオ・アタック・リリース・ニーは、それぞれ単独で語る話ではありません。これら 5 つをまとめて判断して、初めて意味のある設定になります。
5 つをまとめて、耳で判断する
1 つを変えると他のふるまいも変わるので、各つまみ単体ではなく結果で判断します。必ずラウドネスマッチした A/B 比較 で確認してください。大きくなったから「良く」聞こえるだけのコンプレッションは、実際には改善ではありません。
各パラメータの役割
- スレッショルド は、コンプレッションが始まるレベルです。
- レシオ は、スレッショルドを超えた信号をどれだけ抑えるかです。
- アタック は、ゲインリダクションがどれだけ速く目標値へ到達するかです。
- リリース は、目標値からユニティゲインへ戻る速さです。
- ニー は、スレッショルド付近で急にかかるか/なめらかにかかるかを決めます。
| コントロール | 聴くポイント |
|---|---|
| スレッショルド | 曲のどの範囲がコンプレッションに入っているか。 |
| レシオ | 大きい部分がどれだけ密に/押さえつけられて感じるか。 |
| アタック | ドラムや子音の先端が残っているか。 |
| リリース | 呼吸が自然か、ポンピング感が出ていないか。 |
| ニー | 急に掴むか、なめらかに入るか。 |
実用的な流れ
- 中程度のレシオとソフトニーから始める。
- 大きいセクションで自然なゲインリダクションが出るまで、スレッショルドを下げていく。
- トランジェント(ドラムの打点や子音の先端に出る、短いレベルの立ち上がり)が制御されつつ潰れないアタックに合わせる。
- グルーヴに合うリリースで戻るようにする。
- ラウドネスマッチした A/B で、コンプレッションが本当に改善になっているか確認する。
パラレルコンプレッション
コンプレッションは「全か無か」ではありません。パラレル(「ニューヨーク」)コンプレッションは、強く潰したコピーを、手を加えていないドライ信号の下に混ぜます。ドライのコピーがトランジェントとパンチを保ち、潰したコピーが胴体を加えて静かなディテールを持ち上げます。ブレンドのコントロールが、潰したコピーをどれだけ混ぜるかを決めます。100% ではコンプレッサーだけが聞こえ、下げるほどドライのダイナミクスが戻ってきます。
マルチバンドコンプレッション
ここまでのコンプレッサーは信号全体を一度にまとめて処理します。libsonare のマスタリングチェーンは、信号を複数の周波数帯域に分割し、それぞれを独立してコンプレッションする マルチバンドコンプレッサー もサポートしています。低域だけがボワつく、高域だけが刺さるといった、特定の帯域だけが問題を起こしているときに、ミックス全体を潰さずに対処できます。
ブラウザデモからは到達できません
デモの masteringChain() 設定が公開しているのは、固定 3 バンドの簡易記法だけです(dynamics.multibandComp.lowThresholdDb、midRatio、highAttackMs など — low/mid/high のみで、それ以上には増えません)。任意のバンド数(1〜64 バンドの範囲で検証されます)は JSON ドキュメントレベルの機能であり、マスタリング CLI の --config <file> に チェーン設定スキーマバージョン 2 を渡す必要があります。バージョン 2 では dynamics.multibandComp が、フラットな low/mid/high キーの代わりに、crossover と、独立したコンプレッサー設定の配列 bands を持つ構造化オブジェクトになります。スキーマバージョン 1、およびブラウザの TypeScript 設定オブジェクトでは、3 バンドを超える表現はできません。
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 の短い移動平均で、体感ラウドネスに近い)、log-RMS(同じ線形 RMS 平均を 50 ms の長い窓で取るもので、持続レベルを推定し、短いトランジェントを無視する)です。既定は RMS です。どれを使うかで、コンプレッサーの反応の鋭さが変わります。なお、この検出器のスムージング時定数とアタック/リリースのエンベロープ時定数は別物として設計されています。
オートメイクアップは測定値ではなく開ループの推定値です。ブロックごとに 1 回、スレッショルドとレシオだけから計算し、スレッショルド上にある信号をちょうど元のレベルへ戻す量の半分を適用します。実素材の平均レベルはスレッショルドよりかなり下にあり、理論値をそのまま当てると持ち上げすぎになるため、この半分という係数は意図的なものです。またオートメイクアップと手動メイクアップは排他で、makeupGainDb に 0 以外を指定すると自動計算値は加算されずに上書きされます。最終的なラウドネス着地は、コンプの後段にあるラウドネスオプティマイザーが責任を持つ設計になっています。