オートメーションとメーター
静的なミックスが最良であることは稀で、耳だけでミックスを信用するのも十分ではありません。オートメーションはコントロールを時間とともに動かし、メーターは耳に加えて目でも結果を確認させます。本ページは両者を libsonare のオートメーション・メータープロセッサに根拠づけます。基礎は ミキシングの基礎 を参照してください。
オートメーション: 呼吸するミックス
オートメーションはコントロールの時間変化を記録します — サビでボーカルを 0.5 dB 上げる、シンセを 4 小節かけてフェードアウトする、ライザーでフィルターを開く。各コントロールは設定した点の間をカーブでたどり、カーブの形が雰囲気を変えます。
| カーブ | 動き |
|---|---|
| linear | 点と点を結ぶ直線ランプ |
| exponential | 速→遅(または遅→速)。フェードに自然 |
| s-curve | 両端がなめらか。音楽的な遷移 |
| hold | 即座に跳び、次の点まで保持 |
オートメーションはフェーダー・パン・センド・インサートパラメータを対象にできるので、レベルだけでなくストリップ全体を動かせます。
エンジンオートメーションと型付きプロジェクトレーン
ここまでの AutomationTarget は エンジンレベル のものです。稼働中の RealtimeEngine ミックス内でフェーダー・パン・センド・インサートパラメータを指し、リアルタイムに再生されます。これとは別に、プロジェクトレベルのオートメーションレーン という永続化された構造もあります。Project.addAutomationLane(trackId, desc) はブレークポイントの集合と、任意の targetKind(ProjectAutomationTargetKind = 'opaque' | 'track-fader-db' | 'track-pan')を持つ ProjectAutomationLaneDesc を保存します。targetKind を省略すると従来どおりの 'opaque' ルートのままで、ホスト定義のパラメータ id を組み込みの意味なしに駆動します。一方、型付きレーン('track-fader-db' または 'track-pan'。C ABI の sonare_project_add_automation_lane_ex からインストールされます)は、プロジェクトのインストール時にエンジンの予約パラメータ名前空間へ解決されるため、オフラインバウンスがトラックミキサー経由で自動的に適用します。ホスト側がフェーダーやパンの生パラメータ id を把握している必要はありません。
メーター: 目も信じる
部屋は嘘をつき耳は疲れるので、ミックスはメーターでも判断します。
- ピーク/True Peak(トゥルーピーク) — 最高レベル。通常のサンプルメーターは保存されたサンプルしか読みませんが、サンプル間で復元される波形はそれより高く跳ね上がることがあります。True Peakは、通常のメーターが見逃すこのサンプル間のオーバーを捉えます。
- RMS/LUFS — 平均レベルと知覚ラウドネス。LUFS(Loudness Units relative to Full Scale)は、リスナーが実際に判断する聞こえの大きさに沿った単位です。
- 相関 — 左右が一致しているか。強い負の値は、ミックスがモノラルで弱まる警告です。
- ゴニオメーター — ステレオフィールドをドットで描く表示です。読み方は、横軸に L−R、縦軸に L+R を取る一般的な回転表示を前提とします(L と R をそのまま軸に取る表示では、以下の形がすべて 45 度回転します)。縦に細長い塊はほぼモノラルの信号、横に広く散らばる形は広いステレオ像、そして雲が横軸へ潰れる形は位相や極性の問題を警告します。雲が片側へ傾いているのは単なる左右のレベル差で、音像が中央からずれていることを示します。これはバランスの問題であって、位相の問題ではありません。
メーターは記述するだけで、判断はしません。耳が見逃す問題を捉えるために使い、数値を追いかけるためには使いません。
libsonare がオートメーションとメーターをどうモデル化するか
オートメーションは AutomationLane 上に、サンプル精度の AutomationEvent としてスケジュールされます。カーブは AutomationCurve(linear/exponential/s-curve/hold)で指定します。
AutomationTarget はフェーダー・パン・センド・インサートパラメータを指し、InsertAutomationLane はインサート内部を自動化します。
メーターは MeterProcessor(MeterConfig)でピーク/True Peak/RMS/LUFS と相関を計測し、ベクトルスコープ用に GoniometerPoint の GoniometerBuffer を持ちます。これらはすべてリアルタイム安全なので、オフラインでも AudioWorklet 内でもオートメーションが再生されメーターが更新され、UI 表示用にエンジン側のテレメトリも利用できます。