Skip to content

Implement music, sound, and positional-audio presentation #36

Description

@zoeyrose

Outcome

Deliver robust SDL3 audio presentation from separately licensed sound resources without coupling audio to GPU rendering.

Scope and invariants

  • Own audio device open/change/loss, decode/mix/playback queues, category volume/mute, music transitions, positional attenuation/pan where approved, and application focus behavior.
  • Consume verified resource-provider entries and semantic server/session sound events; never accept executable codecs/plugins from a server.
  • Define overlapping-instance, priority/voice limits, looping, cancellation, map/session transition, reconnect, and shutdown behavior.
  • Preserve asset-specific licenses/attribution in packaging and diagnostics.
  • Provide a fake audio backend/event recorder for headless tests.

Acceptance criteria

  • Tests cover missing/corrupt/oversized files, device hotplug/loss, rapid transitions, duplicate/stale events, voice limit, mute/volume migration, reconnect, and teardown.
  • No sound leaks indefinitely after entity/map/session destruction.
  • Audio queues/memory/voices are bounded and observable.
  • M3 plays representative UI/world/music events through approved assets and still functions with audio disabled/unavailable.
  • Renderer has no audio dependency.

Dependencies and parallelization

Depends on client platform #4, resource #32, and sound provenance/release contracts. Can develop independently of world rendering.

Licensing

Client code/tests are MIT. Legacy reuse requires an audited approved-grantor grant; all other implementation is independent. Content, sound, and graphics retain their exact asset licenses and notices.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions