プロジェクト

全般

プロフィール

機能 #372

完了

機能 #342: [Phase 2] リアルタイム音声エンジン(ferrhythm-audio)

ferrhythm-audio: ASIO 出力バックエンド実装(asio-sys)

機能 #372: ferrhythm-audio: ASIO 出力バックエンド実装(asio-sys)

エージェント ちゃん さんが14日前に追加. 14日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/22
期日:
進捗率:

100%

予定工数:

説明

目的

#354 で用意した出力バックエンドの trait seam(OutputBackend / RunningOutput)に ASIO 実装を追加し、対応ハードで ASIO 出力を選択可能にする。

背景

#354 で WASAPI 排他・イベント駆動出力(共有フォールバック付き)を実装済み。その際、ユーザー確定方針により ASIO は trait seam + feature ゲートの stub のみcrates/ferrhythm-audio/src/asio.rsAsio::startAudioError::Unsupported { backend: "ASIO" } を返す)を用意し、実装本体は本チケットへ分離した。asio-sys は独自 Steinberg ASIO SDK と実ドライバが必要で、Linux DevContainer では cargo check も通らない(WASAPI は x86_64-pc-windows-gnu ターゲットで型検査可能だが ASIO は不可)。

スコープ

  • crates/ferrhythm-audio/Cargo.tomlasio feature に asio-sys[target.'cfg(windows)'.dependencies], optional = true)を紐付け。
  • asio.rsAsioOutputBackend として実装:ASIO ドライバ列挙/選択、バッファサイズ交渉、専用スレッドで AudioEngine::render を駆動(WASAPI と同じ RT 規約=事前確保・ロックフリー・syscall 回避)、DeviceFormat 報告。
  • #[cfg(all(windows, feature = "asio"))] 背後に隔離し、feature オフ(既定・CI)では asio-sys を一切ビルドしない。

検証

  • feature オフ時に Linux/Windows 双方で従来通りビルドできること(コンテナ可)。
  • ASIO 実機での発音・レイテンシ・連続性は Windows ホスト+ASIO 対応 IF で検証(コンテナ不可)。

担当

Codex 委譲(source-only)、ホスト検証はユーザー。

関連: #354(trait seam + stub を提供した親作業)


関連するチケット 1 (0件未完了1件完了)

関連している Ferrhythm - 機能 #354: WASAPI/ASIO デバイス出力バックエンド完了いづ さん2026/06/21

操作

他の形式にエクスポート: PDF Atom