Files
splatter-tennis/tools/trailer/SCRIPT.md
T
wuwiandClaude Opus 5.5 2de45510a3 Add a 36-second cutdown of the trailer
cut.py --short builds a social-length version from the same takes: one
line per witness cut inside their takes, then the challengers beat,
"Quiet, please", "Play", the splat and Reg's stinger. Each cut keeps its
own build folder and output file, so cut 2, cut 3 and the short all stay.
words.py gives local Whisper word timestamps for cutting inside lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 11:09:05 +02:00

6.1 KiB
Raw Blame History

LIFETIME MEMBERS — the Splatter Tennis trailer

Vertical 9:16, English, live-action mockumentary ("What We Do in the Shadows" meets a BBC sports documentary). Lightly funny, properly eerie. The dead of ST. MORDRED'S LAWN TENNIS CLUB (est. 1877) are interviewed about how it all started — and every one of them tells a DIFFERENT origin story. The costumes are the game's bosses (Groundskeeper, Line Judge, Chair Umpire, Strawberry Seller, The Champion), so the film introduces the cast before anyone has played a point.

Pipeline: stills gen.py still (gemini-3-pro-image) -> clips gen.py clip (Veo 3.1, native dialogue + ambience) -> score gen.py music (Lyria 3) -> frame graphics in HTML/CSS (frame.html, rendered by headless Chrome) -> cut.py assembles with ffmpeg.

The cast

Who Look (= the game's boss sprite) Origin story
REGINALD MOSS, Head Groundskeeper, 1962 – hulking, bottle-green club blazer with crest, olive work trousers the fertiliser, FORMULA 7
DORIS PENNY, Strawberries & Cream, 1971 – white paper soda-jerk cap, stained apron, tray of strawberries, cream jugs "it wasn't the cream"
CLIVE BARROW, Line Judge, 1974 – huge man, navy/white striped polo, navy cap, dark glasses he never removes the bylaws: lifetime membership
AMBROSE PIKE, Chair Umpire, 1908 – gaunt, cream linen blazer, panama hat, navy tie, gooseneck mic 1911, fifth set, no tie-break
THE CHAMPION bandaged skull, white polo with gold trim, tarnished trophy never speaks

Shot list

COLD OPEN

  1. GATES — dawn fog, wrought-iron gates, sign ST. MORDRED'S LAWN TENNIS CLUB · EST. 1877. Slow push in. Crows. Somewhere in the fog: pok… pok… a rally. Nobody is playing.
  2. COURT — immaculate stripes in fog, a sprinkler ticking. Far baseline: a figure standing perfectly still.
  3. HONOURS BOARD — gilt names, 1877, 1878 … the last line: 1911 — MATCH IN PROGRESS. CARD "Every old club has its traditions." / "Some of them refuse to die." → TITLE "LIFETIME MEMBERS"

THE INTERVIEWS — card: "HOW DID IT START?" 4. REG (potting shed): "Fertiliser. Formula Seven. Lovely green… very persistent." 5. B — a rusty FORMULA 7 tin on dark soil; the grass around it slowly leans toward camera. 6. DORIS (strawberry kiosk): "People say it was the cream. It wasn't the cream. The cream was just… old." 7. B — a cream jug on a doily; the surface of the cream ripples by itself. 8. CLIVE (umpires' room): "It's in the bylaws. Lifetime membership. Nobody ever defined 'lifetime'." 9. B — a leather-bound rule book, a finger traces: MEMBERSHIP SHALL BE FOR LIFE. 10. AMBROSE (high in his chair, fog): "Nineteen-eleven. Fifth set. No tie-break." … "We're still waiting for a result." 11. B — black-and-white archive: two gentlemen in long whites at dusk, scoreboard 112 – 112.

THE TURN — card: "AND THE CHALLENGERS?" (the camera IS the challenger: every stare is at you) 12. DORIS, into the lens: "They never stay long." 13. CLIVE pulls his sunglasses down: milky-white dead eyes. Silent. 14. AMBROSE at the mic: "Quiet, please." — and the score obeys: it stops dead on "please". 15. THE STANDS, in silence: every head bows, then rises to stare into the lens. 16. AMBROSE, now at night under floodlights: "Play." 17. CUT TO BLACK: SPLAT. LOGO — SPLATTER TENNIS. "MATCH IN PROGRESS" (the honours board's 1911 line).

STINGER 18. REG on his knees at dawn, dabbing red off the white baseline with a handkerchief. Looks up: "Lovely day for it." END — logo, "Lifetime membership now open.", the game's own polite applause.

Cut 1 → cut 2 (Oliver, 2026-10-03)

Cut 1 ended on a floodlit match — a living player walks on, the Champion sets down his trophy, a slow-motion serve. Oliver: it "does not really fit … seems odd", conclude earlier on the challengers / "they never stay long" / "Play". Why it was odd: it switched genre from mockumentary to action trailer at the climax, and it was where the generated footage looked most generic. The ending now stays inside the documentary form. The takes (lights, challenger, champion, serve) are still in promo/trailer/clips if a 15-second cutdown ever wants them.

Sound rules that cost a render each

  • Every segment is a whole number of frames, or the audio drifts a sub-frame per cut.
  • Dialogue gain is MEASURED (dlg), never guessed: every line lands at DLG LUFS.
  • Loudness is two-pass loudnorm ... linear=true to -14 LUFS / -1 dBTP. One-pass loudnorm is a compressor and pumped the silence before "Play." back up.
  • No long discrete echoes on an impact: a 0.9 s repeat read as a click on the logo.
  • Encode with -tune grain and a 14 Mb/s cap: the grain made an uncapped crf-16 file 480 MB.
  • QA listening (qa.py, Gemini): trust it on spoken lines and on mix complaints, NOT on its timestamps for music (they drift up to 1.5x) and not on transcripts of non-speech audio (it invents words from footsteps).

Cut 2 → cut 3 (Oliver, 2026-10-05) — 1:45 → 1:30, cut 2 kept as the reference

  • The intro music ran 3 s into Reg's "Fertiliser": it now fades out under "How did it start?".
  • Ambrose lost the end of "...result": cut 2 trusted the QA transcript's 6.6 s; the take's speech envelope says 7.2. Every line end in the EDL is now measured off the take, not the transcript.
  • Tighter everywhere (B-roll 2.2 s, cold open 14 s, shorter cards and logo); the black cards' text is bigger (88/96 px Baskerville, balanced wrapping).

The short (2026-10-05) — 36 s, cut.py --short, beside cut 2 and cut 3

Gates → "How did it start?" → one line per witness, cut inside the takes (Reg: "Fertiliser. Formula Seven." · Doris: "It wasn't the cream. The cream was just… old." · Clive: "Lifetime membership. Nobody ever defined… lifetime." · Ambrose: "1911. Fifth set. No tie-break.") → "And the challengers?" → Doris / Clive's eyes / "Quiet, please." / "Play." → splat → Reg: "Lovely day for it." → end card. No title, no B-roll, no stands. Cut points come from words.py (local Whisper word timestamps) and every cut segment is re-transcribed to prove no word was clipped — Whisper's word ENDS still run early (Clive's "lifetime" ends at 6.0 s, not 5.66), so check the envelope too.