換算¶
保存値が Fairlight の画面に出る数値にどう換わるか、そしてそれぞれの換算をどう確かめたか。項目番号は Fairlight ミキサー。
フェーダー・ゲイン・パン・ルーティング¶
| 操作 | 項目 | 換算 | 根拠 |
|---|---|---|---|
| フェーダー | 0x001 |
÷10 dB、Dynamics の後段 | トラック:−60/−200 の書き出しが −6.0/−20.0 dB。Bus(Bus 表の前半):−60/−200/+60 が書き出しでちょうど −6.0/−20.0/+6.0 dB |
| ダイナミクス前段ゲイン | 0x019 |
÷10 dB、Dynamics の前段 | リミッター有効時に −60 で出力が 0.4 dB しか下がらない=処理の前段(画面上の名称は未確認) |
| ミュート | 0x002 |
1=ミュート | Bus:1 で書き出しが無音 |
| ソロ | 0x011 |
1=ソロ | |
| パンのバイパス | 0x00D |
1=パン無効。反転して pan_on として出力 |
|
| パン L/R | 0x004 |
÷10=%、−100〜+100 | |
| Effects In | 0x01D |
1=有効 | 画面で切替:0 → 1 |
| EQ の主スイッチ | 0x0DF |
1=有効 | 既定 1、画面で切ると 0 |
| 処理順 | 0x0DE |
0 EQ→DY→FX、1 EQ→FX→DY、2 DY→EQ→FX、3 DY→FX→EQ、4 FX→EQ→DY、5 FX→DY→EQ(既定) | 6通りすべてを画面で1つずつ選んで確認 |
| トラックの選択 | 0x0AA |
1=トラックヘッダーが選択中(画面の状態のみ・音には無関係) | A1→A2 と選ぶと [1,0,0,0] → [0,1,0,0] |
| 出力接続/出力先 | 0x400/0x40B |
フラグ/Bus 番号(0=Bus 1、−1=なし) |
内蔵 EQ¶
ストリップごとに6バンド。バンド k(k=1〜6)は次の番号を使います。
| 操作 | 項目 | 換算 |
|---|---|---|
| バンドの有効 | 0x100+k |
1=有効 |
| フィルター種類 | 0xF8+k |
1 ローシェルフ、2 ベル、3 ハイシェルフ、4 ノッチ、5 ローパス(バンド6の既定)、6 ハイパス(バンド1の既定) |
| 周波数 | 0xF0+k |
Hz そのまま |
| ゲイン | 0xE0+k |
÷10 dB |
| Q | 0xE8+k |
Q=−0.615+0.06567×保存値、0.3〜10.3 で頭打ち、小数1桁 |
| レンジ(バンド2〜5) | 0x287+k |
0 L、1 ML、2 MH、3 H。既定はバンド2〜5で 0, 1, 2, 3 |
| スロープ(バンド1と6) | 0x4BE/0x4C3 |
0=6、1=12、2=18、3=24 dB/oct |
| つまみ(生値) | 0x333+k |
周波数に連動(Hz の自然対数1あたり約94、0〜256)。つまみ位置と思われる。表示には使わない |
Q の式は 0.8〜5.0 の画面値6点に当てはめたもので、6点すべて表示桁で一致します。画面の範囲は 0.3〜10.3 で、両端は未確認です。以前の「バンド1の種類=0x0DE」という対応は誤りでした(その項目は処理順)。
内蔵 Dynamics¶
一次式のつまみ¶
| 操作 | 項目 | 換算 |
|---|---|---|
| メイクアップ | 0x109 |
÷10 dB |
| コンプレッサーの有効/スレッショルド/ニー/ミックス | 0x10C/0x10E/0x10F/0x117 |
フラグ/÷10 dB/そのまま/そのまま |
| エキスパンダーの有効/スレッショルド/レンジ | 0x114/0x116/0x115 |
フラグ/÷10 dB(1点のみ・assumed)/×0.6 dB |
| エキスパンダーのモード | 0x11B |
0=エキスパンダー。0 以外はゲート表示になる |
| リミッターの有効/スレッショルド | 0x11D/0x11E |
フラグ/÷10 dB |
時間とレシオのつまみ:2つの方式¶
コンプレッサー・エキスパンダー・リミッターのレシオ・アタック・ホールド・リリースは一次式ではありません。保存値 r は2つの方式のどちらかで、同じプロジェクトの中に両方が混在しえます。
| 方式 | 条件 | 画面値 |
|---|---|---|
| 旧方式(テンプレート・初期値) | r ≤ 100 |
r はつまみ位置(%)。legacy 表を対数補間 |
| 現行方式(Resolve 21 で設定した値) | r ≥ 5000 |
M = (r + 5) // 100(つまみ位置 0〜1000)、d = r − 100·M(−5〜94)。画面値=law[M] + d × fine |
| 範囲外 | 101 ≤ r ≤ 4999 |
画面の欄は空(画面空欄(raw=…)) |
fineは時間のつまみで 1 ms、レシオで 0。- 画面で数値を入力した値は、これまでのところ必ず
d = −4で保存されています。例:アタック 4.0 ms は 40496 で保存 → M=405(law 8.0 ms)、d=−4 → 8.0 − 4=4.0 ms。 - 例:レシオの保存値 51996 → M=520、d=−4(fine 0)→ law[500]=2.9 と law[550]=3.2 の間 → 3.0:1。
- 例(旧方式):リリースの保存値 20 → legacy 表 → 93 ms。
| つまみ | 項目 | 換算表 | 備考 |
|---|---|---|---|
| コンプレッサーのレシオ | 0x10D |
ratio |
画面 x:1、最大 20 |
| コンプレッサーのアタック/ホールド/リリース | 0x110/0x111/0x112 |
attack/hold/release |
アタック最小 0.70 ms |
| エキスパンダーのレシオ | 0x253 |
exp_ratio |
画面 1:x、最大 3.0 |
| エキスパンダーのアタック/ホールド/リリース | 0x118/0x119/0x11A |
exp_attack/hold/release |
アタック最小 0.50 ms |
| リミッターのアタック/ホールド/リリース | 0x11F/0x120/0x121 |
lim_attack/hold/release |
アタック最小 0.70 ms |
コンプレッサーとエキスパンダーのアタックは同じ曲線(最小値だけ違う)、ホールドは3つの処理で共通、リリースも共通で M ≥ 200 ではホールドと等しい。ホールドとリリースは 4000 ms で頭打ちです。
補間と表示¶
law[M]は50刻みと、いくつかの実測点で定義しています。表の2点の間は、両端が正なら対数補間、そうでなければ線形補間。表の外は端の値を使います(外挿しない)。- アタックの最小値(
floor)と換算表の最大値(max)は換算の後に適用します。 - 表示:1未満は小数2桁、9.95未満は小数1桁、それ以上は整数(Fairlight の画面と同じ)。レシオは
x:1、エキスパンダーのレシオは1:x。
換算表(現行方式)¶
drpkit/fairlight_map.yaml の dyn_laws から生成。単位は時間のつまみが ms、ratio/exp_ratio はレシオ。
| M(つまみ位置) | ratio |
exp_ratio |
attack |
exp_attack |
lim_attack |
hold |
release |
|---|---|---|---|---|---|---|---|
| 0 | 1.2 | 1.1 | 0.7 | 0.5 | 0.7 | 0 | 50 |
| 50 | 1.2 | 4.7 | 4.5 | 4.7 | 4 | 55 | |
| 75 | 1.3 | 4.7 | 4.6 | 6.5 | 59 | ||
| 100 | 1.3 | 4.7 | 4.6 | 4.7 | 11 | 63 | |
| 150 | 1.4 | 4.8 | 4.8 | 4.7 | 50 | 72 | |
| 152 | 1.3 | ||||||
| 165 | 75 | 75 | |||||
| 200 | 1.5 | 5.1 | 5.1 | 4.7 | 84 | 84 | |
| 250 | 1.7 | 5.5 | 5.5 | 4.7 | 100 | 100 | |
| 263 | 1.5 | ||||||
| 300 | 1.8 | 6 | 6 | 4.7 | 125 | 125 | |
| 322 | 4.81 | 138 | 138 | ||||
| 350 | 2 | 6.8 | 6.8 | 5.1 | 158 | 158 | |
| 400 | 2.3 | 1.7 | 7.9 | 7.9 | 5.6 | 201 | 201 |
| 404 | 206 | 206 | |||||
| 405 | 8 | 8 | 5.7 | 207 | 207 | ||
| 410 | 212 | 212 | |||||
| 450 | 2.5 | 9.3 | 9.3 | 6.5 | 260 | 260 | |
| 500 | 2.9 | 11 | 11 | 7.5 | 335 | 335 | |
| 550 | 3.2 | 14 | 14 | 9 | 431 | 431 | |
| 600 | 3.7 | 2.1 | 17 | 17 | 11 | 560 | 560 |
| 650 | 4.2 | 22 | 22 | 13 | 737 | 737 | |
| 675 | 24 | 24 | 836 | 836 | |||
| 700 | 5 | 27 | 27 | 15 | 949 | 949 | |
| 750 | 5.8 | 34 | 34 | 17 | 1205 | 1205 | |
| 800 | 7 | 2.5 | 42 | 42 | 19 | 1523 | 1523 |
| 850 | 8.4 | 52 | 52 | 22 | 1905 | 1905 | |
| 900 | 10 | 63 | 63 | 25 | 2374 | 2374 | |
| 950 | 12 | 76 | 76 | 28 | 2889 | 2889 | |
| 1000 | 16 | 2.9 | 90 | 90 | 31 | 3457 | 3457 |
ratio: fine = 0, max = 20 · exp_ratio: fine = 0, max = 3 · attack: fine = 1 · exp_attack: fine = 1 · lim_attack: fine = 1 · hold: fine = 1, max = 4000 · release: fine = 1, max = 4000
換算表(旧方式、r ≤ 100)¶
| 旧方式 r(つまみ%) | ratio |
exp_ratio |
attack |
exp_attack |
lim_attack |
hold |
release |
|---|---|---|---|---|---|---|---|
| 0 | 1.2 | 1.1 | 0.7 | 0.5 | 0.7 | 0 | 50 |
| 10 | 1.4 | 1.3 | 0.78 | 0.71 | 32 | 66 | |
| 15 | 1 | 1 | 78 | 78 | |||
| 20 | 1.6 | 1.4 | 0.71 | 93 | 93 | ||
| 25 | 1.6 | 1.9 | 1.9 | 116 | 116 | ||
| 28 | 134 | ||||||
| 30 | 2 | ||||||
| 33 | 3.2 | 3.2 | |||||
| 40 | 1.8 | 2.3 | |||||
| 50 | 3.1 | 9.4 | 9.4 | 4.7 | 408 | 408 | |
| 55 | 2.1 | ||||||
| 59 | 4 | ||||||
| 60 | 700 | ||||||
| 75 | 2.5 | ||||||
| 80 | 1827 | ||||||
| 90 | 2.8 | ||||||
| 99 | 3859 | 3859 | |||||
| 100 | 20 | 3 | 100 | 100 | 30 | 4000 | 4000 |
ratio: fine = 0, max = 20 · exp_ratio: fine = 0, max = 3 · attack: fine = 1 · exp_attack: fine = 1 · lim_attack: fine = 1 · hold: fine = 1, max = 4000 · release: fine = 1, max = 4000
表の作り方と精度¶
drpkit writeでプロジェクトのコピーに選んだ保存値を書く。- そのコピーを Resolve 21.1.1 に読み込み、Dynamics の画面を読む。
- 23 プロジェクト × 10 つまみ+個別の点。読み取り値は
tests/data/dyn_law_sweep_readings.txt、計画はtests/data/dyn_law_sweep_plan.json、tests/test_dyn_law.pyが全件を照合します。
表を作るのに使っていない 20 点での盲検:11 点が完全一致、5 点が表示の最下位桁で1違い、3 点が 0.2〜0.8 % のずれ、1 点が外れ値(ホールドの M=165。その点は後で表に追加)。全体としては ±1 %(表示の最下位桁)以内、ホールドとリリースのつまみ位置 100〜250 付近はそれより大きくずれることがあります。
エキスパンダーのレシオ(0x253)の点(旧方式 0 → 1.1、10 → 1.3、25 → 1.6、40 → 1.8、55 → 2.1、75 → 2.5、90 → 2.8、100 → 3.0、現行方式 M=152 → 1.3、263 → 1.5、400 → 1.7、600 → 2.1、800 → 2.5、1000 → 2.9)は、すべて画面で読んだもの(うち8点は writer で値を書いた後)です。すべて表に入っているので、このつまみについてはテストは独立した検証になっていません。
プラグインとクリップ¶
プラグインのつまみの式(正規化 0〜1 → 画面値)は プラグイン、クリップ音量・フェード・フェードのカーブ・キーフレームは クリップと編集。