Files
settled-reach/docs/sprints/sprint-9/audio.md
T
jpmschweitzerandClaude Opus 4.6 85a3e87d36 docs(sprints): add Sprint 9 Gauntlet briefing files
Sprint 9 theme: Gauntlet — test infrastructure backbone with test
client binary, Gauntlet rooms 1-3, golden file suite, and client QA
harness. 23 tickets across server (9), client (6), CI (6), audio (2).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 01:32:28 +01:00

72 lines
5.0 KiB
Markdown

# Sprint 9: Gauntlet — Audio Tasks
**Goal:** Build the test infrastructure backbone — test client binary, Gauntlet rooms 1-3, golden file suite, and client QA harness — so every future sprint can be validated end-to-end.
**Branch:** `audio`
**Agents:** Inigo (sound design)
## Carry-over from Sprint 8
| # | Title | Status | Notes |
|---|-------|--------|-------|
| #440 | 6 interaction audio assets — cursor hover, weapon mode, fog recognition, implant, dialogue, confrontation dip | in_progress | In progress with Inigo. Highest priority — complete before starting #453. |
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #453 | Revisit Sprint 7 UI audio assets — trim to target durations and iterate | — (after #440) |
## Key Decisions
- `decisions/architecture.md` — D-068 (5-bus audio architecture: Music, Ambient, WorldSFX, PlayerActions, UISounds; AudioManager directory-scan registry)
- `decisions/architecture.md` — D-073 (zone crossfade: hard tile boundary, 1.5-2s audio tween; `AudioManager.set_zone()` stub exists in `client/scripts/autoloads/audio_manager.gd`)
- `decisions/scope.md` — D-038 (hybrid audio generation: SAO for >200ms organic sounds, manual synthesis for <200ms precise/digital UI sounds; insert-tech vs organic split from D-074)
- `decisions/perception.md` — D-069 (audio dip profiles: dialogue -7dB Ambient; confrontation -11dB Ambient + -5dB WorldSFX + 800Hz low-pass; dip tweens already implemented in AudioManager)
## Notes
### #440 — 6 interaction audio assets
What exists: `client/scripts/autoloads/audio_manager.gd` is fully implemented (D-068, D-069, D-073). It uses a directory-scan registry: drop an `.ogg`, `.wav`, or `.mp3` file into `res://audio/` and it auto-registers by filename stem. No code changes needed to add assets — audio branch can add files independently of client code.
The 5-bus routing is live: `UISounds` bus handles cursor hover and interaction feedback; `Ambient` and `WorldSFX` buses are handled by the dialogue/confrontation dip profiles. `apply_dip("confrontation")` and `apply_dip("dialogue")` are implemented.
What to deliver: 6 audio files committed to the `audio` branch under `res://audio/`:
1. `sfx_cursor_hover.ogg` — subtle UI feedback for cursor landing on an interactable entity. Short (<200ms), precise. Manual synthesis (insert-tech aesthetic per D-074).
2. `sfx_weapon_mode.ogg` — stance shift or mode toggle cue. Digital, clean. Manual synthesis.
3. `sfx_fog_recognition.ogg` — "neural ping" as a previously-unseen entity resolves from grey blob to full color (D-060 cognitive delay completion). Crystalline, directional feel. SAO or manual synthesis.
4. `sfx_implant_open.ogg` — insert/HUD open event. Diegetic tech sound. SAO for organic texture if >200ms; manual for shorter.
5. `sfx_dialogue_start.ogg` — conversation initiates. Subtle, not jarring — dialogue already has the -7dB Ambient dip cue. Avoid competing with voice/text readability.
6. `sfx_confrontation_dip.ogg` — confrontation audio dip accompaniment. This fires when `apply_dip("confrontation")` is called. Should feel like the world narrows — compressed, focused. Plays on UISounds bus.
Gotcha: The AudioManager calls `play()` with the asset filename stem as the key. Asset key must match exactly — e.g., file `sfx_cursor_hover.ogg` is called with `AudioManager.play("sfx_cursor_hover")`. Verify stems before committing.
Duration targets: all 6 are UI sounds (UISounds bus) — keep under 1.0s. Dialogue and confrontation sounds should be especially short to avoid competing with text display timing.
### #453 — Revisit Sprint 7 UI audio assets — trim to target durations and iterate
What exists: Sprint 7 UI audio assets exist in the audio branch under `res://audio/`. They were produced as initial placeholders. Team feedback (Tyre, Gestalt) flagged that some assets exceed target durations or don't fit the insert-tech vs organic aesthetic split from D-074.
What to deliver: Review each Sprint 7 UI asset against the D-038 / D-074 standards:
- `sfx_monologue_chime.ogg` — target 0.5-1.0s, crystalline/neural-lattice feel. Re-synthesize if duration or tone is off.
- `sfx_monologue_chime_urgent.ogg` — sharper variant, same duration range. Must feel distinctly more urgent than the base chime.
- Any other Sprint 7 UI assets — check stems against AudioManager registry, confirm routing to correct bus.
Output: revised assets committed to `audio` branch, replacing the originals. Note which files changed and why in the PR description. If an asset is acceptable as-is, note that too.
## Dependency Chain
```
#440 (6 interaction audio assets) — in progress, complete first
-> #453 (Sprint 7 asset revision, start after #440 is done)
```
## PR Workflow
When ready to submit, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts (see CLAUDE.md "Gitea access" section):
```bash
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(audio): sprint 9 gauntlet — interaction SFX pack and Sprint 7 asset revisions" --description "body" --base main --head audio
```