---
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/<modul>/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/<modul>/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/<modul>/assets/music/<lowercase-kebab-name>.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
