Rauser-Fade-Bug (Alpha-Cutout), Musik-Laenge-Bug (real_song_end-Erkennung) und Factor5-Melodie gefixt
This commit is contained in:
+21
-2
@@ -35,9 +35,28 @@ def _ensure_binary():
|
||||
subprocess.run(['bash', os.path.join(_PLAYER_DIR, 'build.sh')], check=True)
|
||||
|
||||
|
||||
def render_wav(container, name, seconds=20, force=False):
|
||||
def render_wav(container, name, seconds=180, force=False):
|
||||
"""container: kellogg_formats.DATContainer; name: z.B. 'TITEL' (ohne Extension).
|
||||
Gibt den Pfad zur gerenderten (gecachten) WAV-Datei zurueck."""
|
||||
Gibt den Pfad zur gerenderten (gecachten) WAV-Datei zurueck.
|
||||
|
||||
WICHTIG (Fix 22.07.2026 abends): `seconds` ist nur noch eine Sicherheits-
|
||||
OBERGRENZE, keine Ziel-Laenge! render_tfmx erkennt das natuerliche Song-
|
||||
Ende/den Loop-Punkt selbst (tfmx.h real_song_end) und schneidet dort ab --
|
||||
z.B. ist TITEL tatsaechlich ~109s lang, ONGAME2 ~123s, TITEL2 (der Rauser-
|
||||
Sting) nur ~2s. Vorher wurde hart bei `seconds` abgeschnitten, was TITEL
|
||||
(mit frueher genutzten 60s) VOR dem echten Songende kappte -- das war der
|
||||
Bug hinter "Musik ist zu kurz, da fehlt der Rest". Der Default hier (180s)
|
||||
ist bewusst grosszuegig ueber die laengsten bekannten Stuecke hinaus
|
||||
gewaehlt, damit nichts abgeschnitten wird; im Normalfall stoppt render_tfmx
|
||||
laengst vorher von selbst.
|
||||
|
||||
ACHTUNG Cache: der Dateiname ist rein `<name>.wav` OHNE den seconds-Wert.
|
||||
Wird `seconds` also mal kleiner gewaehlt als die echte Songlaenge (z.B.
|
||||
fuer einen bewusst kurzen Teaser), MUSS `force=True` gesetzt werden, sonst
|
||||
liefert diese Funktion den ggf. laenger/kuerzer gerenderten alten Cache-
|
||||
Treffer zurueck, egal was `seconds` diesmal sagt -- genau das hat den
|
||||
urspruenglichen Bug mit ausgeloest (ein alter 8s-Debug-Render von TITEL
|
||||
blieb liegen und wurde stillschweigend weiterverwendet)."""
|
||||
os.makedirs(_CACHE_DIR, exist_ok=True)
|
||||
out_path = os.path.join(_CACHE_DIR, f'{name}.wav')
|
||||
if os.path.exists(out_path) and not force:
|
||||
|
||||
Reference in New Issue
Block a user