Audio Generation Status & Production Workflow
Current Status
Narrator Sayings (100 total needed)
- Generated: 15/100 (15%)
- Moloch: 1 file (moloch_01_tragedy.opus)
- Thucydides Trap: 5 files (thucydides_01-05.opus)
- Normal Accidents: 5 files (normal_01-05.opus)
- Technical Debt: 4 files (technical_01, 02, 03, 05.opus) β MISSING: technical_04_pay.opus
- Pending: 85/100 (85%)
- Black Swan: 5 sayings
- Pessimism Induction: 5 sayings
- Planning Fallacy: 5 sayings
- Illusion of Validity: 5 sayings
- Information Hazard: 5 sayings
- Gell-Mann Amnesia: 5 sayings
- Curse of Knowledge: 5 sayings
- Confirmation Bias: 5 sayings
- Survivorship Bias: 5 sayings
- Availability Heuristic: 5 sayings
- Fundamental Attribution Error: 5 sayings
- Value Drift: 5 sayings
- Wireheading: 5 sayings
- Loss Aversion: 5 sayings
- Lindy Effect: 5 sayings
- Path Dependence: 5 sayings
- Plus 2 mystery categories: 10 sayings
Door/Ambient/UI Sounds
- Status: 0/19 files (0%)
- Needed:
- Doors: metal_open, metal_close, wood_open, wood_close, locked, hover_available, hover_preview, hover_locked (8 files)
- Ambient: hallway_loop, void_drone, neon_buzz, footsteps (4 files)
- UI: check_in, complete, transition (3 files)
- Narration: welcome, check_in, complete (3 files) β May already exist in NARRATION dict
Integrated Experiences (3/40 complete)
- β thucydides-trap.html (narration system + audio playback)
- β normal_accidents.html (narration system + audio playback)
- β technical_debt.html (narration system + audio playback)
- β³ Remaining 37 experiences (need narrator sayings wired in)
Production Issues to Resolve
Issue 1: Hardcoded User Paths
Problem: Both bash scripts hardcode /Users/nosos/Public/convergence-protocol paths.
Files affected:
generate_remaining_sayings.sh(line 6)generate_sayings.sh(line 8)
Impact: Scripts wonβt run on any other system without manual editing.
Solution: Make paths relative or environment-variable-based.
Issue 2: Missing Audio Generation Command
Problem: generate_remaining_sayings.sh uses openclaw tts command which may not be installed or configured.
Status to verify:
- Is
openclawCLI tool available? - Is it properly configured with ElevenLabs API credentials?
- What is the actual command signature? (The script assumes
openclaw tts "text" --output filename.opus)
Fallback option: Use generate_audio.py for all audio generation via ElevenLabs API (more portable).
Issue 3: Missing ElevenLabs API Key
Problem: generate_audio.py requires ELEVENLABS_API_KEY environment variable.
Status to verify:
- API key available?
- ElevenLabs account quota remaining? (Estimated cost: ~$2-3 for full audio pack)
- Voice ID for narrator speeches? (Script uses default:
21m00Tcm4TlvDq8ikWAM)
Issue 4: Mixed Audio Generation Methods
Problem: Two different generation paths exist:
generate_audio.py(ElevenLabs API) β for sound effects + narrationgenerate_remaining_sayings.sh(openclaw TTS) β for narrator sayingsgenerate_sayings.sh(openclaw TTS) β alternative for narrator sayings
Decision needed: Which method should be production standard?
Recommendation: Standardize on ElevenLabs API via Python for consistency:
- Single tool, single API key management
- Easier to integrate into CI/CD
- Cross-platform (Windows/Mac/Linux)
- More flexible for different voice settings per experience type
Recommended Production Workflow
Phase 1: Setup & Verification (30 minutes)
- Verify ElevenLabs API key available
- Test ElevenLabs API connection with test request
- Verify account quota sufficient for ~$3 spend
- Check estimated generation time (all 100 sayings + 19 sounds)
Phase 2: Generate Missing Technical_04_pay.opus (5 minutes)
export ELEVENLABS_API_KEY="your-key-here"
python3 generate_audio.py
# Will skip existing 15 files, generate only missing onesOR if using openclaw:
cd assets/audio/sayings
openclaw tts "You will pay. The only question is when, and how much." --output technical_04_pay.opusPhase 3: Generate Remaining 85 Narrator Sayings (10-15 minutes)
Option A - Using portable bash script (new):
export ELEVENLABS_API_KEY="your-key-here"
export SAYINGS_DIR="./assets/audio/sayings"
./scripts/generate_remaining_sayings_portable.shOption B - Using Python (recommended):
export ELEVENLABS_API_KEY="your-key-here"
python3 scripts/generate_sayings_batch.pyPhase 4: Generate Door/Ambient/UI Sounds (5-10 minutes)
export ELEVENLABS_API_KEY="your-key-here"
python3 generate_audio.pyPhase 5: Wire Narrator Sayings into Remaining 37 Experiences (2-3 hours)
Pattern: Copy narrator card HTML/CSS/JS from technical_debt.html and adapt for each experience:
- Create SAYINGS array with 5 sayings per experience
- Add narrator card HTML before restart button
- Add initNarrator() call on conclusion screen
- Test audio playback
Phase 6: Browser Playback Testing (1 hour)
- Test Motel ambient sound + audio toggle
- Test door hover sounds (available/preview/locked states)
- Test door open/close sounds
- Test narrator audio playback in 3 integrated experiences
- Test spatial mixing (multiple sounds playing)
- Verify audio levels (not too loud/quiet)
Phase 7: Polish Audio Levels (30 minutes)
- Tune ambient hallway loop volume
- Adjust door hover sound volume
- Balance narrator voice level with ambient
- Set fade-in/fade-out timings
File Inventory Needed
Narrator Sayings (100 .opus files)
Location: assets/audio/sayings/
Format: {category}_{number}_{slug}.opus
Categories & Files:
- moloch_01-05.opus (5 files)
- thucydides_01-05.opus (5 files)
- normal_01-05.opus (5 files)
- technical_01-05.opus (5 files)
- blackswan_01-05.opus (5 files)
- pessimism_01-05.opus (5 files)
- planning_01-05.opus (5 files)
- validity_01-05.opus (5 files)
- infohazard_01-05.opus (5 files)
- gellmann_01-05.opus (5 files)
- curse_01-05.opus (5 files)
- confirmation_01-05.opus (5 files)
- survivor_01-05.opus (5 files)
- availability_01-05.opus (5 files)
- attribution_01-05.opus (5 files)
- valuedrift_01-05.opus (5 files)
- wirehead_01-05.opus (5 files)
- loss_01-05.opus (5 files)
- lindy_01-05.opus (5 files)
- path_01-05.opus (5 files)
Sound Effects (19 .wav files)
Location: assets/audio/
Doors/ (8 files):
- metal_open.wav
- metal_close.wav
- wood_open.wav
- wood_close.wav
- locked.wav
- hover_available.wav
- hover_preview.wav
- hover_locked.wav
Ambient/ (4 files):
- hallway_loop.wav
- void_drone.wav
- neon_buzz.wav
- footsteps.wav
UI/ (3 files):
- check_in.wav
- complete.wav
- transition.wav
Narration/ (3 files):
- welcome.wav
- check_in.wav
- complete.wav
Estimated Timeline & Costs
Time Investment
- Setup & verification: 30 min
- Audio generation: 30-45 min (mostly waiting for API)
- Testing & integration: 1 hour
- Polish: 30 min
- Total: ~3-4 hours for full audio implementation
Estimated Costs
- 100 narrator sayings @ ~0.30
- 19 sound effects @ ~0.50-$0.80
- Total estimated: ~$1-2 USD
Next Steps
- Immediate: Verify ElevenLabs API key is available
- Then: Choose generation method (Python or bash)
- Then: Execute Phase 1-4 audio generation
- Then: Wire narrator into 37 remaining experiences (can be parallelized)
- Then: Browser playback testing & polish
Related Files
generate_audio.pyβ ElevenLabs API for sound effects + narrationgenerate_remaining_sayings.shβ Bash script for remaining 85 sayings (needs path fix)generate_sayings.shβ Alternative bash script with all 100 sayings/experiences/index.htmlβ AudioManager class (ready for sound file playback)/experiences/thucydides-trap.htmlβ Narrator system (reference template)/experiences/normal_accidents.htmlβ Narrator system (reference template)/experiences/technical_debt.htmlβ Narrator system (reference template)Clue_Design_Document.xlsxβ 40-door challenge mode theme framework (separate from audio)