Files
settled-reach/docs/sprints/sprint-10/audio.md
T
jpmschweitzerandClaude Opus 4.6 b4a3784218 docs(sprints): add Sprint 10 Prove briefings
Server (7), client (7), CI (3), audio (1) — 18 tickets total.
Gauntlet expansion, audio wiring, client UX polish, CI pipeline.

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

84 lines
4.6 KiB
Markdown

# Sprint 10: Prove — Audio Tasks
**Goal:** Expand the Gauntlet test suite with new rooms and cross-room scenarios, wire the audio architecture end-to-end, and complete client UX polish from Sprint 9 carry-overs — proving the full system holds together.
**Branch:** `audio`
**Agents:** Inigo (sound design)
---
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #327 | Audio asset set — 8 minimum viable files via Stable Audio Open | — |
Use `db/connectors/ticket show <id>` for full details.
---
## Key Decisions
- `decisions/scope.md` — D-038 (audio in v0.1 — 8 files spec, hybrid generation approach)
- `decisions/perception.md` — D-067 (recognition chime fires at onset of cognitive delay), D-069 (audio dip profiles), D-071 (ListeningFocus boost), D-072 (universal event-driven conversation murmur)
- `decisions/architecture.md` — D-068 (5-bus audio architecture), D-073 (zone crossfade)
- `decisions/content.md` — D-074 (audio aesthetic identity — insert-tech vs organic)
---
## Notes
**#327 — Audio asset set — 8 minimum viable files**
- Existing: `AudioManager` autoload at `client/scripts/autoloads/audio_manager.gd` is fully implemented (D-068). The directory-scan registry pattern is in place — drop OGG files into `res://audio/` and they register automatically. Sprint 9 delivered 6 interaction SFX and 2 revised monologue chimes (#440, #453).
- What this ticket adds: The 8 ambient and world-SFX assets specified in D-038. These are distinct from the Sprint 9 interaction sounds — they cover the continuous soundscape and footstep system.
**The 8 files (D-038):**
| Key | File | Duration | Bus | Method |
|-----|------|----------|-----|--------|
| `amb_station_base` | `amb_station_base.ogg` | 60-90s | Ambient | SAO — station hum + span gate vibration |
| `amb_workplace_layer` | `amb_workplace_layer.ogg` | 45-60s | Ambient | SAO — cargo machinery |
| `amb_bar_layer` | `amb_bar_layer.ogg` | 45-60s | Ambient | SAO — conversation murmur baked in |
| `amb_corridor_layer` | `amb_corridor_layer.ogg` | 45-60s | Ambient | SAO — ventilation/subtle hum |
| `sfx_footstep_metal_walk` | `sfx_footstep_metal_walk.ogg` | 0.2-0.3s | WorldSFX | SAO or manual — one footstep, walk cadence |
| `sfx_footstep_metal_run` | `sfx_footstep_metal_run.ogg` | 0.2-0.3s | WorldSFX | SAO or manual — one footstep, run cadence |
| `sfx_monologue_chime` | `sfx_monologue_chime.ogg` | 0.5-1.0s | UISounds | Manual synthesis — crystalline, neural-lattice feel |
| `sfx_monologue_chime_urgent` | `sfx_monologue_chime_urgent.ogg` | 0.5-1.0s | UISounds | Manual synthesis — sharper, contradiction/anomaly variant |
**D-074 aesthetic split — critical:**
- Ambient layers and footsteps = **organic**: warm, breathy, environmental reverb, natural decay. Use SAO for these.
- Monologue chimes = **insert-tech**: synthetic, precise, clinical, no reverb. Manually synthesize — SAO will produce too organic a character for chimes.
- The Sprint 9 chimes (#453) are acknowledged placeholders. Sprint 10 chimes are the production-quality replacements.
**D-038 amendment (hybrid approach):**
- SAO ceiling is ~47s. Accept 45s loops with crossfade for ambient layers (the `play_loop` method in AudioManager handles this).
- Sounds <200ms with precise/digital character: manual synthesis only.
**Zone crossfade integration:**
- `AudioManager.set_zone()` is currently a stub (D-073). This sprint's audio assets enable testing the stub's behavior. Inigo should verify that `amb_station_base`, `amb_workplace_layer`, `amb_bar_layer`, and `amb_corridor_layer` all loop cleanly with no audible seam — AudioManager's `_enable_loop` will set `loop = true` on OGG streams automatically.
- Full zone crossfade logic (the tween between ambient layers on zone change) is NOT in scope for this sprint — it remains a stub. The assets just need to be present and looping.
**Delivery:**
- Commit all 8 OGG files to `audio` branch under `client/audio/` (which maps to `res://audio/` in Godot).
- AudioManager registers them at startup via directory scan. No code changes to client branch.
- Effort: 3-4d (generation + iteration + mastering).
---
## Dependency Chain
```
#327 (8 audio assets) — standalone; AudioManager stub (D-068) already in client branch
```
---
## 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 10 prove — ambient + world sfx assets" --description "body" --base main --head audio
```