- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
audio 領域の TODO 5 件を解消するリファクタ。PCM 変換のメモリ削減、BytePCM の符号バグ修正、プレビュー再生終了検知・フェードアウト改善を、音ずれ・メモリ回帰を避け既存挙動との等価性をテストで保証しつつ実施。併せて audio パッケージの型安全性警告と IDE のビルドパスエラーも解消した。
変更点¶
-
① PCM 変換の単一パス化:
changeChannels().changeSampleRate() の2段変換を単一パス PCM.convert(channels, sampleRate) に集約し中間配列確保を削減(旧2段変換とビット単位で等価)。
-
③ BytePCM 符号統一: 8bit を符号付き中央0に統一しバグ修正、PortAudio ミキサの
-128 バイアス除去、PCM.load の 8bit 経路を ShortPCM フォールバックから BytePCM へ切替。
-
④ GdxSoundDriver.isPlaying: 再生長ベースで実装し非ループプレビューの自然終了を検知(PortAudio の正確判定は維持)。
-
⑤ フェードアウト移設: プレビューのブロッキング sleep ループを AudioDriver の非ブロッキング
fadeout(非同期ワーカー)へ移設。
-
型安全性警告の解消: 生
PCM を PCM<?> 化、不要 import 削除、回避不能な総称型配列キャストは範囲限定の @SuppressWarnings に集約(動作不変)。build.gradle の IDE Groovy パーサ誤検知も解消。
-
IDE ビルドパス修正:
Beatoraja.code-workspace に ../jbms-parser / ../jbmstable-parser を追加し、コンポジットビルドの included build を vscode-java がインポートできるようにして missing required Java project エラーを解消。
- 変更ファイル:
PCM.java, ShortPCM.java, ShortDirectPCM.java, FloatPCM.java, BytePCM.java, AbstractAudioDriver.java, AudioDriver.java, AudioElement.java, GdxSoundDriver.java, GdxAudioDeviceDriver.java, PortAudioDriver.java, PreviewMusicProcessor.java, 各テスト, build.gradle, Beatoraja.code-workspace ほか
テスト¶
-
.\gradlew.bat test : 成功(全スイート green)。convert 等価性・BytePCM 符号/補間・duration ベース isPlaying・fadeout ランプ/キャンセルのユニットテストを追加。
関連 MR¶
- !137 (feature/463 → develop)
- !138 (feature/463-vscode-workspace → develop)