# 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 ` 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 ```