技術的な話 — 昔と今

音楽制作やレコード作りは多面的なプロセスで、さまざまな要素が関わります。そのうちのいくつかは芸術的なもので、他はいわば純粋に技術的なものです。
かつてのやり方
“昔はね”(今回はスコットランド訛りで)、テクニカルな要素にはテープマシンやアナログ卓、アウトボード、ライン、実際のリバーブ室の扱いに長けた人々が多く関わっていました。誰もがセッションが止まることを望まず、アーティストが貴重な時間やインスピレーションを失うような技術的なトラブルは何としても避けたかったのです。
現在のやり方
今でもこの考え方は当てはまりますが、技術的な中身は変わりました。コンピュータで音楽を作る人が増えたからです(Fab によれば周りにけっこういるそうです)。
多くの人が見落としがちで過小評価しがちなDAWの重要な側面の一つは、ルーティングや処理に伴って内部的に発生する遅延を扱う能力です。本稿では Pro Tools のADC(Automatic Delay Compensation)の扱い方を見ていきますが、ここで述べる概念はどのDAWでもチェックや診断を行うためのスキルセットと探偵帽を与えてくれます。
バッファサイズ vs レイテンシ補償
バッファサイズとは本当は何か
まず、これらは同じものではありません。バッファサイズを説明するために、私はいつも次の例を使います:
DAWで「Play」を押すたびに、コンピュータの“脳”からスピーカーへデータを要求しています。これをコンピュータからスピーカーに定期的に送られる箱の数だと考えてください。この箱がバッファです。
バッファサイズが小さいほど、コンピュータがスピーカーへ送るためにデータを詰める箱は小さくなります。ある一定時間(例:1秒)内で、コンピュータはより多くの箱を使い、より多くのエネルギーを使って中身を詰め、安全に梱包してスピーカーへ送らなければなりません。箱が小さいので、「Play」を押してから最初の箱が詰め終わって出荷されるまでの時間は非常に短くなりますが、コンピュータは多く働かなければならず(CPU使用率が高くなる)、小さな箱が多く必要になります。現実の梱包作業と同じで、小さい箱はあまり多くを入れられないので、多数の箱、多くのテープ、多くの梱包作業、多くのエネルギーが必要です。
大きなバッファサイズでは、コンピュータは余裕を持って動けます:大きな箱には多くのデータが入り、箱が満杯になったときにだけ閉じて送られます。つまり「Play」を押してから最初の箱がスピーカーに届くまでにより長い時間が経過します。一方で、大きな箱は一定時間(例:1秒)あたりのコンピュータの作業量を減らします。
バッファサイズがワークフローに与える影響
まとめると:
- バッファが小さい:応答性が向上するが、CPU/システムリソースの使用率が増加する
- バッファが大きい:応答性が低下するが、CPU/システムリソースの使用率は低くなる
このため一般的に、録音時は小さなバッファサイズが好まれる(演奏と聞こえる音との間のレイテンシが最小であることが望まれる)一方で、ミックス時は大きなバッファサイズが好まれる(時間にシビアな応答性が不要になり、より多くのプラグインを使いたいときにシステム負荷を緩和できるため)ということになります。
内部処理遅延は別物
では「内部処理遅延」は「バッファサイズ」とどう違うのでしょうか?バッファサイズがシステム全体のパラメータであるのに対し、処理遅延はルーティングやプラグイン、処理チェーンに応じて動的に変化します。ここが手に負えなくなりうるポイントです。
処理遅延とその補償
二つのオーディオトラックを取りましょう:Track Aにはキックとスネアのグルーヴ、Track Bにはベースギターのリフが入っています。ここでは二人組の超一流でグルーヴィーなファンク・デュオが録音したという前提にしましょう。あなたはミックスに座り、Track Aには少しEQ、コンプ、わずかなリバーブを入すべきだと判断します。Track Bはそのままで完璧です。「Play」を押すと結果は素晴らしく聞こえます。その一部はDAWが自動的にプラグインの遅延を補償しているからです。なぜでしょうか?
基本的に、Track A は信号チェーンの終端に到達するまでにより多くの時間を要するからです:Track B はまったく処理されずルーティングを直進しますが、Track A はEQ、コンプレッサー、リバーブを通らなければなりません。
なぜADCが必要か
Automatic Delay Compensation(自動遅延補償)は、Track B が単独でゴールラインを先に通過してしまわないようにします:代わりにTrack B は Track A が到着するまで待ち、全てが揃ったタイミングで一緒にゴールラインを踏むことで、二者間の元のタイミング関係を保持します。
もし DAW にADCがなければ、Track A は時間的に遅れて録音されたかのように聞こえるでしょう。差が大きければドラマーはベースに対して完全にズレて聞こえ、我々の例のようにその二人が有名なファンクバンドなら、このミスでクビになるかもしれません。
遅延問題が入り込む経緯
ADC がどれほど重要かは次の点を考えればすぐわかります:
- トラック数は通常2以上ある
- トータルでプラグインは3つ以上あることが多い
- バスやセンド/リターン用のより複雑なルーティングがある
そして最も重要なのは:音が必ずしも完全におかしく聞こえるわけではないということです。チャンネル間に小さな位相ズレ(例:キックとベースと他のドラム?恐怖!)があるだけで、トラックの中身に基づく判断ではなく技術的な問題に基づいてミキシングの決定を下してしまうことがあります。そしてこのズレはルーティングやプラグインを追加/変更するたびに変わります!これまた恐怖です。
だからこそ、ADCが正しく機能しているか診断する方法を知っておきましょう。
ADCのトラブルシューティングと調整
同じオーディオが入った二つの同一トラックを取り、それらを同じバスにルーティングします。内容は同一のクリップで、例えば1 kHzのサイン波を-20dBfsで使います(実際には同じクリップであれば何でも構いません)。
ヌルテスト法
片方のチャンネルの位相を反転(=極性反転)します。DAWによってはチャンネルストリップにシンプルな "flip phase" ボタンがあるものもありますが、私の Pro Tools にはありません。なので両方のトラックに同じTrimプラグインを入れ、片方だけをバイパスしてもう一方は有効にして位相を反転させます。こうすることで両トラックに同じ処理量を与え、実質的に同一のままに保ちます。
サミングバス(MIXと呼ぶ)にはシンプルな Phasescope プラグインを入れ、極性、レベル、ステレオイメージを確認します。
セッションを再生すると、二つのトラックは互いに打ち消し合い、結果は完全な無音(-無限大)になります。ああ、デジタル領域での1と0の美しさよ。

