vocal + instrumental seat bench — issue #19
  • Python 68.9%
  • HTML 24.7%
  • Shell 6.4%
Find a file
2026-07-25 17:33:08 -04:00
__pycache__ vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
assets vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
bench vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
meta vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
ace19.py vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
build-pages.py vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
heartmula19.py vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
README.md vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00
run-window19.sh vocal/instrumental bench: two-lane window, clips, metrics, ear picker (#19) 2026-07-25 17:33:08 -04:00

vocal-bench — trog ticket 05.6 (#19)

Vocal + instrumental seat bench, 2026-07-25, on trogdor (4× Quadro RTX 5000 16GB, Turing sm_75). Ear test: assets/pick.html; full matrix + metrics: assets/review.html (mirrored at http://trogdor:3923/games/vocal-bench/assets/). Decisions land in trog's docs/audio-gen-research.md.

What ran

Two lanes in parallel, one model per card — both fit 16GB, so wall time was the slower lane, not the sum: whole window 6 minutes (21:25:46 → 21:31:50), brain down once, restored on exit.

  • GPU 0 — HeartMuLa-oss-3B (fp16, host venv): instrumental lyric-mode probe → BGM A/B → vocal cfg retest. 6/6 produced audio.
  • GPU 1 — ACE-Step 1.5 turbo (production audio image, same mounts as the real seat): the same three BGM briefs. 3/3 produced audio.

Measured findings (before the ear test)

HeartMuLa-oss-3B ACE-Step 1.5 turbo
30s instrumental clip ~50s gen 7.6-7.7s gen
peak VRAM 12.73 GiB 5.77 GiB
load 0.4s (lazy_load; unloads between calls) 10.8s
length reliability 1 of 3 clips died early (1.4s instead of 30s) 3/3 exact 30.0s
60s vocal clip 63-92s gen (cfg-dependent) cannot sing on Turing (NaN, #16)
  • HeartMuLa CAN do instrumental — the empty lyrics mode worked on the first probe; [inst] was never needed. That answers the ticket's first open question yes, with the early-EOS caveat above.
  • The ops gap is ~6.5× time and ~2.2× VRAM against HeartMuLa, so its instrumental has to win clearly on the ear to take the music seat.
  • Higher cfg costs generation time (85s at 2.5, 92s at 3.0 vs 63s for the other case) — adherence, if it improves, is not free.

Ear test (assets/pick.html)

Six slides: three instrumental A/Bs, the folk-rock/male-vocal adherence ladder (cfg 1.5 from #16 vs 2.5 vs 3.0), a quality check that higher cfg didn't wreck the take that already worked, and the seat-split decision. Verdicts get written up here and in docs/audio-gen-research.md.

Recipe

Drivers in bench/ (heartmula19.py, ace19.py, run-window19.sh), all copied from the live run; env + weights stay at /mnt/models/audio-bench on trogdor (see trog-games/audio-model-bench README for the ckpt symlink layout and the torchaudio→soundfile save shim). build-pages.py builds both pages from the run's own meta JSONs.