Add industrial metal soundtrack with seamless loop
- assets/audio/music/zombie_industrial_loop.ogg: 57.60 s Ogg Vorbis loop generated locally with YuE2-3B on the Tesla V100 (score written for this track; vocals removed with HTDemucs). The loop is spliced at the track's structural repeat with a 0.6 s crossfade: measured seam dip <= 1.6 dB. - scripts/main.gd: "Music" AudioStreamPlayer at -11 dB, started at boot on desktop and on the start click on Web (browser autoplay policy). It forces stream.loop at runtime because the Web staging step re-imports the OGG with loop=false. - tools/test_music.gd: soundtrack test (loop, length, volume, playback, still playing after player death). - docs/MUSIC.md: source, loop construction, verification, licence. - docs/WEB-DEPLOY.md: release ab6054111f5919a8 notes. Initial commit of the project.
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
"""Deterministic original blood decal mask (not a Valve asset)."""
|
||||
from PIL import Image, ImageDraw, ImageFilter
|
||||
from pathlib import Path
|
||||
import random
|
||||
rng=random.Random(41)
|
||||
im=Image.new('RGBA',(512,512))
|
||||
d=ImageDraw.Draw(im)
|
||||
for i in range(120):
|
||||
x=rng.gauss(256,70); y=rng.gauss(256,65)
|
||||
radius=rng.uniform(4,48) if i<55 else rng.uniform(2,8)
|
||||
d.ellipse((x-radius,y-radius,x+radius,y+radius),fill=(100+rng.randrange(30),5,8,rng.randrange(155,240)))
|
||||
im=im.filter(ImageFilter.GaussianBlur(0.8))
|
||||
p=Path(__file__).resolve().parents[1]/'assets/effects/blood.png'
|
||||
p.parent.mkdir(parents=True,exist_ok=True)
|
||||
im.save(p)
|
||||
Reference in New Issue
Block a user