Skip to content

Media Distribution

Audio and video Nodes need the actual media files locally before they can play them. Runtime tells a Node to "play thunder.wav" — the Node looks for that file in its local media storage. If the file isn't there, the cue fails.

This document explains how to get media files onto every Node before showtime.

How files get to Nodes

Each Node has a media upload endpoint reachable over the venue network. The simplest workflow:

  1. Centralize all media on the Runtime PC in a folder per role (audio/, video/)
  2. Use the IMMERSE Media Push tool (bundled with Runtime in v0.2; available on request before then) to copy files to every Node
  3. Or for v0.1.x: contact support@immersecontrol.com for the Media Push utility

The tool handles parallelism, retries, and verification automatically. You don't need to address each Node individually.

Folder structure on the Runtime PC

Organize media on the Runtime PC like this:

C:\Shows\
├── current-show.ishow                ← the show file
├── media\
│   ├── audio\                        ← all audio files referenced in cues
│   │   ├── ambient-1.wav
│   │   ├── thunder.wav
│   │   └── ...
│   └── video\                        ← all video files
│       ├── intro.mp4
│       ├── loop-act-1.mp4
│       └── ...
└── logs\

The push tool reads from this layout and distributes:

  • All files in media/audio/ to every audio Node
  • All files in media/video/ to every video Node
  • (GPIO Nodes don't need media)

When the designer changes media mid-rehearsal

This will happen. Workflow:

  1. Designer hands you updated audio/video files (and a new .ishow if cue references changed)
  2. Update your local media/ folder on the Runtime PC
  3. Run the Media Push tool — it syncs the new files to every Node
  4. If the .ishow changed, update it on the Runtime PC and reload Runtime

Total time: ~5 minutes for typical updates, longer if you've added a lot of new media.

Time estimates

Over a typical gigabit show network:

  • 1 GB of media to 1 Node: ~10 seconds
  • 10 GB to 50 Nodes in parallel: 2-5 minutes (the push tool runs concurrent transfers)
  • USB-stick fallback (per Node): 30-60 seconds per stick swap

File requirements

Filenames must match exactly

Studio writes filenames as the designer typed them. Each Node looks for them as-is in its storage. Common gotchas:

  • Case sensitivity — Thunder.wav is different from thunder.wav. Pick one convention (lowercase recommended) and stick to it.
  • Spaces and special characters — work, but are easy to mistype. Avoid them in production.
  • File extensions — Designer says intro.mp4, you have intro.MP4 — fail.

Supported formats

Audio Nodes:

  • WAV (uncompressed) — recommended
  • MP3, AAC, OGG — supported
  • 44.1 kHz / 48 kHz, 16-bit / 24-bit — all fine

Video Nodes:

  • MP4 (H.264) — recommended
  • HEVC, MOV — supported
  • 1080p plays smoothly; 4K plays smoothly on the high-spec Video Node configuration
  • Test on the actual Node before showtime if using anything unusual

Verifying files reached every Node

After distribution, the easiest verification is to fire one cue per Node from Studio's preview during your pre-show smoke test. Any "file not found" errors surface immediately in the operator dashboard log.

For batch verification, the Media Push tool produces a report listing:

  • How many files were transferred to each Node
  • Total bytes transferred
  • Any failures

Save this report — it's evidence the show is ready.

Storage limits

Each Node has finite local storage:

  • Audio Node: ~25 GB available for media
  • Video Node (standard): ~100 GB available
  • Video Node (high-capacity, ordered separately): ~500 GB available

If your show approaches these limits, contact sales@immersecontrol.com about high-capacity Node configurations.

Don't stream media at runtime

A pattern that seems clever but breaks shows: putting media on a network share and having Nodes stream it during playback. Don't do this. A network glitch during a show causes audio dropouts or stuck video frames. Always transfer files to local Node storage before showtime.