ルーティングとプラグイン遅延の診断
次に、最初のトラックにプラグインを入れてバイパスにします。これによりプラグイン自体の負荷を追加しますが、音は変化させません。DAWによってはプラグインをバイパスすると処理経路から外される(=CPUに負荷をかけなくなる)ものもあります。私の Pro Tools では、バイパスしてもプラグインはCPU上に“重さ”を残しますが、トラックのオーディオ自体には影響を与えません。
ここで、ADCが正しく働いていれば、結果は依然として完全なヌルになります。これは Track B の方が早く(計算が不要な分)出力されるとしても、Track B は Track A が準備できるまで待機するように要求され、揃って再生されるからです。
もし Pro Tools の ADC をオフ(Setup menu > Delay Compensation のチェックを外す)にすると、Phasescope に残留信号が見えるようになります。つまり二つのトラックが補償されていないことを示しています。
三つ目の例では、Track A を追加の Aux Track を経由させてから MIX バスへ送るようにし、Track B はそのまま MIX に直行させます。ADC が正しく機能していれば補償は続き、結果は完全なヌルであるべきです。

入力モニター中のトラックでADCが失敗する場合
四つ目の例では、Track A を入力モニターがオンの Audio Track を通すようにします。ここで状況が面白くなります。Pro Tools で再生しても信号はヌルになりません。これはバグでしょうか?いいえ、そうではありません。
Pro Tools には通常デフォルトでオンになっている「Auto Low Latency」という機能があります。これは、オーディオトラックを入力モニターまたは録音モードにすると、そのトラックに何かを録音したくなるだろうという前提に基づいています。そして実際にリアルなソース(例:ギタリストがオーバーダブを録る)から録る場合、Pro Tools は演奏者が自分の演奏をタイミングよく聞けるようにできるだけ少ないレイテンシを提供したいと想定します。Auto Low Latency は、入力モニターや録音アーム(緑の「I」や赤いドットがオン)になっているトラックに対して Automatic Delay Compensation のルールを破る(補償を無効にする)ように動作します。
ほとんどの場合、これは望ましい振る舞いです(特にセッションにすでに多くのプラグインが入っている場合)。しかし今回の我々の用途ではそうではありません。トラックを別のトラックにバウンスするなどの操作では、ADC が維持されていることが極めて重要で、正しくモニターしてプリントにコミットできるようにしなければなりません。

