4.8 KiB
🎵 INTRO AUDIO GUIDE
How to Add Voice & Music to Intro Sequence
Created: January 10, 2026
Status: Ready for audio files
📁 REQUIRED AUDIO FILES
1. AMBIENT SOUNDS (Background Loops)
Location: /assets/audio/ambient/
Files needed:
-
noir_ambience.ogg- Constant low noir drone (dark atmospheric hum)- Length: Loop (10-20 seconds)
- Volume: Low (intro uses 0.15)
- Style: Dark, mysterious, bass-heavy ambient
- Example: Deep synth pad, noir detective atmosphere
-
projector_loop.ogg- Old film projector sound- Length: Loop (5-10 seconds)
- Volume: Medium-low (intro uses 0.2)
- Style: Mechanical clicking, film reel aesthetic
- Example: Vintage film projector, subtle mechanical rhythm
2. VOICE TRIGGERS (Optional Narration)
Location: /assets/audio/voiceover/
Files needed (Kai's voice):
kai_memory_01.mp3- "Nekoč smo imeli barve..."kai_memory_02.mp3- "Potem je prišla tema..."kai_memory_03.mp3- "In ostal sem sam... z luknjo v glavi."
Voice specs:
- Character: Kai (young adult male, 25 years old)
- Emotion: Melancholic, nostalgic, tired
- Language: Slovenian
- Accent: Neutral Slovenian
- Delivery: Slow, reflective, ADHD energy (slightly rushed at times)
🎙️ HOW TO GENERATE VOICES
Option A: Edge-TTS (Free, AI)
Use Edge-TTS for instant voice generation:
# Install Edge-TTS
pip install edge-tts
# Generate voices
edge-tts --text "Nekoč smo imeli barve..." --voice sl-SI-PetraNeural --write-media assets/audio/voiceover/kai_memory_01.mp3
edge-tts --text "Potem je prišla tema..." --voice sl-SI-RokNeural --write-media assets/audio/voiceover/kai_memory_02.mp3
edge-tts --text "In ostal sem sam... z luknjo v glavi." --voice sl-SI-RokNeural --write-media assets/audio/voiceover/kai_memory_03.mp3
Best Slovenian voices:
sl-SI-RokNeural- Male, maturesl-SI-PetraNeural- Female, clear
Option B: Manual Recording
- Use Audacity or QuickTime to record
- Read scripts slowly, emotionally
- Export as MP3 (128kbps minimum)
- Place in
/assets/audio/voiceover/
🎵 HOW TO GET AMBIENT AUDIO
Noir Ambience (noir_ambience.ogg)
Option 1: Generate with AI
- Use: Suno AI, Beatoven.ai, or AIVA
- Prompt: "Dark noir ambient drone, deep bass, mysterious atmosphere, loopable"
Option 2: Freesound.org
- Search: "noir ambient" or "dark drone"
- Filter: CC0 or Attribution license
- Download and convert to .ogg
Option 3: Create in DAW
- Use: Audacity, GarageBand, FL Studio
- Add: Deep bass synth pad (50-100 Hz)
- Add: Subtle noise (brown noise at 10%)
- Export: OGG format
Projector Loop (projector_loop.ogg)
Option 1: Freesound.org
- Search: "film projector" or "reel loop"
- Download 8mm or 16mm projector sounds
- Convert to .ogg
Option 2: Sample Pack
- Kenney.nl - Free SFX packs (Mechanical/Vintage)
- BBC Sound Effects Library (Public Domain)
🔧 CONVERT TO OGG FORMAT
Using FFmpeg:
# Install ffmpeg (if needed)
brew install ffmpeg
# Convert MP3 to OGG
ffmpeg -i input.mp3 -c:a libvorbis -q:a 4 assets/audio/ambient/noir_ambience.ogg
# Convert WAV to OGG
ffmpeg -i input.wav -c:a libvorbis -q:a 4 assets/audio/ambient/projector_loop.ogg
✅ TESTING AUDIO
After adding files:
-
Place audio files in correct folders:
/assets/audio/ambient/noir_ambience.ogg/assets/audio/ambient/projector_loop.ogg/assets/audio/voiceover/kai_memory_01.mp3
-
Run game:
npm start -
Watch intro - audio should play automatically!
-
If audio doesn't play:
- Check console for errors
- Verify file names EXACTLY match (case-sensitive!)
- Check file formats (.ogg vs .mp3)
- IntroScene will NOT crash if files missing (safe loading!)
🎯 QUICK START (Minimal Audio)
Don't have time? Start with JUST ambient:
-
Download free noir drone:
-
Convert to OGG and place in
/assets/audio/ambient/noir_ambience.ogg -
Leave voice empty - intro works without it!
-
Add projector sound later for extra polish
📝 CURRENT STATUS
✅ Code ready - IntroScene.js loads all audio
❌ Files missing - Need to add audio files
✅ Safe loading - Game won't crash without audio
✅ Folders created - /ambient/ and /voiceover/ exist
💡 TIPS
- Audio is OPTIONAL - Intro works visually without it!
- Start simple - Add ambient first, voices later
- Keep files small - OGG compression is good
- Loop seamlessly - Ambient should loop without clicks
- Match emotion - Kai's voice should sound tired but determined
Next step: Add audio files and test! 🎬💜🎆