チャンネルストリップ
チャンネルストリップは、ミキサーにおける 1 トラックのレーンです。ボーカル、ベース、ドラムバスのような 1 つのパートが、マスターへ届く前に通る縦 1 列のコントロール群です。
重要なのは処理の順序です。順序が分かると、各コントロールがなぜそのように効くのかを予測しやすくなります。
本ページは ミキシングの基礎 より深く、libsonare の ChannelStrip を根拠に解説します。
固定された信号順
libsonare は各ブロックを 1 つの固定順で処理します。上から下へ読むと、「なぜこのコントロールはこう振る舞ったのか」の多くが説明できます。
- 入力トリム — ほかの何かが信号に触れる前に、入口で行うくせのないレベル調整。
- 極性反転(L/R) — 波形を反転し、マイクやチャンネル間の位相を直すのに使います。
- チャンネルディレイ — 他トラックに対して時間整合します。指定は整数サンプル単位です(
setChannelDelaySamples、シーンのフィールドはchannelDelaySamples)。ミリ秒指定の入口はないため、換算は自分で行ってください。 - EQ — トーン整形。位置はプリ/ポストフェーダーを選べます(後述)。
- プリフェーダーインサート — フェーダーの前で動く直列プロセッサ。
- フェーダー(+ VCA オフセット) — 他トラックと比べて取るバランスコントロール。
- パン — 選んだパンロー(中央から離れてもパートの音量が変わらないようにする規則)でトラックをステレオフィールドに配置します。
- ポストフェーダーインサート — フェーダーの後の直列プロセッサ。
- ステレオ幅 — ステレオイメージを狭めたり広げたりします。
- メーター/ゴニオメーターのタップ — 処理ではなく計測です。ゴニオメーターは、ステレオイメージの広がりを点の散らばりで見せる表示です。
なぜ順序が重要か
順序は見た目の問題ではありません。どの位置に置くかで、各プロセッサが聞く信号が変わります。
| 位置 | 起きること |
|---|---|
| フェーダー前のコンプレッサー | 生のレベルに反応し、フェーダーを動かしても効き方は変わりにくい |
| フェーダー後のコンプレッサー | フェーダーで作ったバランス操作にも反応する |
| プリフェーダーセンド | フェーダー前をタップするため、ミックスバランスから独立する |
| ポストフェーダーセンド | フェーダーに追従するため、音量を動かしてもエフェクト比率が保たれる |
タップ位置の取り違えは、最も多いルーティングミスの 1 つです。
EQ の位置
EQ はプリ/ポストフェーダーのどちらにも置けます。プリフェーダー EQ は、その後のインサートとフェーダーが作用するトーンを整え、ポストフェーダー EQ はすでにバランスされた信号を整えます。libsonare はこれを片方に固定せず、ストリップのオプションとして公開します。
キューモニタリング: PFL と AFL
全員が聴いているミックスを乱さずに、あるトラックだけを単独で聴きたいことがあります。本番前にボーカルのブレスノイズを確認する、フロアがメイン出力を聴き続けている間にあるトラックを試聴する、といった場面です。これが キューモニタリング です。ヘッドホンやモニターバスへ、通常のミックスの代わりではなく、それと並行してフィードする別系統のタップです。
PFL(プリフェーダーリッスン)は、レーンストリップの後、レーンのフェーダー・ゲート・パンより前で信号をタップします。そのためトラックがミュート・ゲート・パンオフされていても PFL のキューは聞こえ続け、フェーダー位置に関わらずソースの生の内容を確認するのに向きます。AFL(アフターフェーダーリッスン)は代わりにそれらの段の後 — サラウンドパスを含む — でタップするため、トラックがミックスへ実際に寄与しているのと同じレベルと定位を反映します。
libsonare がキュータップをどうスケジュールするか
キューモニタリングはキュー投入可能なリアルタイムコマンドです。RealtimeEngine の setTrackMonitorMode(laneIndex, mode, renderFrame?)(EngineTrackMonitorMode = 'off' | 'pfl' | 'afl')で、C ABI では sonare_engine_set_track_monitor_mode(SonareEngineTrackMonitorMode)に対応し、Python では set_track_monitor_mode として公開されます。他のエンジンコマンドと同様に WASM の AudioWorklet 経路からも到達可能で、モニターバスはエンジンの通常出力に折り込まれると同時に、単独でも読み出せます。
libsonare がストリップをどうモデル化するか
ストリップは ChannelStripConfig で構成される ChannelStrip です。ブロックは次の順に処理されます。
トリム -> 極性 -> チャンネルディレイ -> EQ -> プリフェーダー InsertSlot
-> VCA オフセット付きフェーダー -> PannerProcessor
-> ポストフェーダーインサート -> StereoWidthProcessorEqPosition で EQ のプリ/ポストを選べます。TapPoint はプリ/ポストフェーダーのセンドと GoniometerBuffer/MeterProcessor が信号を読む位置を示します。ゲインとパンの変更はパラメータスムージングされ、経路はリアルタイム安全(事前確保、デノーマル対策)なので、同じストリップがオフラインでも AudioWorklet 内でも動きます。