Files
settled-reach/docs/sprints/sprint-10/audio.md
T
jpmschweitzerandClaude Opus 4.6 bccdcfcdcb docs(docs): add frontmatter to all sprint briefings
Standardized YAML frontmatter on all 115 sprint briefing files across
sprints 1-26 with title, description, type, status, sprint number, and
team fields.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:15:45 +01:00

4.7 KiB

title, description, type, status, sprint, team
title description type status sprint team
Sprint 10 — Audio Briefing Audio asset set — 8 minimum viable files via Stable Audio Open sprint archived 10 audio

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):

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