Files
novafarma/docs/INTRO_AUDIO_GUIDE.md
2026-01-20 01:05:17 +01:00

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, mature
  • sl-SI-PetraNeural - Female, clear

Option B: Manual Recording

  1. Use Audacity or QuickTime to record
  2. Read scripts slowly, emotionally
  3. Export as MP3 (128kbps minimum)
  4. 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:

  1. 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
  2. Run game:

    npm start
    
  3. Watch intro - audio should play automatically!

  4. 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:

  1. Download free noir drone:

  2. Convert to OGG and place in /assets/audio/ambient/noir_ambience.ogg

  3. Leave voice empty - intro works without it!

  4. 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! 🎬💜🎆