ノブにトラックボリュームをアサインした時、
なのに、何故か真ん中でカチッっという感触があるLaunch Control XL。 やってらんないので真ん中で 0 dB になるような変換式を考える。
Live のトラックボリュームの値を調べてみた。\( C \times logR \) になっていると変換式が求められそうだが・・・
こちらプロットデータ
| dB | value |
|---|---|
| 6 | 1 |
| 0 | 0.85 |
| - 3 | 0.774942 |
| - 6 | 0.7 |
| - 9 | 0.624942 |
| -12 | 0.55 |
| -15 | 0.474942 |
| -18 | 0.4 |
| -21 | 0.343664 |
| -24 | 0.302414 |
| -27 | 0.268256 |
| -30 | 0.238439 |
| -33 | 0.21163 |
| -36 | 0.187037 |
| -39 | 0.164219 |
| -42 | 0.142882 |
| -45 | 0.122717 |
| -48 | 0.103536 |
| -51 | 0.085236 |
| -54 | 0.067786 |
| -57 | 0.051012 |
| -60 | 0.034624 |
| -63 | 0.021346 |
| -66 | 0.01113 |
| -69 | 0.002376 |
-20 dB 辺りを境界にして2つの特性が組み合わさっている。 こりゃ何かをモデリングしているぞ。
めんどくせぇので簡単な式一発で特性変換する。
Ableton Liveのレベル、Max for Liveでの値 で確認したようにトラックボリュームは 0.85 で 0 dB の値になる。 変換しやすいように、まずMIDI信号の値を\(0 \to 1 \) に変換する。
そして変換は対数、指数っぽい関数を考える で使った対数っぽい曲線で行う。
0.5 を何乗すると 0.85 になるのか調べるため\(log_{0.5}0.85\)を行うと
\[ log_{0.5}0.85 = 0.23446525363702 \]
計算は対数関数 - 高精度計算サイトで行った。
つまりコントローラーの値を 0.234 乗してあげればノブのだいたい半分のところで 0 dB になる。
同様にlive.gain~についても変換式を求める。live.gain~の値についても
Ableton Liveのレベル、Max for Liveでの値
で書いてある通り。
0.5 を何乗すると 0.921 になるのか調べるため\(log_{0.5}0.921\)を行うと
\[ log_{0.5}0.921 = 0.11872693857075 \]
計算は対数関数 - 高精度計算サイトで行った。
つまりコントローラーの値を およそ 0.12 乗してあげればノブのだいたい半分のところで 0 dB になる。
12時で 0 dB になったのはよい。
しかし低い方の解像度が128段だと全然足りない。微妙。