35 MIDIファクトシート

オーディオエンジンへの取り組みに連動して、Abletonでは、LiveのMIDIタイミングの分析にも取り組み、必要な箇所を改良しています。 Abletonは、信頼性があり正確なコンピューターベースのMIDI環境の構築に関する問題をユーザーが理解できるよう、また、これらの問題を解決するためのLiveのアプローチを説明するため、このファクトシートを作成しました。

注: この文書で議論されるMIDIタイミングの問題は、通常、高品質のオーディオ・ハードウェアおよびMIDIハードウェアをご使用の場合には当てはまりません。 ご使用のスタジオにおいて最適化への対策がすでに充分なされている場合や、MIDIタイミングの問題が見られない場合、この情報に目を通す必要はありません。

35.1 理想的なMIDI動作

デジタル・オーディオ・ワークステーション(DAW)でMIDIがどのように作用するかを理解するためにも、参考となる用語と概念についていくつか紹介しておきます。 DAWでは、3種類のMIDIに関連するシナリオを実行できます。

  1. 「レコーディング」とは、MIDIノートとコントローラー情報を、ハードウェア・デバイス(MIDIキーボードなど)からDAWへ保存用に送信することをいいます。 最適なレコーディング環境であれば、ソングのタイムラインに合わせて、オーディオ・レコーディングのように正確にこの情報を完璧なタイミング精度で取り込むことができます。
  2. 「プレイバック」とは、DAWを扱う際の2つの関連するシナリオをいいます。 1つのシナリオには、MIDIノートとコントローラー情報をDAWからハードウェア・デバイス(シンセサイザーなど)へ送信することが含まれます。 2つ目のシナリオには、Operatorシンセサイザーなどのプラグイン・デバイスにより再生される際、保存されているMIDI情報をオーディオ・データへコンピューター内で変換することが含まれます。 どちらのケースでも、理想的なプレイバック環境であれば、保存されている情報が完璧に再現されます。
  3. 「プレイスルー」とは、MIDIノートとコントローラー情報をハードウェア・デバイス(MIDIキーボードなど)からDAWへ送信してから、リアルタイムでハードウェア・シンセサイザーまたはプラグイン・デバイスへ戻すことをいいます。 理想的なプレイスルー環境であれば、ピアノなどの物理的なインストゥルメントと同様に正確で高感度になります。

35.2 MIDIタイミングの問題

コンピューターベースのMIDIは複雑であり、非常に多くの要素が含まれているため、上記のような理想的なシステムを構築するのは不可能です。 2つの基本的な問題があります。

  1. 「レーテンシー」とは、システムに内在する一定した遅延をいいます。 これは、DAW特有の問題です。 デジタル・オーディオは、オーディオ・インターフェースからまたはオーディオ・インターフェースへリアルタイムで転送することができず、バッファーが必要になるためです。 たとえばピアノでは、キーが押されてからハンマー機構が弦に触れて音を出すまでの間、いくらかの遅延が生じます。 演奏面から言えば、短時間のレーテンシーはほとんどの場合問題とはなりません。 遅延が一定であれば、演奏者は、他の演奏者にタイミングを合わせ、遅延を補正することができるためです。
  2. 「ジッター」とは、システム内の一定しないランダムな遅延をいいます。 DAW内部では、これは特に問題となることがあります。 システム(MIDI、オーディオ、ユーザーインターフェースなど)内のさまざまな機能は個別に処理されるためです。 情報は、MIDIデータをプラグインのプレイバックに変換するなど、ある処理から別の処理へと移動させる必要があることがほとんどです。 ジッターフリーのMIDIタイミングには、システムを構成するコンポーネント(MIDIインターフェース、オーディオインターフェース、DAW自体)内のさまざまなクロック間において正確な変換がなされる必要があります。 この変換の精度は、使用されるオペレーティング・システムとドライバーのアーキテクチャーなどの要素により異なります。 ジッターが生じると、レーテンシーが生じた場合よりもMIDIタイミングがだらしなくルーズな印象を与えます。

35.3 LiveのMIDIへの対処

MIDIタイミングに対するAbletonのアプローチは、2つの重要な前提に基づいています。

  1. すべてのケースで、ジッターが生じるよりもレーテンシーが生じる方が望ましい。 レーテンシーは一定で予見可能であるため、コンピューターによる操作や人的な操作により比較的簡単に扱うことができます。
  2. レコーディング中にプレイスルーを使用している場合、レーテンシーのため再生から少し遅れて聞こえる場合でも、聞こえる結果を録音します。

