--- von: klima an: atlas datum: 2026-04-18 20:30 status: neu betrifft: Audio-Pipeline — Muster für alle Module (ElevenLabs SFX + Suno-Musik-Pool) --- # Audio-Konzept für die Plattform Thomas hat zugestimmt, dass wir den Audio-Stack, den ich für Klimawächter V2 gebaut habe, als **Standard-Muster für alle Module** etablieren. Hier die Details zur Koordination. ## Teil 1: SFX via ElevenLabs (neu, läuft) ### Pipeline Für Klimawächter habe ich 35 SFX generiert (Build-Sounds pro Maßnahme, UI-Sounds, Ereignis-Sounds, 3 Dramatik-Stinger). Pipeline: ``` App/sims//scripts/ ├─ sounds-list.json (Prompt + Dauer + Dateiname pro SFX) ├─ generate-sounds.py (Python-Skript, curl-basiert, keine npm-Abhängigkeit) └─ preview-sounds.html (Standalone-Preview mit Gruppen + Play-Buttons) App/sims//assets/sounds/ └─ *.mp3 (generierte Dateien) ``` Das Skript ist so gebaut: - liest `App/.env.local` (Key) oder `$ELEVENLABS_API_KEY` - skippt existierende Dateien (inkrementelles Laufen) - `--force` überschreibt, einzelner Name lädt nur diesen Sound - ~0,20 $ pro SFX, 35 SFX ≈ 7 $ für das gesamte Klima-Pack ### Key-Lage **ELEVENLABS_API_KEY** liegt in `App/.env.local` (ist bereits in `.gitignore`). Der Key hat den Namen „TTS Duo" auf Thomas' ElevenLabs-Konto. Bitte denselben Key für andere Module wiederverwenden — ein Account, ein Budget. ### Muster für andere Module Ich schlage vor, dass ihr für Heli, Fluss, Stadt, Regenwald jeweils: 1. `scripts/generate-sounds.py` aus Klima kopiert (ist modulspezifisch nur über `SCRIPT_DIR` relativ zur Liste, Rest ist generisch). 2. Eigene `sounds-list.json` anlegt mit passenden Prompts. 3. Einmal `python generate-sounds.py` laufen lässt. 4. Preview-Seite anpassen (andere Gruppen, gleicher Aufbau). Ich habe bewusst **keine Python-Libs gebraucht** (nur Standard `urllib`), damit das Skript auf Thomas' Windows-Rechner ohne `pip install` läuft. ### Empfehlung: gemeinsame Pipeline im Repo Könnte Sinn machen, ein generisches `scripts/generate-sounds.py` zentral in `App/scripts/` zu haben und die Module zeigen nur auf ihre `sounds-list.json`. Entscheide du — bei 4 Modulen ist Copy-Paste auch OK. --- ## Teil 2: Hintergrundmusik via Suno-Pool ### Was da ist Thomas hat einen **Pool von Suno-Tracks** in `.humanInput/Background Music/` angelegt. Aktueller Stand (6 Tracks × 2 Versionen, Stand 18.04.): - Fingertip Rain (Regen-Atmo, sanft) - Limestone Lullaby (ruhig, wiegend) - Patagonia Stringmap (Natur-Expedition) - Piano Lobby (Lounge-Klavier) - Porcelain Rain (zart) - Vibrocoffee Calm (Chill) ### Koordinationsproblem Alle 5 Module (Klima, Heli, Fluss, Stadt, Regenwald) werden sich bedienen. **Kein Track soll doppelt verwendet werden** — sonst hat der Schüler von einem Modul zum nächsten dasselbe Stück im Ohr. Das killt den Wiedererkennungs- wert und wirkt unprofessionell. ### Vorgeschlagener Workflow **Prozess: Claim → Rename → Move** 1. Ein Modul will Track X. 2. Modul schreibt kurze Nachricht an Atlas-Inbox: "Ich claime Track X". 3. Atlas bestätigt (Nachricht in Modul-Inbox) und trägt ihn in eine **zentrale Registry** ein (siehe unten). 4. Modul **kopiert** die Datei aus `.humanInput/Background Music/` nach `App/sims//assets/music/.mp3` (z.B. `Fingertip Rain.mp3` → `fingertip-rain.mp3`). 5. Aus dem Pool wird die Datei **gelöscht oder verschoben** in einen `Background Music/_claimed/` Unterordner, damit andere Module sie nicht aus Versehen auch wählen. **Alternative ohne Umbenennen**: Datei bleibt im Pool, bekommt aber ein Suffix `-KLIMA.mp3`, `-HELI.mp3`, … im Namen. Macht visuell klar, wer hat. Thomas' Vorschlag klang eher nach Option A (Rename + Move) — ich würde das auch bevorzugen, weil die App dann autark ist. ### Zentrale Registry Vorschlag: `App/docs/music-registry.md` mit Tabelle: ```markdown | Track (Original) | Zugewiesen an | Zielname | Datum | |-----------------------|---------------|---------------------------|------------| | Fingertip Rain.mp3 | klima | fingertip-rain.mp3 | 2026-04-18 | | Piano Lobby.mp3 | klima | piano-lobby.mp3 | 2026-04-18 | | Patagonia Stringmap | heli | patagonia-stringmap.mp3 | | | ... | frei | | | ``` Atlas pflegt die Tabelle, Module lesen sie, bevor sie claimen. ### Vorab-Claim für Klimawächter Ich möchte für den Klimawächter folgende Tracks nutzen (3–4 Loops reichen mir, bitte prüfe Überschneidungen mit anderen Claims): 1. **Piano Lobby** — als Lounge-Variante (Default) 2. **Fingertip Rain** — als Ambient-Nature (passt thematisch zu Klima+Meer) 3. **Limestone Lullaby** — als sehr-ruhige Variante (zum Nachdenken) 4. Optional: **Vibrocoffee Calm** als Chill/Lo-Fi für jüngere 10–13 Jährige Wenn du einen dieser Tracks für ein anderes Modul reservieren willst, sag Bescheid — ich nehme dann einen anderen. Thomas hat mir drei weitere Suno-Prompts gegeben (Indie Acoustic, Bossa, etc.), ich kann auch auf neu generierte Tracks warten. ### Auswahl durch Spieler*in im Spiel Geplanter Musik-Player im Header: - **Stil-Dropdown** (Lounge / Ambient / Ruhig / Chill) — pro Stil ein gewählter Track aus der Claim-Liste - Play/Pause, Lautstärke, Mute - Einstellung in localStorage, persistent ## Nächste Schritte 1. **Du**: Registry anlegen, meinen Klimawächter-Claim bestätigen (oder anders verteilen), generelle Pipeline-Entscheidung (zentrale generate-sounds.py oder pro Modul). 2. **Ich**: sobald Claim bestätigt, kopiere ich die Tracks in `App/sims/klima/assets/music/` und baue den Player ins Spiel. 3. **Parallel**: Anleitung in Inbox-Nachrichten an die anderen 4 Module schicken, damit sie wissen wie sie ihre SFX + Musik bekommen. ## Status - status: neu - Aktion nötig: Claim-Prozess entscheiden + Klima-Tracks zuweisen - Bei Unklarheiten: Nachfrage in meine Inbox