NOTES.md: Hang-Fix und Song-Rendering-Uebergabe dokumentiert
This commit is contained in:
@@ -1190,3 +1190,47 @@ Brausen klingt: melden, dann probieren wir als naechste Kandidaten TITEL-Song2
|
||||
|
||||
Beide Fixes committet + gepusht. Naechster Schritt weiterhin offen: echtes
|
||||
Gameplay (Tony auf `W1L0` bewegen).
|
||||
|
||||
## 23.07.2026 -- Hang-Bug gefixt + alle 19 TFMX-Songs fuer Stefan gerendert
|
||||
|
||||
**1) Hang-Bug (Stefans Meldung "nur noch ein schwarzes Bild, verschiebe ich
|
||||
das Fenster wird der Desktop reingerendert, das Programm haengt"): real,
|
||||
gefunden, gefixt, verifiziert.** Ursache: `tfmx_audio.render_wav()` rief den
|
||||
TFMX-Renderer als blockierenden `subprocess.run()` auf -- bei einem frischen,
|
||||
ungecachten Song (v.a. TITEL, ~109s Musik) dauert das reproduzierbar ~14s,
|
||||
waehrend derer die pygame-Eventloop NICHT lief. Das OS stuft ein Fenster
|
||||
ohne Event-Pumping als "nicht reagierend" ein -- exakt Stefans beschriebenes
|
||||
Bild (schwarz eingefroren, Desktop blitzt beim Verschieben durch).
|
||||
Fix: `preload_all_audio()` rendert jetzt alle 3 benoetigten Songs (Rauser-
|
||||
Sting, Factor5-Sound, Titelmusik) EINMALIG vor der eigentlichen Sequenz, per
|
||||
Hintergrund-Thread + responsivem "Lade..."-Bildschirm
|
||||
(`render_audio_with_loading()`). Danach greifen alle `run_once()`-Durchlaeufe
|
||||
nur noch auf fertige WAV-Pfade zu, nie mehr Live-Rendering im Hauptloop.
|
||||
Verifiziert per Xvfb-Testlauf (`SDL_AUDIODRIVER=dummy`, `--once`): laeuft
|
||||
jetzt exit-code-0 sauber durch, kein Haengen mehr.
|
||||
Committet+gepusht (`73b887e`). Nebenbei `__pycache__/` ins `.gitignore`
|
||||
aufgenommen (`8509cbc`).
|
||||
|
||||
**2) Alle 19 TFMX-Songs gerendert, als MP3-Zip an Stefan uebergeben (NICHT
|
||||
ins Git-Repo, gleiche Begruendung wie bei raw/PCKELL.DAT -- ist Original-
|
||||
Spielmaterial/Musik, nur als Download fuer den Privatgebrauch, siehe
|
||||
`tfmx_audio.py`-Docstring und `.gitignore`):**
|
||||
- `TITEL.TFX`: song0 (=`TITEL.mp3`, 109s, aktuell die Titelmusik),
|
||||
song1 (109s, bisher ungenutzt), song2 (~8s, bisher ungenutzt)
|
||||
- `TITEL2.TFX`: song0 (=Rauser-Sting, 2.04s), song1 (=aktuell als
|
||||
Factor5-Sound eingebaut, 2.40s -- NICHT durch Reinhoeren verifiziert,
|
||||
nur aus der Songlaenge geschlossen, siehe Vorbehalt vom 22.07.)
|
||||
- `ONGAME2.TFX`: 14 Songs (song0-13), vermutlich echte Level-/Gameplay-
|
||||
Musik, noch keinem Screen/Level zugeordnet
|
||||
19 WAVs -> MP3 (ffmpeg, libmp3lame, konvertiert um die Downloadgroesse von
|
||||
~300MB WAV auf ~59MB MP3 zu druecken) -> Zip, an Stefan uebergeben.
|
||||
Dateinamen im Zip = `<TFX-Name>[_song<N>].mp3` (song0/Default ohne Suffix).
|
||||
**Stefans Aufgabe:** reinhoeren und mir sagen, welche Datei WIRKLICH nach
|
||||
Factor5-Brausen klingt -- falls es NICHT `TITEL2_song1.mp3` ist, dann in
|
||||
`intro_sequence.py`/`run_once()` den `audio_paths.get(('TITEL2', 1))`-Call
|
||||
auf die richtige Datei/song_index umstellen (Kandidaten laut Laenge:
|
||||
`TITEL_song2.mp3` ~8s, oder ein kurzer ONGAME2-Song).
|
||||
|
||||
Naechster Schritt weiterhin offen: echtes Gameplay (Tony auf `W1L0` bewegen).
|
||||
Sobald Stefan den richtigen Factor5-Song bestaetigt hat, kurzer Fix, dann
|
||||
weiter zu Gameplay.
|
||||
|
||||
Reference in New Issue
Block a user