MultiMon 1.0 is out for Windows. A macOS build is in development.

MultiMon takes any set of monitors and turns them into one seamless video wall. Load your video and audio, pick a mode, and go fullscreen across every screen you choose. It’s free and open source, and it’s for anyone who needs video across more than one display — VJs, AV techs, theatres, installation artists, and design students alike.

Built to not crash

This is a ground-up rebuild. The earlier version was retired because it could lock up when shutting a show down — the one failure a live tool can’t have. So the rebuild was a stability mission from the first line.

On Windows, MultiMon runs on a persistent Direct3D 11 engine: the graphics pipeline is created once at startup and reused for the whole session. Entering and leaving perform mode only shows and hides windows — it never tears the pipeline down and rebuilds it, which is exactly the pattern that broke the old app. A headless stress harness drives repeated open/close cycles watching for the smallest GPU resource leak, with a bar of zero leak, zero crash, zero wedge. And if the graphics device is ever lost, MultiMon rebuilds it and resumes from the master clock on its own.

The sync model is just as deliberate. There is one master clock, and every source shows the nearest frame at or before master time — dropping or repeating a frame as needed. No speed adjustment, no seek-correction, no source chasing another. A frame you see is always a real frame of the source.

What it does

  • Four modes — Span (one source across every screen it detects, an equal share per screen), Individual (a source per screen, with an optional Sync (frame-lock same-length clips) checkbox), Hap (one HAP clip per screen, all on the one shared clock), and Split (one source cut into a rows-by-columns grid, 2×2 by default, mapped per output by row,col).
  • HAP and HAP Q, written from scratch with no third-party HAP library — BC1 for plain HAP, BC3 for HAP Alpha, and scaled YCoCg in BC3 plus a YCoCg shader for HAP Q. If the GPU can’t take a clip’s texture format, the file goes to Media Foundation instead.
  • H.264 and HEVC, decoded through Media Foundation on Windows, with hardware decode and an automatic software fallback. Containers: mp4, mov, mkv, avi.
  • An inline audio mixer — a master fader and mute, and volume, pan, mute and solo per track, all clocked to the same master timeline as the picture. One output device serves the whole show.
  • .mmproj project files, Convert to HAP (FFmpeg on your PATH — it isn’t bundled) and Identify screens.

Honest about the edges

The Windows build is unsigned, so SmartScreen warns on first run — choose More info, then Run anyway. Code signing is planned. FFmpeg is resolved from your PATH, so install it only from a source you trust. Only open .mmproj files you created. And per-link mixer overrides set during a perform session aren’t saved into the project file yet.

MultiMon needs a Direct3D 11 Feature Level 11.0 GPU and fails at startup without one. It has been run and passed on a two-GPU development box — an NVIDIA RTX 3080 with an AMD integrated GPU — across the full harness matrix, with up to four simultaneous outputs in the stress harness. The real Intel (QuickSync) pass and a multi-vendor rig of four or more screens are still outstanding: both need hardware we don’t have on the bench.

Free & open

MultiMon is EUPL-1.2 licensed, with source on GitHub. The Windows release is self-contained — .NET 9 is bundled, nothing to install. A macOS build is in development: the portable core already builds and passes its tests on a Mac, and the Metal renderer and VideoToolbox decode path are being written.

See MultiMon → · Releases on GitHub →