コンテンツにスキップ

換算

保存値が 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

表の作り方と精度

  1. drpkit write でプロジェクトのコピーに選んだ保存値を書く。
  2. そのコピーを Resolve 21.1.1 に読み込み、Dynamics の画面を読む。
  3. 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 → 画面値)は プラグイン、クリップ音量・フェード・フェードのカーブ・キーフレームは クリップと編集。