Storm — Calm
ON SCREEN: Storm — Calm not cast

Pre-show check

Run through this before guests arrive. GO LIVE folds it away — reopen it any time from SETUP, it never interrupts the stage.
Media on this deviceCaching clips & sounds…
Projector connectedNot cast yet — the show can still run on this screen
Aim & focusShow the calibration frame, line it up on the door or wall
Test scareFire The Figure once, watch the door
Sound checkThunder + storm bed at show level — also unlocks audio
Casting? Open HauntFX in Safari first. AirPlay from inside another app's browser can connect and then sit on “loading” forever — the picker works, the stream never starts. Safari routes AirPlay properly. In the Muse app, tap the share icon (or the ••• menu) and choose “Open in Safari”, then cast from there. Everything else — pads, sounds, checklist — works exactly the same. The AirPlay test further down settles which layer is failing on your projector, in Safari, in about a minute.

AirPlay test — find the failing layer

Run these against your real projector, in order. Each test loads its picture onto the stage — then tap CAST (or stay casting) and judge the wall, not the phone. Casting from inside an app's browser can fake-start and stall on “loading”; run the test in Safari for a verdict that counts.

Reference stream — Apple's own test broadcast, the same kind of stream TV apps send. Needs internet. If A never reaches the wall, the route or the receiver is the wall — no app can fix that from inside.
HauntFX storm as HLS — the segmented format AirPlay speaks natively; it's what this app now casts with. If A works but B fails, our stream is at fault.
HauntFX storm as MP4 — the classic single-file hand-off. If B works but C fails, the MP4 hand-off was the bug — and HLS is already the fix.

Reading the results: A fails everywhere (Safari included) → receiver/route problem. A works, B fails → tell Muse, the HLS stream needs work. B works, C fails → cast away — the app uses B automatically. All three work → casting is healthy; the old stall was the browser or the hand-off, both now bypassed.

No jump scaresLocks The Monster, The Face, The Approach and the sequences for mixed crowds. Atmosphere stays live.
Build 2026-10-20 · R6 — masters re-derived · grain vs banding · HLS cast · primary stage
Video & sound credits
Storm plates — lightning over the ocean at night · Pexels · thunderstorm at night · Pexels · smoke on black · Pexels The Monster / The Approach creature — “Zombie, Window, Smash” · Pixabay The Figure — grim reaper approaches a fog-draped tower · Pexels The Face — fear mask in the dark · Pixabay Claws — zombie hands (greenscreen) · Pixabay, keyed & composited over storm fog Eyes — black cat eye macro · Pexels Bats — bats flying in the sky · Pexels, composited over lightning plates The Spider — tarantula crawling on a wall · Pexels, graded to a lightning-lit silhouette Witches — witch crossing the moon · Pixabay Kids rainbow — rainbow over green hills · Pixabay Sounds — ImprovFX Halloween recordings: monster growl, thunder cracks (thunder (bruno.auzet, CC0) bed), ghost scream (Mixkit), three knocks (LaurenPonder, CC0, slowed), wall scratch (Lisa Redfern, PD), footsteps (theshuggie, CC0), rats & chains (Joseph Sardin, CC0), doorknob (JPolito, CC0), vampire bats (felix.blume, CC0), heartbeat, noir rain & rolling thunder. Witch cackle — “Evil Laugh/Cackle (female)” by iainmccurdy, Freesound, CC-BY 4.0. Skittering bugs by Mendenhall02, Freesound, CC0. Music box melody by DRFX, Freesound, CC0. All clips graded & composited into the storm system with ffmpeg.