Liveは、MIDIタイミングが敏感・正確で一貫して信頼できるものになるよう、レコーディング、プレイバック、プレイスルーに特有の問題を処理します。 Liveセットのタイムラインの正しい位置へ着信イベントを録音するには、MIDIキーボードからこれらのイベントが受信された正確な時間を、Liveが検知している必要があります。 しかし、Liveはイベントを直接受信することはできません。 イベントは、まずMIDIインターフェース・ドライバーとオペレーティング・システムにより処理される必要があります。 この問題を解決するため、インターフェース・ドライバーは、MIDIイベントを受信する際に各イベントにタイムスタンプを与えます。 タイムスタンプは、いつイベントがクリップに加えられるかをLiveが正確に検知できるよう、イベントと共にLiveへと送られます。

プレイスルー中、DAWは常にイベントを扱う必要がありますが、これまでにどのイベントが生じたかは、特有のレーテンシーとシステムの遅延により決定されます。 そこで、イベントが受信された時点で再生されるべきか(システム使用中にジッターが生じることがあります)、遅延されるべきか(レーテンシーが加わります)、どちらかを選択する必要があります。 Abletonでは、レーテンシーを加える方を選択しています。ランダムなジッターよりも、一定のレーテンシーを調整する方が簡単であると判断したためです。

レコーディング中のモニターリングがオンになっている場合、Liveは、ご使用のハードウェアのバッファーサイズに基づき、イベントのタイムスタンプにさらに遅延を加えます。 この追加レーテンシーにより、イベントが聞こえた時点で(イベントを再生した時点ではなく)イベントをクリップへ記録することが可能になります。

ハードウェア・デバイスのプレイバックに対して、Liveはタイムスタンプを生成し、MIDIインターフェース・ドライバーと通信して出力されるMIDIイベントをスケジュールしようと試みます。 しかし、Windows MMEドライバーはタイムスタンプを処理できないため、このドライバーを使用するデバイスに対しては、Liveは内部でイベントをスケジュールします。

オーディオのドロップアウトの原因となるシステム負荷が高い状態であっても、Liveは着信されるMIDIイベントの受信を続けます。 オーディオのドロップアウトが生じる場合、プレイスルー中にタイミングエラーやオーディオのひずみが生じることがありますが、LiveはMIDIイベントをクリップに正確に記録します。 その後、システムがドロップアウトから復帰すると、記録されたイベントの再生が正確に行われます。

35.4 Liveがコントロールしきれない要素

一般的に、タイムスタンプは、MIDIイベントタイミングを扱うのに非常に信頼度の高い構造です。 しかし、タイムスタンプは、コンピューター内部のデータにのみ適用されます。 コンピューター外のMIDIデータはこの情報を利用することができないため、外部ハードウェアからまたは外部ハードウェアへ送られるタイミング情報は、スケジュールに沿って処理されるのではなく、受信され次第ハードウェアにより処理されます。 また、MIDIケーブルはシリアルケーブルです。 つまり、一度に1つの情報しか送信できません。 同時に再生される複数のノートをMIDIケーブルを介して同時に送信することはできず、1つずつ順に送信する必要があります。 イベントの密度によっては、これによりMIDIタイミングの問題が生じることがあります。

生じうる別の問題、特に、MIDI黎明期のハードウェア・シンセサイザーを使用している場合に起こりうる問題としては、比較的遅いスキャン時間が生じることがあります。 スキャン時間とは、シンセサイザーが入力があるかどうかそのキーボードを確認する頻度をいいます。 この速度が遅すぎると、ジッターが生じることがあります。

ハードウェア・レベルで存在するこのようなタイミングの問題は、機器がチェーンに加えられるごとに増加します。

コンピューター内であっても、タイムスタンプの精度は、MIDIハードウェアのクオリティ、ドライバー・プログラミングのエラーなどに応じて大きく異なることがあります。 Liveは、着信MIDIイベントに添付されているタイムスタンプが正確であり、送信されるイベントは外部ハードウェアで正確に処理されるとの前提で動作します。 しかし、Liveで上記の状況を確認することは不可能です。

テストと結果

着信MIDIイベントのタイミング検証の手順は、以下の図に示されています。

MIDI入力テスト設定

MIDIソース(ランダムなMIDIイベントの長いシーケンスを再生する他のDAW)の出力は、ゼロレーテンシー・ハードウェアMIDI分配器に送られます。 分配器の出力の一部が、Liveの新規MIDIクリップへ録音されます。 別の部分が、MIDI-to-Audio変換器へ送られます。 このデバイスは、電気信号をMIDIソースからオーディオノイズへと変換します。 このデバイスはMIDIデータを読み取らないため、この変換をゼロレーテンシーで処理します。 変換器の出力は、その後Liveの新規オーディオクリップへ録音されます。 最適なシステムでは、MIDIクリップ内の各イベントはオーディオクリップ内の対応するイベントと同時に発生します。 そのため、2つのクリップ内のMIDIイベントとオーディオイベントの間のタイミングの差異が計測され、Liveの精度を決定します。

