Remote Audio I/O(リモート音声I/O)
概要
Remote Audio I/O は、同一LAN上の別のMeasureLab PCに接続されたオーディオデバイスを、測定用の入力またはデュープレックス入出力として使用する機能です。OSの仮想オーディオドライバーではなく、MeasureLabのAudioEngine内部で使用するリモートI/Oです。
測定データのサンプル位置を優先するため、欠損した音声は補間しません。欠損区間は同じ長さのゼロで置き換え、データ欠損として画面に表示します。
リモートPCでの準備
- Settingsで、リモート測定に使用する物理入力・出力デバイス、サンプルレート、バッファサイズ、チャンネルを設定します。
- Remote Audio I/Oを開きます。
- このPCの音声を共有タブを選択します。
- リモート出力も使用する場合に限り、リモート再生を許可を有効にします。
- 共有を開始を押します。既定では、すべてのIPv4 LANインターフェースで待ち受け、自動検出を有効にします。
- 共有開始後に詳細設定を開き、詳細を確認します。別のPCからの接続先には、利用可能なLAN接続先が
アドレス:ポート形式(例:192.168.1.10:40100)で表示されます。 - 既定値を変更する場合は、共有開始前に詳細設定の待受アドレス、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からの接続
- Remote Audio I/Oの別のPCへ接続タブを開きます。
- 利用可能なMeasureLabコンピューターに表示されたリモートPCを選択し、選択したコンピューターに接続を押します。IPアドレスとポートの入力は不要です。
- 自動検出できない場合は、Provider側の詳細設定にある別のPCからの接続先を確認します。クライアント側で詳細設定を開き、表示された接続先のアドレス部分をリモートホスト、ポート部分をUDPポートに入力して、アドレスを指定して接続を押します。たとえば
192.168.1.10:40100の場合は、192.168.1.10と40100を入力します。到達可能なホスト名をIPv4アドレスの代わりに使用することもできます。手動接続も自動検出と同じUDPプロトコルを使用します。 - 固定ネットワークバッファやデュープレックス要求、ネットワークのパケットロスを回復オプションも詳細設定から変更できます。通常は100 msのバッファとパケット回復を有効にして開始してください。パケットの回復は両方のコンピューターが対応している場合のみ機能します。
- 接続後、通常の測定モジュールを開始します。
自動検出ではメイン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を推奨します。
接続や切断の前には、実行中の測定モジュールを停止してください。ネットワーク切断時にローカルのマイクや出力へ自動的に切り替わることはありません。