Auto Low Latencyモードを無効にする
これを修正するには、該当オーディオトラックの下部にある「delay compensation」ペインへ行きます(表示するには「View > Mix Window」メニューで"Delay Compensation" をオンにしておいてください)。上から順に三つのフィールドは次を示しています:
- そのトラックの合計遅延(サンプル数)
- そのトラックのユーザーオフセット(サンプル数、もしあれば)
- セッション内で最も遅いトラックの遅延と等しくするために必要なそのトラックの合計補償(サンプル数)
通常これらのフィールドはすべて緑色ですが、Pro Tools ではセッション内で最も遅いトラックを強調するためにオレンジになることがあります。赤い場合は、そのトラックが正しく補償されていないことを意味します。各DAWには補償できる最大サンプル数が存在します。
特定のトラックで「Auto Low Latency」モードをオフにするには、Delay Compensation ペインの三つ目、最も下のフィールドを右クリックし、"Auto Low Latency OFF" をクリックします。これで補償フィールドは青色に変わり、そのトラックに対して Low Latency モードが無効化されていることを示します。
今セッションを再生すれば、完全なヌルが確認できるはずです。 期待どおりに動作が戻ります。
この診断は送出/リターンを含むどんな状況でも使えます。基本的には、二つの同一トラック(ただし極性を反対にしたもの)を最終的に合わせたときに完全なヌルが返ってくることを確認すれば良いのです。これは議論の余地がありません:芸術的な選択や作業スタイルの問題ではなく、DAWは技術的・運用的な理由で素材のタイミングを変えてはいけない(事前に録音されたものであれリアルタイム生成であれ)ということです。
ADCとバーチャル楽器
バーチャル楽器(VSTやAUなど)はどうでしょうか?それらが正しく補償されているかをどうやって確かめるのでしょう?正直に言えば完全には確かめられません。我々はソフトウェア開発者を信頼するしかない、というのが通常です。
しかし、見落としてはならないタイプのバーチャル楽器があります:ドラムライブラリやドラム・リプレースメント系のプラグインです。既存のドラムトラックにキックやスネアのサンプルを足す場合、それら二つのサンプルが完全に位相整合されているとどうやって確かめるのでしょうか?

ドラムライブラリが追加の注意を要する理由
この最後の例では、キック、スネア、オーバーヘッドの三つのドラムトラックがあり、元の音は次のようになっています:
もう少し良くできそうです。キックとスネアにもっと力強さが必要に感じ、サンプルで強化したいと思います。そのためにバーチャル楽器を開きます。ここでは私の例として Slate Digital SSD 4 を使いますが、同様のプラグインであれば原理は同じです。
キックとスネアを選んでセッションを再生すると、こんな音になります。かなり良いですね、やりたいことができています。
カオスを避けるためにサンプルをバウンスする
私の最初のチェックは耳で行います。良い感じなのでそのままにします。しかしセッションはすぐに今よりずっと大きくなることが分かっているので、問題が起こる可能性を少しでも減らしたい。だから、バーチャル楽器をそのまま残して頼る代わりに、私はサンプルトラックを実際のオーディオにバウンスすることにします。これによりセッションは自己完結し、将来誰かがサウンドライブラリを持っていないかもしれない、あるいはあなたのミキシングエンジニアがそのライブラリを所有していないかもしれないといった依存を避けられます……そして何より、サンプルの時間が固定され、正確にその位置に留まることを保証できます。
アドバイス: 編曲やソングライティングの段階が終わったら、使えるだけ早くバーチャル楽器を排除してください。私は個人的に MIDI をそれほど信用しておらず、ミックスに入る前によりスリムで整理されたセッションへコミットすることを好みます。
サンプルをプリントするための適切なルーティング
SSD のミキサーでは次のようにルーティングします:
- Kick (direct): Stereo Output 2
- Snare (direct): Stereo Output 3
- 全てのアンビエンストラック(Overheads/roomsなど): Stereo Output 4
次に Pro Tools で3つのステレオオーディオトラックを作成し、それぞれに名前を付け、入力を SSD バーチャル楽器の出力(上で列挙したもの)に設定します。さらに少しルーティングを足して(より多くの要素をテストするため)、これら3トラックをそれぞれ専用のバスに送り、そこから MIX バスへ送ります。
もしこれらのトラックで入力モニタリングをオンにして再生すると、音が変だったりビートがズレて聞こえるでしょう。
これは先ほど説明したとおり、Auto Low Latency を OFF にしていなかったからです。これを修正すると、全てはバウンス前とまったく同じように聞こえるようになります。
私はその後トラックをバウンスし、個別にプリントされたトラックをミックスセッションに追加できる準備ができました。面白いことに、Auto Low Latency が ON のままでもプリント結果は正しく補償されます。理由は Pro Tools がその Low Latency モードをモニタリング側にのみ適用し、内部プリントには適用しないからです(開発者グッジョブ)。

ズレたドラムサンプルの修正
ではドラムトラックを拡大して確認しましょう。サンプル化したスネアは元のスネアと完全に整列して位相も合っている一方で、二つのキックの間には遅れが見られます。これは Automatic Delay Compensation の問題というよりも、バーチャル楽器内部のサンプルに由来する問題です。各ライブラリやエンジンは異なり、サンプルも異なるため結果も異なります。だからこそ最終チェックは常に推奨されます。
実際に実トラックのキックの開始点とサンプル化されたキックの開始点の差を選択してみると、それが72サンプルであることが分かります(グリッドを"Samples" に設定すると Pro Tools のトランスポートに表示されます)。そこでサンプル化されたキックの Delay Compensation ペインの "User Offset" フィールドに "-72" と入力します。
これにより Pro Tools はそのトラックを72サンプル分「前」にシフトするよう指示され、サンプル化したキックが実際のキックに揃います。必ずしも音が良くなるとは限りませんが、チェックする価値はあります。このケースでは、整列させたバージョンの方が良く聞こえ、二つのキックが一つに感じられるようになりました。微妙ですが確かに違いがあります。