メインコンテンツまでスキップ

ADR-008: Zero-Latency Mode

Context

音楽セッション用途において、30ms以上の遅延は演奏の心地よさを損なう。 日本国内光回線(RTT 10-25ms)での使用を主な対象として、アプリケーション起因の遅延を限りなく0msに近づける必要がある。

現在の仕様(ADR-003等)ではアプリ起因遅延 < 10ms を目標としているが、これでは光回線越しのセッションで総遅延が30msを超える可能性がある。

技術的背景

アプリ起因遅延の内訳(従来: 128samples、48kHz時):

処理遅延
音声キャプチャバッファ2.67ms
エンコード/デコード~1ms
ジッタバッファ(最小1フレーム)2.67ms
再生バッファ2.67ms
合計~9ms

これを限りなく0msに近づけるには、各コンポーネントの遅延を最小化する必要がある。

Decision

「zero-latency」モードを新設し、以下の設定を適用する:

パラメータ遅延
フレームサイズ32 samples0.67ms(入出力各)
ジッタバッファパススルー(0フレーム)0ms
コーデックPCM 32-bit float0ms
FEC無効0ms
PLC即時繰り返し(ルックアヘッドなし)0ms

結果として達成される遅延

処理遅延
音声キャプチャバッファ0.67ms
エンコード0ms(PCM)
パケット化< 0.1ms
ジッタバッファ0ms(パススルー)
デコード0ms(PCM)
再生バッファ0.67ms
合計(片道、アプリ起因)~1.5ms

動作要件

zero-latency モードの使用には以下が必要:

  1. オーディオインターフェース: ASIO(Windows)またはCoreAudio排他モード(macOS)対応
  2. ネットワーク: 有線LAN接続(WiFiはジッタが大きく非推奨)
  3. 回線: 光回線同士(日本国内RTT 10-25ms想定)

プリセット定義

zero-latency:
frame_size: 32 samples
jitter_buffer_mode: passthrough
jitter_buffer_min_frames: 0
codec: pcm_f32
fec_enabled: false
plc_mode: instant_repeat

Consequences

メリット

  • アプリ起因遅延を ~10ms から ~1.5ms に削減(約85%削減)
  • 日本国内光回線での総遅延を20ms以下に抑えられる可能性
  • 遅延がほぼネットワークRTTのみになり、体感が大幅に改善

デメリット・トレードオフ

  • 帯域増加: PCM 32-bit float は ~1.54 Mbps/ch 必要
  • ジッタ耐性なし: ネットワークの揺らぎが直接音声途切れに繋がる
  • ハードウェア要件: 32samples対応のASIO/CoreAudioインターフェースが必要
  • WiFi非対応: 事実上、有線LAN必須

他のプリセットとの関係

プリセットアプリ起因遅延用途
zero-latency~1.5ms国内光回線セッション(新規)
ultra-low-latency~5msLAN内ジャム
balanced~15ms一般的なネット環境
high-quality~25ms録音・高速回線

関連ADR

  • ADR-003: 音声コーデック選択(PCM/Opus/FLAC)
  • ADR-005: 音声処理なし方針(AEC/NS/AGC排除)
  • ADR-006: FEC戦略(zero-latencyでは無効化)