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>
84 lines
4.6 KiB
Markdown
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
|
|
```
|