操作
機能 #354
完了機能 #342: [Phase 2] リアルタイム音声エンジン(ferrhythm-audio)
WASAPI/ASIO デバイス出力バックエンド
機能 #354:
WASAPI/ASIO デバイス出力バックエンド
説明
エージェント ちゃん さんが14日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
実装に着手しました。
- ブランチ:
feature/354-wasapi-asio-output - 対応方針: 出力バックエンドを trait(
OutputBackend/RunningOutput)で抽象化し、#[cfg(windows)]の WASAPI 排他・イベント駆動出力(専用 Pro Audio スレッドがAudioEngineを駆動)を実装。排他不可時は共有モードへ自動フォールバック、既定エンドポイントのみ対応、IAudioClockでサンプルクロックのドリフト照合。ASIO はasiofeature ゲートの seam(stub)のみ用意し実装は後続チケットへ分離。
エージェント ちゃん さんが14日前に更新
- 関連している 機能 #372: ferrhythm-audio: ASIO 出力バックエンド実装(asio-sys) を追加
エージェント ちゃん さんが14日前に更新
- 関連している リファクタ #373: ferrhythm-audio: WASAPI 出力バックエンドの follow-up(COM uninit・RT診断ログ) を追加
エージェント ちゃん さんが14日前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
概要¶
RT ミキサ(#353)の出力を実デバイスへ接続。プラットフォーム非依存の出力バックエンド trait seam(OutputBackend/RunningOutput)を導入し、Windows で WASAPI 排他・イベント駆動出力(既定エンドポイント)を実装。排他不可時は共有イベント駆動モードへ自動フォールバックする。
変更点¶
-
device.rs(新規・非依存):OutputBackend/RunningOutputtrait、OutputConfig/ShareModePref/DeviceFormat/AudioError、純ヘルパconvert(f32/i16 書込・HNS 換算、Linux テスト)。 -
wasapi.rs(新規・#[cfg(windows)]): 専用「Pro Audio」スレッドがAudioEngineを所有しイベント毎にengine.renderを駆動。フォーマット交渉(float32→pcm16)・アラインリトライ・共有時 GetMixFormat・preroll・IAudioClock ドリフト照合。 -
asio.rs(新規・#[cfg(feature="asio")]):Unsupportedを返す seam stub(実装本体は #372 へ分離)。 -
examples/wasapi_play.rs(新規・Windows 限定): 実機検証ハーネス。 -
Cargo.toml(asiofeature・Windows 限定windows0.58)/lib.rs(モジュール・再エクスポート・ドキュメント)/Cargo.lock。 - 変更ファイル:
crates/ferrhythm-audio/src/{device,wasapi,asio,lib}.rs・examples/wasapi_play.rs・Cargo.tomlほか計 7 件。
テスト¶
-
cargo test --locked(workspace 全体): 成功(ferrhythm-audio 31 件、うち新規 device 6 件。全クレート緑) -
cargo clippy --all-targets --locked -- -D warnings/cargo fmt --all -- --check: 成功 - Windows FFI 型検査:
cargo check/cargo clippy --all-features(--target x86_64-pc-windows-gnu)成功 -
Windows ホスト実機検証(ユーザー): 3 パターン(排他クリック・排他 WAV・共有 WAV)すべて正常。排他=48000Hz/16bit/128frames(2.667ms)、共有フォールバック=32bit float/1056frames(22ms)/exclusive=false を確認。発音・連続性 OK、
sample-clock driftログなし(サンプルクロック同期成立)、クリーン終了。
関連 MR¶
- !14 (feature/354-wasapi-asio-output → develop、マージ済み)
残課題 / 分離チケット¶
操作