さまざまな条件下でMIDIパフォーマンスを評価するため、価格帯の異なる3つのオーディオ/MIDIコンボ・インターフェース(すべて有名メーカーの製品)を用いてテストを実施しました。 これらのインターフェースは、それぞれA・B・Cとしています。 全部で36のテスト設定に対して、macOSおよびWindowsマシン上で約50%のCPU負荷で実施されました。 どちらも44.1および96 kHzで、3つの異なるオーディオバッファーサイズを使用しています。

Windowsの場合

  • インターフェースA:最大ジッターは+/-4msで、ジッターの大部分は+/-1msで生じました。
  • インターフェースB:ほとんどのテストで、最大ジッターは+/-3または4msでした。 96kHzと1,024サンプルバッファーでは、いくつかのイベントで+/-5msのジッターが生じました。 44.1kHzと512サンプルバッファーでは、いくつかのイベントで+/-6msのジッターが生じました。 すべてのケースにおいて、ジッターの大部分は+/-1msで生じました。
  • インターフェースC:ほとんどのテストで、最大ジッターは+/-5msでした。 96kHzと512サンプルバッファーでは、いくつかのイベントで+/-6から8msのジッターが生じました。 44.1kHzと1,024サンプルバッファーでは、いくつかのイベントで+/-10msのジッターが生じました。 すべてのケースにおいて、ジッターの大部分は+/-1msで生じました。

Macの場合

  • インターフェースA:44.1kHzと1152サンプルバッファーでは、+/-4から11msのジッターがほぼ均等に分散されました。 他のほとんどのテストで、最大ジッターは+/-5msでした。 すべてのケースにおいて、ジッターの大部分は+/-1msで生じました。
  • インターフェースB:ほとんどのテストで、最大ジッターは+/-4または5msでした。 44.1kHzと1,152サンプルバッファーでは、+/-2から11msのジッターがほぼ均等に分散されました。 すべてのケースにおいて、ジッターの大部分は+/-1msで生じました。
  • インターフェースC:すべてのテストで、最大ジッターは+/-1msで、ほとんどのイベントではジッターは生じませんでした。

以下の図の通り、出力されるMIDIイベントのタイミングの検証についても同様の手順で行いました。

MIDI出力テスト設定

すべてのケースで、出力テストでは入力テストと同等の結果が生じました。

35.5 最適なMIDIパフォーマンスを得るには

Liveで最適なMIDIパフォーマンスを得たいユーザーのために、推奨される実行内容とプログラム設定をリストアップしました。

  • ご使用のオーディオ・ハードウェアで選択可能な最小バッファーサイズを使用する。 オーディオバッファーコントロールはLive環境設定の[Audio]タブにあり、ご使用のハードウェアの種類により異なります。 詳しくは、レッスン「オーディオ入力/出力の設定」をご参照ください。
  • MIDIタイムスタンプができるだけ正確に生成・処理されるよう、最新のドライバーと高品質MIDIインターフェースを使用する。
  • ハードウェア・デバイス(外部シンセサイザーなど)を直接聞きながらMIDIを録音する場合(External Instrumentデバイスを介してLive経由でデバイスのオーディオを聴いているのでない場合)、トラック・モニターリングをオンにしない。 同様に、別のMIDIデバイス(ドラムマシンなど)で生成されたMIDIデータを録音中にトラック・モニターリングをオンにしない。 モニターリングがオンだと、Liveはレーテンシーを加えてプレイスルーのジッターを補正します。 そのため、実際にプレイスルーしている場合にのみモニターリングをオンにしてください。

35.6 まとめ

すべてのケースで、出力テストでは入力テストと同等の結果が生じました。

  • コンピューター・ベースのMIDIシステムに特有の問題
  • Liveで生じる問題解決への私たちのアプローチ
  • その他の要素

先に説明したとおり、ご使用のスタジオにおけるMIDIタイミングの問題を解決する一番の方法は、できるだけ高品質のハードウェア・コンポーネントを使用することです。 このようなコンポーネントをご使用の場合、ソフトウェアMIDIシステムで大きな問題が生じることはありません。 最適とはいえないハードウェアをご使用の場合、Liveはジッターを最小限にすることで精度を向上することはできますが、多少のレーテンシーが生じます。

MIDIタイミングへのLiveのアプローチに関しては、ぜひこのシートをご参照くださいhttps://www.ableton.com/ja/help/参照) 。また、その他のご質問については、メールにてぜひお気軽にお問い合わせください。