Broadcasting (NDI)
Spectra can stream the live presentation over your local network using NDI (Network Device Interface). Any NDI-compatible software on the same network — OBS, vMix, ATEM Mini, Wirecast, NDI Studio Monitor, etc. — can pick up the feed as a source and drop it into a scene. Up to 4 simultaneous outputs let you ship a clean projector mirror to the booth and a transparent lower-third overlay to the livestream from the same machine.
What NDI is for
Prerequisites
Spectra uses the native NDI SDK / Runtime rather than bundling it, so you need to install it once on the machine running Spectra:
| Platform | What to install | Where Spectra looks |
|---|---|---|
| macOS | NDI SDK for Apple, or NDI Tools | /Library/NDI SDK for Apple/lib, /opt/homebrew/lib, NDI Tools .app bundles |
| Windows | NDI 5/6 SDK or NewTek NDI Runtime | Program Files NDI SDK / NewTek Runtime folders |
| Linux | libndi shared library | /usr/lib/x86_64-linux-gnu/libndi.so |
Tip
Enabling the sender
- Open Settings → Broadcast (NDI).
- If NDI isn't detected, you'll see an “NDI library not found” notice with a link to install it. Install, then reopen the settings panel.
- Toggle Primary on. Spectra announces a source named
“Spectra”on your local network (you can rename it from the source-name field). - Open your broadcast software (OBS, vMix, Studio Monitor, etc.) and add an NDI source. Spectra should appear in the source list — select it.
- The NDI feed mirrors what's on the live presentation screen. When you go live with a verse, the verse appears on NDI too.
Opt-in by default
Auto-start across app launches
Once an output is enabled, Spectra remembers it. The next time the app launches, that output is re-announced automatically so downstream mixers (OBS, vMix) keep seeing a stable source — no manual toggle required after every restart. The popup presentation window and hidden NDI render windows are guarded so they don't double-fire the auto-start.
Multiple outputs (up to 4)
Spectra supports up to four simultaneous NDI outputs. One is fixed — the Primaryoutput mirrors the visible projector and can't be deleted (just renamed or disabled). On top of that you can add up to three render outputs, each backed by its own hidden render window with independent layout, transparency, and text styling.
| Output | What it shows | Typical use |
|---|---|---|
| Primary | Mirror of the visible projector window (always full-bleed). | Sanity-check feed for the booth, lobby monitor. |
| Render 1 | Independent renderer — pick a layout (full / lower-third / upper-third) and toggle transparency. | Transparent lower-third for the OBS livestream. |
| Render 2 | Same as Render 1, but with its own routing and styling. | Sermon-series header on a foyer screen. |
| Render 3 | Same as Render 1. | Alternate-language feed routed to a second mixer. |
Each render output is independently named (the source name receivers see), toggled on/off, laid out, and text-styled. The LivePreview panel shows one thumbnail per enabled output so the operator can see what each receiver is getting at a glance.
Routing schedule items to specific outputs
By default every output renders the currently-live slide. For multi-output setups, each schedule item gets a small chip strip in the schedule list — tap a chip to route that item to a specific output instead of the primary one. Useful when the lower-third overlay should keep showing a sermon reference while the main projector scrolls through worship lyrics.
Render layouts
The Primary output always full-bleeds (it's a mirror of the in-room projector and can't change shape). Each render output picks its own layout from three presets:
| Layout | Where content sits | Best for |
|---|---|---|
| Full | Fills the entire 1080p NDI frame, edge to edge. | Replacing the projector mirror with a transparent variant. |
| Lower third | Pinned to the bottom band of the frame. | Lyrics / verse references under a camera shot in OBS or vMix. |
| Upper third | Pinned to the top band of the frame. | Sermon series titles, station IDs, language tags above b-roll. |
Scripture, song & prayer lower-third backplates
When an NDI output is set to the Lower thirdlayout, Spectra can paint a branded banner behind the live content, anchored into the bottom third of the frame — designed to land cleanly inside a livestream's lower-third strip without needing OBS to composite a separate graphic on top. There are three independent backplates: one for Bible verses, one for song / hymn lyrics, and one for prayer slides, each with its own fill (a banner image or a solid colour), text colour, safe-zone, and on/off switch. Other custom text, media, and documents always render transparent.
- Three banners, one per content type — configure all three in Settings → Broadcast (NDI). The scripture banner ships with a default Spectra design; the song and prayer banners have no default (upload your own — typically the same artwork with the band titled “Songs” or “Prayer” instead of “Scripture”). Each is independent, so you can run a scripture banner while songs and prayers stay transparent, or any mix.
- On / off — each backplate has a master switch. Off, that content broadcasts with a transparent background, positioned in the lower third, so you can composite your own graphic underneath in OBS / vMix. The song and prayer backplates are off by default until you upload a banner.
- Banner image or solid color — each backplate offers two fill modes. Banner image: upload a PNG/JPG/WebP that spans the full frame width, never stretched (aspect ratio preserved), so a wide banner is recommended and PNG keeps any transparency above the band. Background color: skip the upload entirely and paint a solid lower-third bar in any colour — no artwork needed, ideal if you just want a clean coloured strip behind the words. The colour bar also has a Corner radius slider (default 9 px, any size up to 100) to round its corners.
- Text color — set the colour of the verse / lyric / prayer text laid on the backplate, per content type, in both fill modes. So a scripture banner can carry dark text while your song colour-bar carries white, etc.
- Font — pick a typeface per backplate from a web-loaded set (Default / Inter / Raleway / Montserrat / Poppins / Lato / Oswald / Playfair Display). “Default” inherits your global branding font. So scripture can run in an elegant serif while song lyrics use a clean sans, etc.
- Font size — each backplate has its own Font size slider (40–200%, default 100%) that scales the text on that band independently. Handy when, say, scripture needs to sit smaller than your song lyrics on the same lower-third strip. 100% follows the global text size; it multiplies on top of the per-slide A− / A+ and the output's font scale.
- Position the text safe-zone — four sliders tune where the text (and, in colour mode, the bar) sits, with a live preview: Band start (how far down the band begins / how tall the colour bar is), Bottom margin (lifts it off the frame edge), and Left inset / Logo clearance (horizontal margins). The text auto-fits the safe-zone for any length.
- Reveal animation — on by default, the banner reveals from left to right (its width animates in from the left edge) when a new passage or song is presented. It holds steady while you step through consecutive verses (next / previous), so the banner doesn't re-reveal on every verse — only a fresh passage, a new song, or a backplate-kind switch re-triggers it. Turn it off per banner for an instant cut. The reveal streams live over NDI — receivers see the animation, not a snap.
- Marking a prayer slide — build the prayer in the Text Builder and flip the Prayer slide toggle on. It behaves like any custom slide on the in-room projector; the toggle only changes which banner it picks up on an NDI lower-third output.
- Trigger conditions — a backplate shows when its switch is on, it has something to paint (a banner image, or any solid colour in Background-color mode), the NDI output layout is “Lower third”, AND the slide type matches (
biblefor scripture;song/hymnfor the song banner;prayerfor the prayer banner).
Song lyric text on NDI
For song / hymn slides, the NDI render collapses the operator's per-line breaks into a single wrapping paragraphbefore projecting. The reasoning: NDI feeds typically end up in a narrow lower-third strip whose width is decided by the receiver (OBS / vMix scene size), not Spectra. By emitting one continuous block, the lyric reflows naturally to whatever width the consumer gives it — instead of inheriting the in-room projector's line breaks and overflowing the lower-third band.
The visible projector is unaffected; this transform only happens on the NDI render side. Bible verses, custom Text Builder slides, and documents still honor their formatted line breaks.
Branding logo is suppressed on NDI
The branding logo overlay you set in Settings → Presentation → Logo renders on the in-room projector but is deliberately suppressed on every NDI output. Livestream mixers (OBS, vMix, ATEM) almost always composite their own station branding, lower thirds, or sponsor IDs over the NDI feed, so emitting our logo would double up. If your stream team wants the church logo back on the broadcast, they can drag the same PNG into their own OBS / vMix scene as a separate source.
Transparent overlay for compositing
Toggle Transparent on any output and the slide background drops out — Spectra sends only the text (and logo) on a clear alpha channel. Drop this output into OBS or vMix on top of a camera scene and you get clean lyrics-over-video with no opaque box around them, no chroma-key tricks required.
Transparency works on the Primary output too. When enabled there, the in-room projector keeps showing its full branded background while the livestream gets the clean lyrics-only feed off the same source — because the Primary output silently captures a hidden transparent mirror of the live content rather than the visible projector window.
OBS color spaces
Per-output text styling
Each render output owns its own text styling for the NDI feed, totally independent of what shows on the in-room projector. This lets you ship a small dark-text feed to the projector and a big white-text overlay to the camera composite from the same slide.
NDI text is always horizontally centered.A slide's left / right alignment is for the in-room projector; on every NDI output the verse, lyrics, and reference line are centered left-to-right so the feed reads cleanly inside a lower-third strip or camera composite regardless of how the slide is aligned on the main screen.
| Control | What it does |
|---|---|
| Font scale | Multiplier (50–200%) on the operator's slide font size, applied only to this NDI render. 100 = inherit. |
| Text color | Override the text color for this output. Leave blank to inherit from the projector's branding (e.g. dark text on stage, white text on camera composite). |
| Background panel | Optional colored panel behind the text for readability over busy camera footage. Color, opacity (0–100), and horizontal / vertical padding are all configurable. |
| Image scale | Controls how full-bleed media (logos, photos) fit the lower-third / upper-third panel — contain, cover, or fill. |
Output specification
Resolution
Each output is capped at 1920 × 1080 (Full HD) to keep network bandwidth predictable, even if your presentation screen is larger.
Video only
Audio is not sent over NDI. Route church audio through your stream team's normal audio path (mixer, Dante, analog, etc.).
Static content optimization
When a slide changes, Spectra bursts a few frames at 60ms intervals to ensure receivers catch the update, then drops to a 1-second keepalive. Dramatically lower CPU than pushing a continuous 30fps stream of unchanging content.
Source discovery
Sources are announced via standard NDI mDNS discovery on the same subnet. Receivers find them by the source-name you set for each output.
Common setups
OBS streaming (transparent lower-third)
- Install NDI Tools + the obs-ndi plugin on the OBS machine.
- In Spectra, add a Render output, set its layout to Lower third, toggle Transparent on, and name it something like
Spectra Lower Third. - In OBS, add a new source → NDI Source and pick
Spectra Lower Third. - Make sure the source format is BGRA so the alpha channel is preserved.
- Stack it over your camera scene — lyrics now float in front of the camera with no box around them.
vMix switcher (multi-output)
- Enable both the Primary output (full mirror) and a Render output with a Lower third layout.
- In vMix, add two inputs → NDI / Desktop Capture — one per Spectra source.
- Use the full mirror as a fallback fullscreen input, and the lower-third as an overlay channel on top of the camera input.
NDI Studio Monitor (preview)
For a quick sanity check without a full broadcast rig, open NDI Studio Monitor (part of NDI Tools). Right-click and pick the source name you configured (e.g. Spectraor your render output's custom name). You'll see the live presentation feed in the window — useful for confirming a sender is running and a lower-third is positioned correctly before a service.
Troubleshooting
Receivers can't find the source
- Confirm the output is actually enabledin Settings → Broadcast (NDI). The status badge should read “Active.”
- Both machines must be on the same subnet. NDI discovery doesn't cross routers by default.
- Some corporate Wi-Fi networks block mDNS/multicast, which NDI uses for discovery. Try a wired connection or a dedicated worship-team network.
- Temporarily disable firewalls on both machines to rule out port filtering.
- Outputs are mutually exclusive at the OS layer — only one render output can hold a given hidden window at a time. If a render output refuses to enable, check that another one isn't already holding its slot.
“NDI library not found”
This means Spectra couldn't locate a system NDI installation at the expected paths. Install NDI Tools (macOS/Windows) or the libndi package (Linux), then restart Spectra.
Stream shows the wrong slide
Spectra optimizes for static content (keepalives instead of continuous frames). If a receiver connects between slide updates, it may briefly show nothing until the next keepalive frame lands (at most one second). Changing any slide in Spectra immediately pushes a fresh frame burst, which resolves the stale state.
Transparent output shows up opaque
OBS's NDI source defaults vary between plugin versions. If the feed renders with a black box behind the text, switch the source's color format to BGRA. YUV variants strip the alpha channel that Spectra uses to deliver the cutout.