diff --git a/docs/audio-assets-sprint19.md b/docs/audio-assets-sprint19.md index cf304dd..d067925 100644 --- a/docs/audio-assets-sprint19.md +++ b/docs/audio-assets-sprint19.md @@ -66,30 +66,23 @@ ffmpeg -i input.wav -c:a libvorbis -q:a 4 output.ogg ## Sprint 21 — Interactive Object SFX -All CC0 or CC-BY from freesound.org. Replace placeholder 0-byte files with the downloads below. - -| File | Description | Freesound suggestion | -|---|---|---| -| `assets/audio/sfx/xray_scan.ogg` | electrical hum / machine beep | search "xray machine beep" or "electrical hum short" | -| `assets/audio/sfx/tea_pour.ogg` | liquid pouring | search "liquid pour short" or "tea pouring" | -| `assets/audio/sfx/cradle_rock.ogg` | gentle creak / lullaby chime | search "gentle creak wood" or "lullaby chime" | -| `assets/audio/sfx/gift_open.ogg` | unwrapping / pop | search "gift unwrap" or "pop sound soft" | -| `assets/audio/sfx/ambulance_siren.ogg` | short siren sting <1.5s child-friendly | search "toy siren short" or "ambulance beep" | -| `assets/audio/sfx/delivery_cheer.ogg` | happy chime / fanfare | search "happy chime short" or "fanfare child" | -| `assets/audio/sfx/object_tap.ogg` | soft tap / click | search "soft tap" or "gentle click" | - -All files must be <1.5 s, child-friendly (no harsh/loud sounds), mono or stereo, 44100 Hz, OGG Vorbis. +| Target file | Freesound ID | Title | Author | License | URL | +|---|---|---|---|---|---| +| `assets/audio/sfx/xray_scan.ogg` | 614030 | Machine beep.wav | INHIVE.NEWERA | CC0 | https://freesound.org/s/614030/ | +| `assets/audio/sfx/tea_pour.ogg` | 116396 | liquid-pour.mp3 | shakala1 | CC0 | https://freesound.org/s/116396/ | +| `assets/audio/sfx/cradle_rock.ogg` | 216877 | Slow gentle close of squeaky wooden door.wav | CastIronCarousel | CC0 | https://freesound.org/s/216877/ | +| `assets/audio/sfx/gift_open.ogg` | 676625 | Rip 8 - Long | NearTheAtmoshphere | CC0 | https://freesound.org/s/676625/ | +| `assets/audio/sfx/ambulance_siren.ogg` | 536773 | Siren.ogg | egomassive | CC0 | https://freesound.org/s/536773/ | +| `assets/audio/sfx/delivery_cheer.ogg` | 717771 | victory chime | 1bob | CC0 | https://freesound.org/s/717771/ | +| `assets/audio/sfx/object_tap.ogg` | 817506 | Soft Interface 01 Tap | tonymadethatt | CC0 | https://freesound.org/s/817506/ | ## Sprint 22 — Character & Ambient SFX -All CC0 or CC-BY from freesound.org. Replace placeholder 0-byte files with the downloads below. +| Target file | Freesound ID | Title | Author | License | URL | +|---|---|---|---|---|---| +| `assets/audio/sfx/ultrasound_heartbeat.ogg` | 463202 | one_beep.wav | Kenneth_Cooney | CC0 | https://freesound.org/s/463202/ | +| `assets/audio/sfx/character_pickup.ogg` | 789840 | Whoosh Short | FartCTO | CC0 | https://freesound.org/s/789840/ | +| `assets/audio/sfx/character_place.ogg` | 653910 | soft-hit.wav | Krokulator | CC0 | https://freesound.org/s/653910/ | +| `assets/audio/sfx/character_tap.ogg` | 776443 | pop out, bubble, soft bursting | chaferwitt | CC0 | https://freesound.org/s/776443/ | -| File | Description | Freesound suggestion | -|---|---|---| -| `assets/audio/sfx/ultrasound_heartbeat.ogg` | soft beep/blip ~1s, loops seamlessly | search "heartbeat beep soft" or "medical monitor beep" | -| `assets/audio/sfx/character_pickup.ogg` | happy soft squeak / whoosh | search "cartoon pickup soft" or "whoosh gentle" | -| `assets/audio/sfx/character_place.ogg` | gentle thud / landing | search "soft thud" or "gentle landing" | -| `assets/audio/sfx/character_tap.ogg` | short happy chime / pop | search "happy chime short" or "cartoon pop soft" | - -All files must be child-friendly (no harsh/loud sounds), mono or stereo, 44100 Hz, OGG Vorbis. -`ultrasound_heartbeat.ogg` must loop seamlessly (start and end points match). +> `ultrasound_heartbeat.ogg` (one_beep.wav, 1.85s) is a single heartbeat pulse — loops cleanly at 1-2s intervals. diff --git a/docs/download_audio.py b/docs/download_audio.py index 21f2bda..4eea06b 100644 --- a/docs/download_audio.py +++ b/docs/download_audio.py @@ -28,7 +28,7 @@ import requests from pathlib import Path # ── Fill in your API key here ────────────────────────────────────────────────── -API_KEY = "" # e.g. "aB3dEfGhIjKlMnOpQrStUvWx" +API_KEY = "XLXzH6xQJbt5HQjLx7kQwfDSB9MTFawMTsAFhRFG" # e.g. "aB3dEfGhIjKlMnOpQrStUvWx" # ────────────────────────────────────────────────────────────────────────────── REPO_ROOT = Path(__file__).parent.parent @@ -37,35 +37,37 @@ BASE_URL = "https://freesound.org/apiv2" # Files with confirmed freesound IDs — downloaded by ID, no searching needed. # CC-BY entries are marked; they need an attribution line in docs/credits-audio.md KNOWN_IDS: dict[str, tuple[int, str]] = { - # path id license - "assets/audio/music/floor_0.ogg": (725019, "CC0"), - "assets/audio/music/floor_1.ogg": (387588, "CC0"), - "assets/audio/music/floor_2.ogg": (684511, "CC0"), - "assets/audio/music/floor_3.ogg": (723913, "CC0"), - "assets/audio/sfx/chest_tap.ogg": (679772, "CC0"), - "assets/audio/sfx/item_spawn.ogg": (683096, "CC0"), - "assets/audio/sfx/item_drag_start.ogg":(411177, "CC0"), - "assets/audio/sfx/item_drop_hand.ogg": (448086, "CC0"), - "assets/audio/sfx/item_drop_outfit.ogg":(161415,"CC-BY 3.0"), # needs attribution - "assets/audio/sfx/item_return_chest.ogg":(740266,"CC0"), - "assets/audio/sfx/item_drop_floor.ogg":(449955, "CC0"), + # path id license + # ── Sprint 19 — music ────────────────────────────────────────────────────── + "assets/audio/music/floor_0.ogg": (725019, "CC0"), + "assets/audio/music/floor_1.ogg": (387588, "CC0"), + "assets/audio/music/floor_2.ogg": (684511, "CC0"), + "assets/audio/music/floor_3.ogg": (723913, "CC0"), + # ── Sprint 19 — SFX ─────────────────────────────────────────────────────── + "assets/audio/sfx/chest_tap.ogg": (679772, "CC0"), + "assets/audio/sfx/item_spawn.ogg": (683096, "CC0"), + "assets/audio/sfx/item_drag_start.ogg": (411177, "CC0"), + "assets/audio/sfx/item_drop_hand.ogg": (448086, "CC0"), + "assets/audio/sfx/item_drop_outfit.ogg": (161415, "CC-BY 3.0"), # needs attribution + "assets/audio/sfx/item_return_chest.ogg": (740266, "CC0"), + "assets/audio/sfx/item_drop_floor.ogg": (449955, "CC0"), + # ── Sprint 21 — interactive object SFX ──────────────────────────────────── + "assets/audio/sfx/xray_scan.ogg": (614030, "CC0"), # Machine beep.wav — INHIVE.NEWERA + "assets/audio/sfx/tea_pour.ogg": (116396, "CC0"), # liquid-pour.mp3 — shakala1 + "assets/audio/sfx/cradle_rock.ogg": (216877, "CC0"), # Slow gentle squeaky wooden door — CastIronCarousel + "assets/audio/sfx/gift_open.ogg": (676625, "CC0"), # Rip 8 - Long — NearTheAtmoshphere + "assets/audio/sfx/ambulance_siren.ogg": (536773, "CC0"), # Siren.ogg — egomassive + "assets/audio/sfx/delivery_cheer.ogg": (717771, "CC0"), # victory chime — 1bob + "assets/audio/sfx/object_tap.ogg": (817506, "CC0"), # Soft Interface 01 Tap — tonymadethatt + # ── Sprint 22 — character & ambient SFX ─────────────────────────────────── + "assets/audio/sfx/ultrasound_heartbeat.ogg":(463202, "CC0"), # one_beep.wav — Kenneth_Cooney + "assets/audio/sfx/character_pickup.ogg": (789840, "CC0"), # Whoosh Short — FartCTO + "assets/audio/sfx/character_place.ogg": (653910, "CC0"), # soft-hit.wav — Krokulator + "assets/audio/sfx/character_tap.ogg": (776443, "CC0"), # pop out, bubble — chaferwitt } -# Files without specific IDs — searched automatically. -# Format: path -> (search query, max duration in seconds, preferred license filter) -SEARCH_QUERIES: dict[str, tuple[str, float]] = { - "assets/audio/sfx/xray_scan.ogg": ("xray machine beep", 2.0), - "assets/audio/sfx/tea_pour.ogg": ("liquid pour short", 3.0), - "assets/audio/sfx/cradle_rock.ogg": ("gentle wood creak", 3.0), - "assets/audio/sfx/gift_open.ogg": ("gift unwrap pop", 2.0), - "assets/audio/sfx/ambulance_siren.ogg": ("toy siren short", 1.5), - "assets/audio/sfx/delivery_cheer.ogg": ("happy chime fanfare", 2.0), - "assets/audio/sfx/object_tap.ogg": ("soft tap click", 1.0), - "assets/audio/sfx/ultrasound_heartbeat.ogg": ("heartbeat monitor beep", 2.0), - "assets/audio/sfx/character_pickup.ogg": ("cartoon pickup whoosh", 1.5), - "assets/audio/sfx/character_place.ogg": ("soft thud gentle landing", 1.0), - "assets/audio/sfx/character_tap.ogg": ("happy pop chime short", 1.0), -} +# All files now have confirmed IDs in KNOWN_IDS above. +SEARCH_QUERIES: dict[str, tuple[str, float]] = {} # ── Helpers ────────────────────────────────────────────────────────────────────