DAW で Gain 調整をインサートしまくる話
Ableton の細かい話は以下にまとめてます。
***
「insert に物を挿せば挿すほど音悪くなる」は DAW でもそうなのか?
アナログ回路では、「理論上、信号に何も変化を与えてない(つもり)」でも、部品の数や信号経路の長さが増していくにつれ、外来ノイズや誤差が積もって理想の信号からは離れていく。
ではデジタルではどうか。意図しないノイズの混入、あるいは意図しない計算のミスなどはあるか。あったらどのくらいの規模か。
Ableton の Utility の Gain に限ってかるく実験する。Utility というのは Ableton で最もシンプルなエフェクトで、音量を変えたりパンを振ったりできる。近年機能が増えたが……
実験0
Q. 同じ内容のトラックを、同じだけ Gain 下げた場合、出音に思わぬ差があったりする?
とあるオーディオファイル (normalized) をトラックに貼り、複製する。
それぞれトラック A, B として、Aは -12 dB する。
B は上図のように、L/R それぞれの正負を逆相にしたうえで、同様に -12 dB する。
Master の Peak Level を見る。(SPAN を使う。Session View Mixer の Peak 表示は -120 dBFS より小さい音は見えない……)
結果: - Inf dBFS から不動。
そうであってくれなきゃ困るね。
実験1 二段階に分けてみる
Q. -12 dB したい時に、-12 dB するデバイス1つ使うのと、-6 dB するデバイス2つを直列に使うと結果は異なるか?
算数で言えば「100-12と、100-6-6の答えは一緒か?」あるいは「100÷2^2と、100÷2÷2の答えは一緒か?」みたいな話なので、理屈上は変わらないはずだが……
さっきの状態から、トラックB のほうだけ、-6 dB の Utility 2個にしてみる。
結果: - 150.5 dBFS 振れた。
実験2 もっと多段階に分けてみる
Q. 実験1では、Utility を2個に増やしたら誤差が発生した。では、Utility をもっと増やしたらどうだろう?
またBの方だけを変更。-12 dB 減らすために、-1.0 x 12回にわけてみる。
また、-0.1 x 120回の場合、-0.01 x 1200回の場合も確認する。
結果:誤差は増えた。ここまでをまとめると、
1段階: -inf dBFS
2段階:-150.5 dBFS
12段階:-138.5 dBFS
120段階:-127.6 dBFS
1200段階:-103.7dBFS
段階数を増やすほど、誤差は大きくなる。
実験3 その他の検証
3.1 この誤差って、どういう音なの?
このちいせえ誤差の音量を上げて耳で聴いてみると、「元音に似ているが、きつく潰したような、低域成分の少ないサウンド」になっていた。
これが「原音に、音量調整以外の処理が加えられている」ものか、「原音の音量をシンプルに下げまくった時にビット方向の解像度の限界でクランチーになった」ものかは判断しづらい。
3.2 別のサンプルで検証すると、印象は変わる?
あまり変わらない。もう一種類試した (同じくnormalized) ら、同じだけ差分 peak値が出た。つまり、Utility が2つであれば、-150.5 dBFS。誤差の出方は sample の内容にかかわらない可能性がある。
A/B両方を、Utility より手前で -6 dB すれば、差分値は -156.5 dBFS になった。変化量が一致している。
3.3 レンダリングするとどう?
ここまでは、arrangement view で鳴らした audio clip に対して、master に挿した SPAN の peak meter をリアルタイムプレイバックでみていた。
ではレンダリングするとどうか? master 出力を 32bit float でレンダリング ‥‥すなわちオフラインバウンスする。と、生成された波形ファイルでも同様の差分が確認できた。
プレイバックでも、オフラインバウンスでも、結果は一緒そうだ。
3.4 SPAN 以外のメータでは?
-150 dB のピークをちゃんと測定できるメータをろくにもってないことに気づいた。
実験2で、1200個の Utility を並べた際の差分は -103.7 dB だった。これは SPAN だけでなく、session view の備え付けのピークメータ数値でも確認できた。
3.1で示したように、差分はゲインアップすれば耳に聴こえる。3.3で書き出したファイルもノーマライズすれば波形として目に見える。なので SPAN の測定ミスではなく、実際に誤差が生じていることは間違いないだろう (数値への確証は無いが……)。
実験4 Utilityの個数だけが問題になるのか?
Q. まったく Gain 操作を行わないとしたらどうだろう?
Aには何も挿さず、Bは逆相にした後で、Gain +0 dB つまり無操作の Utility を複数置いてみる。
結果:いくつ置いても差分はなし。master peak level は -inf dBFS のまま。
とりあえず1200個置いてみてもセーフ。
実験5 ゲインプラス操作を含むとどうか
実験1, 2ではマイナスの計算だけをいくつも連続させた。では、プラス操作とマイナス操作の両方を行ったら結果は変わるだろうか?
Aには何も挿さず、Bは逆相にした後で、「-n dB し、+n dB する」。
結果:差が出た。
n = 0.000001 〜 0.000006 : -228.8 dBFS
n = 0.000007 : -168.6 dBFS
n = 0.000008 〜 16.999999 : -144.5 dBFS
n = 17 〜 18 : -135.0 dBFS
n = 18.000001 〜 18.009999 : -144.5 dBFS
n = 18.01 : -138.5 dBFS
n = 18.02 〜 18.06 : -144.5 dBFS
n = 18.065 : -128.9 dBFS
n = 18.07 〜 30 : -138.5 dBFS
ご覧のように、もはや単調増加ですらない。波打っていて、"〜"で省略した中にも様々な外れ値がひそんでいるだろう。
18.065 を試した時に一番大きな値が出たのはビックリした。もしやと思って、半分の 9.0325 を試したら -132.5 dBFS という見慣れない数値も出てきた。
nが1だろうが16だろうが差分量が固定というのもおもしろい。周期性があるのか? なかなか想像がつかない。いまこれを書きながら n = 4を試したら -135 dBFS だった。何もわからない。
AとBの間で誤差を確認したあとで、両者のトラックボリュームを同じだけ下げてみた。両者を -1 dB ずつしたら、誤差が 1 dB 減るかと思いきや変わらなかった。やはりそんな単純な計算ではない。
考察
えー、実験0〜5を経て、とくに5の結果が難解すぎて、明確な解答予想をすることはできなかった。それでもなんとか、言えそうなことをまとめると、
理屈上は同一結果になるゲイン処理も、回数を増やしたり段階を分けたりすると、計算誤差が生じる
この誤差は「Utility には微小なノイズ (= sample とは関係ない外来の音) があり、挿すほど積み重なる」ということではないだろう (実験4参照。まあ Gain +/- 0 dB の時だけノイズ源を bypass している可能性とか言い出すとキリないが)。
そうではなく、Gain 増減の数学的精度の誤差の話ではなかろうか。
基本的に処理回数が増えるほど、誤差は大きくなる連関が見て取れる。
これはおそらく、ユーザ入力した数値と処理実行される時の値にわずかな差があるんじゃなかろうか。表示上は小数点以下含め3桁しか見えないが、もっと細かい入力も受け付けてはいるので、どこかしらで切り捨ては発生している
たとえばそれが「10進数の小数点第何位」ではないルールで動いているとしたら、-12 ≠ -6 -6 というシチュエーションに一応説明はつきうるし、処理回数が増えるほど誤差が堆積するのもわかる。
経過中の処理の振れ幅と誤差の連関は不明。
無処理の Utility を増やすだけならばなにも起きない。誤差を生じさせているのは、Utility を通すことそのものではなく、そこで処理を行うことに拠る。
ただしいずれの誤差も異常に小さいレベルの話である。人の耳が良いとかいう話で判断できるレベルを大きく逸脱しているし、CD の規格なんかからいったら記録すら不可能。通常行わないほど過度な処理 (1000個以上の Utility を挿すなど) ですら -100 dB に乗ってこないなど。
よく DAW の内部演算が float である理由について「1度の編集処理にそんな精度は不要だとしても、制作中は1つの波形を何十回、100回と加工することがありえるから」と話されるが、千回以上いじることはあまりないだろうから、「この誤差が積み重なることで人の耳に判別可能なエラーが表出する」可能性もまずないと思っていいんじゃなかろうか。
そしてこの誤差って「同じ結果を得るために、簡易な処理 (あるいは無処理) と、過度に複雑な処理したものを比較した時」の差のことを言っている。通常、とくに制作において、Utility を100個挿すことがたとえあったとしても、それを Utility 1個の場合と比較する場面はまずないのだ。「理屈上の正解」しか存在しない時に「実践上の誤り」は存在すらしないのでは?
いくら「めっちゃ小さいから」「意識される場面がないから」と言われても、理屈にあわない状況があるかないかで言ったら、ある。それを気持ち悪く思ったり、ネガティブに捉える人もいるだろう。気持ちはわかるし否定もしないが、そういう人は、ページビューを稼ぎたい過激な見出しのネット記事や、法人のやっている煽り Twitter アカウントなどに振り回されないように人一倍気をつけてください (余計なお世話)。
有無自体も大事だが、そのスケールを定量的に認識し、それが自分の作業、ひいては自分の価値観にどう影響するかを腰を据えて評価することのほうがずっと大事だとおれは思う。DAW は制作ツールであり、測定器ではないのだから。
「じゃあなんでこんな記事書いてんだ。お前は音楽家じゃなかったのか」と言われると、いや、なんでこんなんやってんスかね、ハハ……
煮え切らない着地ですが終わり
投げ銭いただけたら、執筆頻度が上がるかもしれません