BS-PR-704 - Audio source, listener, buses, and spatial preview authoring #47

Closed
opened 2026-07-10 04:04:44 -04:00 by Rbanh · 1 comment
Owner

Summary

Add the minimum complete audio authoring loop required for game levels.

Scope

  • Audio clip assets and authored source/listener components with stable references.
  • Inspector controls for gain, pitch, looping, autoplay, spatial blend, attenuation, and bus.
  • Viewport source/listener visualizers plus audition/stop controls that do not dirty scenes.
  • Project buses with master/music/SFX defaults and runtime integration hooks.
  • Missing codec/device diagnostics and deterministic headless validation.

Acceptance criteria

  • Dragging an audio clip creates or assigns an audio source.
  • Spatial preview follows the editor camera/listener and stops cleanly.
  • Sources round-trip through scene save and behave the same in PIE.
  • Bus settings persist in project settings and expose extension hooks.
  • Sample scene and component validation tests ship.
## Summary Add the minimum complete audio authoring loop required for game levels. ## Scope - Audio clip assets and authored source/listener components with stable references. - Inspector controls for gain, pitch, looping, autoplay, spatial blend, attenuation, and bus. - Viewport source/listener visualizers plus audition/stop controls that do not dirty scenes. - Project buses with master/music/SFX defaults and runtime integration hooks. - Missing codec/device diagnostics and deterministic headless validation. ## Acceptance criteria - [x] Dragging an audio clip creates or assigns an audio source. - [x] Spatial preview follows the editor camera/listener and stops cleanly. - [x] Sources round-trip through scene save and behave the same in PIE. - [x] Bus settings persist in project settings and expose extension hooks. - [x] Sample scene and component validation tests ship.
Rbanh added this to the M7 - Content production and shipping milestone 2026-07-10 04:04:44 -04:00
Rbanh added the
type:feature
priority:P1
roadmap:production
area:audio
labels 2026-07-10 04:04:44 -04:00
Author
Owner

Production acceptance completed.

Evidence:

  • 39 focused audio tests pass across editor, game, scene, settings, and shared. Creation/assignment is covered by operator tests; live assignment also produced the expected history entry.
  • Full core library regression suite passes: 257 tests, with one intentional manual migration fixture ignored.
  • Preview lifecycle covers editor-camera tracking, explicit Stop, Play entry, source removal, listener removal, failed loads, natural completion, and non-dirty cleanup. Live editor audition, Stop, PIE playback, and Edit restoration passed.
  • Source descriptors round-trip and hydrate/reset in PIE; listener selection is deterministic by priority then stable actor ID.
  • Bus defaults, persistence, validation, parent routing, gain/mute hooks, and cycle/reference rejection are covered.
  • cargo validate-levels: 34 dependencies, one informational Solari fallback finding, zero blocking errors. Both the deterministic OGG fixture and the user-imported MP3 resolve.
  • Development package refreshed successfully: 1 file written, 27 reused, with both clips and audio_authoring_showcase.scn.ron present in package metadata. The packaged showcase previously launched with an active stereo PipeWire stream and a non-silent direct capture.
  • Strict Clippy, cargo fmt --all -- --check, and git diff --check pass.
  • Permanent contract and workflow docs: ADR 0030 and docs/editor/audio-authoring.md.
Production acceptance completed. Evidence: - 39 focused audio tests pass across editor, game, scene, settings, and shared. Creation/assignment is covered by operator tests; live assignment also produced the expected history entry. - Full core library regression suite passes: 257 tests, with one intentional manual migration fixture ignored. - Preview lifecycle covers editor-camera tracking, explicit Stop, Play entry, source removal, listener removal, failed loads, natural completion, and non-dirty cleanup. Live editor audition, Stop, PIE playback, and Edit restoration passed. - Source descriptors round-trip and hydrate/reset in PIE; listener selection is deterministic by priority then stable actor ID. - Bus defaults, persistence, validation, parent routing, gain/mute hooks, and cycle/reference rejection are covered. - `cargo validate-levels`: 34 dependencies, one informational Solari fallback finding, zero blocking errors. Both the deterministic OGG fixture and the user-imported MP3 resolve. - Development package refreshed successfully: 1 file written, 27 reused, with both clips and `audio_authoring_showcase.scn.ron` present in package metadata. The packaged showcase previously launched with an active stereo PipeWire stream and a non-silent direct capture. - Strict Clippy, `cargo fmt --all -- --check`, and `git diff --check` pass. - Permanent contract and workflow docs: ADR 0030 and `docs/editor/audio-authoring.md`.
Rbanh closed this issue 2026-07-11 01:55:51 -04:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Falling-Metal-Interactive/Blacksite#47
No description provided.