コンテンツにスキップ

Remote Audio I/O(リモート音声I/O)

概要

Remote Audio I/O は、同一LAN上の別のMeasureLab PCに接続されたオーディオデバイスを、測定用の入力またはデュープレックス入出力として使用する機能です。OSの仮想オーディオドライバーではなく、MeasureLabのAudioEngine内部で使用するリモートI/Oです。

測定データのサンプル位置を優先するため、欠損した音声は補間しません。欠損区間は同じ長さのゼロで置き換え、データ欠損として画面に表示します。

リモートPCでの準備

  1. Settingsで、リモート測定に使用する物理入力・出力デバイス、サンプルレート、バッファサイズ、チャンネルを設定します。
  2. Remote Audio I/Oを開きます。
  3. このPCの音声を共有タブを選択します。
  4. リモート出力も使用する場合に限り、リモート再生を許可を有効にします。
  5. 共有を開始を押します。既定では、すべてのIPv4 LANインターフェースで待ち受け、自動検出を有効にします。
  6. 共有開始後に詳細設定を開き、詳細を確認します。別のPCからの接続先には、利用可能なLAN接続先がアドレス:ポート形式(例: 192.168.1.10:40100)で表示されます。
  7. 既定値を変更する場合は、共有開始前に詳細設定の待受アドレス、UDPポート、自動検出を許可を設定します。

Windowsでは、共有を開始する前にWindows Defender ファイアウォールの受信規則で、選択したポートへのUDP接続を許可してください(既定: 40100)。TCPの受信規則は不要です。メインPCは先にUDP要求を送信するため、通常はメインPC側に追加の受信規則は不要です。macOSでローカルネットワークへのアクセス確認が表示された場合は許可してください。Linuxでファイアウォールを使用している場合も、Provider側で同じUDPポートの受信を許可します。

接続先が複数表示された場合は、クライアントと同じLAN上のアドレスを使用します。0.0.0.0:40100 で待受中は、すべてのIPv4インターフェースで接続を受け付けることを示します。クライアントに0.0.0.0を入力しないでください。

プロバイダー専用ルーティングとローカル測定モジュール

共有中はRemote Audio I/OにローカルI/Oを提供と表示され、メインウィンドウはプロバイダー専用状態に切り替わります。

  • ステータスはI/Oプロバイダーとなり、モード: 待機中、モード: 入力のみ、またはモード: デュープレックスと表示されます。
  • I/Oルーティングはローカル出力の選択欄ではなく、プロバイダーが保持する経路の表示になるため、変更できません。
  • 待機中はリモートI/Oプロバイダー — クライアント接続待機中と表示されます。
  • 入力のみの接続では物理入力 → リモートクライアント · 物理出力はミュートと表示されます。
  • デュープレックス接続では物理入力 → リモートクライアント · リモートクライアント → 物理出力と表示されます。

共有を開始すると、クライアントの接続待機中を含め、AudioEngineはプロバイダー専用に予約されます。これにより、物理オーディオストリーム、デバイスクロック、サンプル順序、リモート出力の許可を1つの処理だけが管理します。そのため、共有中はローカル測定モジュールが音声処理を登録できません。両方を同時に動作させると、ローカル出力がリモート測定へ混入したり、タイミングの完全性を損なったりする可能性があります。ローカル測定モジュールを再び使用する前に共有を停止してください。

メインPCからの接続

  1. Remote Audio I/Oの別のPCへ接続タブを開きます。
  2. 利用可能なMeasureLabコンピューターに表示されたリモートPCを選択し、選択したコンピューターに接続を押します。IPアドレスとポートの入力は不要です。
  3. 自動検出できない場合は、Provider側の詳細設定にある別のPCからの接続先を確認します。クライアント側で詳細設定を開き、表示された接続先のアドレス部分をリモートホスト、ポート部分をUDPポートに入力して、アドレスを指定して接続を押します。たとえば192.168.1.10:40100の場合は、192.168.1.10と40100を入力します。到達可能なホスト名をIPv4アドレスの代わりに使用することもできます。手動接続も自動検出と同じUDPプロトコルを使用します。
  4. 固定ネットワークバッファやデュープレックス要求、ネットワークのパケットロスを回復オプションも詳細設定から変更できます。通常は100 msのバッファとパケット回復を有効にして開始してください。パケットの回復は両方のコンピューターが対応している場合のみ機能します。
  5. 接続後、通常の測定モジュールを開始します。

自動検出ではメインPCから選択中のUDPポートへIPv4ブロードキャストで問い合わせ、応答したProviderだけを一覧に表示します。通常は両方のPCで既定ポート40100を使用してください。サブネットを越えた検出や、Wi-Fiアクセスポイントのクライアント分離、VPN、ブロードキャストを遮断するファイアウォールには対応しません。その場合でも到達可能なアドレスへの手動接続を利用できます。

Providerがリモート出力を許可していない場合、クライアントがデュープレックスを要求しても入力専用になります。 接続中にリモート再生を許可を無効にすると出力は直ちにミュートされます。入力専用として接続済みのセッションで後から有効にした場合は、安全のため次回接続から適用されます。

校正プロファイルはネットワーク経由で自動転送されません。物理単位を使用する測定では、メインPC側でリモートPCのオーディオインターフェース、ゲイン設定、測定系に対応する校正プロファイルを選択してください。

データ完全性表示

画面上部の通信状態には、接続中に次の情報が表示されます。

  • 欠損フレーム数
  • 欠損、破損、ローカルキューオーバーフローを合計したイベント数
  • 任意の再送機能により回復したフレーム数と、このPCが再送したパケット数
  • データ欠損が現在も増加中か、増加が止まっているか

接続先のデバイスとフォーマット、または共有中の待受先と接続クライアントは、各タブの詳細設定内に表示されます。

データ欠損が増加中ですと表示された測定区間は、完全な測定データとして扱わないでください。表示を確認してからバッファを増やすか、有線LANへ切り替えて再測定してください。

通信と安全性

  • プロトコルv2は、自動検出、接続制御、KEEPALIVE、非圧縮float32 PCM音声を1つのUDPポートで扱います。TCPリスナーは使用しません。
  • メインPCからDISCOVER_QUERYとCONNECT_REQUESTを送信し、Providerはその送信元UDPアドレスへ応答と音声を返します。パケット本文に指定された返信先は信用しません。
  • 接続開始、再生状態、切断などの制御パケットにはACKと同じメッセージIDによる再送があります。両方のPCが対応し、有効にした場合は、固定ネットワークバッファの期限を延長しないAUDIO_NACKにより直近の音声パケットを回復します。
  • KEEPALIVEにより、応答不能になったクライアントがProviderを占有し続けることを防ぎます。
  • 音声パケットにはセッションID、シーケンス番号、絶対サンプル位置、CRCが含まれます。
  • リモートPCのオーディオクロックがセッションのサンプル時間基準になります。
  • 再生位置には固定の先行バッファを使用し、ストリーミング中に遅延量を自動変更しません。
  • 通信は暗号化・認証されません。信頼できるLANでのみProviderを有効にしてください。
  • プロトコルv2はIPv4、mono/stereo、1 Providerあたり1クライアントに対応します。
  • 安定した測定には有線LANを推奨します。

接続や切断の前には、実行中の測定モジュールを停止してください。ネットワーク切断時にローカルのマイクや出力へ自動的に切り替わることはありません。