midnight-static / src /midnight_static /showcase_scripts.py
cajpany's picture
Upload folder using huggingface_hub
888ebed verified
Raw
History Blame Contribute Delete
6.8 kB
"""Hand-authored showcase scripts for distinct instant reruns."""
from __future__ import annotations
from .schema import CastMember, Delivery, Genre, Line, MusicPlan, Scene, Script, VoiceID
def phone_booth_script() -> Script:
script = Script(
title="The Case of A Phone Booth That Rings Under",
logline="A diver answers a ringing phone booth on the ocean floor.",
genre=Genre.WEIRD,
cast=[
CastMember("announcer", "The Announcer", VoiceID.ANNOUNCER, "Warm, precise."),
CastMember("diver", "Mara Vale", VoiceID.INGENUE, "A salvage diver low on air."),
CastMember("operator", "The Operator", VoiceID.VILLAIN, "A voice from a dry exchange."),
],
scenes=[
Scene(
title="Below The Pier",
sfx=["deep water pressure", "distant bell buoy", "soft radio static"],
lines=[
Line("announcer", "Tonight, the tide brings us a telephone call from below.", Delivery.BOOMING),
Line("diver", "Control, I have eyes on the booth. It is standing upright in the silt.", Delivery.URGENT),
Line("operator", "Number, please.", Delivery.DEADPAN),
Line("diver", "No. No, that line is not connected to anything.", Delivery.WHISPER),
],
),
Scene(
title="The Dry Voice",
sfx=["rotary dial underwater", "air tank alarm"],
lines=[
Line("operator", "You placed the call when you opened the door, Miss Vale.", Delivery.SLOW),
Line("diver", "I never told you my name.", Delivery.AGITATED),
Line("announcer", "Listeners near the coast are advised not to answer public telephones after midnight.", Delivery.DEADPAN),
],
),
],
music=MusicPlan(
genre=Genre.WEIRD,
opening_sting="submerged vibraphone and low brass",
bed="slow sonar-like organ pulse",
closing_sting="descending unresolved chime",
),
estimated_seconds=72,
)
script.validate()
return script
def lighthouse_script() -> Script:
script = Script(
title="The Case of Two Rival Lighthouse Keepers One Light",
logline="Two keepers argue over a lamp that has begun warning ships from the future.",
genre=Genre.NOIR,
cast=[
CastMember("announcer", "The Announcer", VoiceID.ANNOUNCER, "Station narrator."),
CastMember("keeper_roe", "Elias Roe", VoiceID.DETECTIVE, "Old keeper, salt-bitten."),
CastMember("keeper_bell", "Jonah Bell", VoiceID.ELDER, "Rival keeper with a ruined laugh."),
],
scenes=[
Scene(
title="The Lantern Room",
sfx=["gale wind", "lantern glass rattle", "wooden stair creak"],
lines=[
Line("announcer", "On Black Gull Rock, two men kept one light and too many grudges.", Delivery.BOOMING),
Line("keeper_roe", "You trimmed the wick too high again, Bell.", Delivery.DEADPAN),
Line("keeper_bell", "That was not me. The lamp turned itself toward the reef.", Delivery.AGITATED),
Line("keeper_roe", "There is no ship out there.", Delivery.SLOW),
Line("keeper_bell", "Not yet.", Delivery.WHISPER),
],
),
Scene(
title="The Ship That Hasn't Sunk",
sfx=["fog horn", "distant hull groan", "thunder crack"],
lines=[
Line("keeper_roe", "The logbook says a wreck at 2:13. It is only 1:40.", Delivery.URGENT),
Line("keeper_bell", "Then for once in your life, help me be early.", Delivery.BOOMING),
Line("announcer", "By dawn, the sea had one less ghost and the keepers one less reason to hate.", Delivery.SLOW),
],
),
],
music=MusicPlan(
genre=Genre.NOIR,
opening_sting="hard brass hit over storm drums",
bed="tense noir strings under wind",
closing_sting="muted trumpet over foghorn",
),
estimated_seconds=80,
)
script.validate()
return script
def wrong_bride_script() -> Script:
script = Script(
title="The Case of A Wedding Where Every Guest Recognizes",
logline="At a grand wedding, every guest knows the bride, except the groom.",
genre=Genre.COMEDY,
cast=[
CastMember("announcer", "The Announcer", VoiceID.ANNOUNCER, "Cheerful radio host."),
CastMember("groom", "Arthur", VoiceID.COMIC, "Panicked groom."),
CastMember("bride", "The Bride", VoiceID.INGENUE, "Confident stranger."),
CastMember("aunt", "Aunt Pearl", VoiceID.ELDER, "Family authority."),
],
scenes=[
Scene(
title="The Processional",
sfx=["wedding organ flourish", "crowd murmur", "camera flash"],
lines=[
Line("announcer", "We join St. Bartholomew's at the exact moment Arthur notices the bride is wrong.", Delivery.BOOMING),
Line("groom", "That is not Clara.", Delivery.WHISPER),
Line("aunt", "Arthur, do not be rude. That girl taught you to ride a bicycle.", Delivery.DEADPAN),
Line("groom", "I met her twelve seconds ago.", Delivery.URGENT),
Line("bride", "Thirteen, darling. I cherish every moment.", Delivery.NEUTRAL),
],
),
Scene(
title="Something Borrowed",
sfx=["church bell", "suppressed laughter", "paper rustle"],
lines=[
Line("groom", "Reverend, the vows have my handwriting.", Delivery.AGITATED),
Line("bride", "You always were romantic in a crisis.", Delivery.SLOW),
Line("aunt", "If the cake recognizes her, I am satisfied.", Delivery.DEADPAN),
Line("announcer", "And listeners, the cake did. That was the troubling part.", Delivery.BOOMING),
],
),
],
music=MusicPlan(
genre=Genre.COMEDY,
opening_sting="bright wedding organ sting with brushed snare",
bed="light pizzicato comedy bed",
closing_sting="comic organ button",
),
estimated_seconds=78,
)
script.validate()
return script
SHOWCASE_SCRIPT_FACTORIES = {
"phone_booth": phone_booth_script,
"lighthouse": lighthouse_script,
"wrong_bride": wrong_bride_script,
}