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 follows the live projector content (rendered transparent, never an opaque mirror) 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 and transparency.
| Output | What it shows | Typical use |
|---|---|---|
| Primary | The same live content as the projector, rendered transparent — text as a lower-third overlay, media full-frame. | The default feed for the livestream mixer. |
| 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 layout. | 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, and laid out. 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
Text content (verses, lyrics, prayers, custom slides) always broadcasts as a band overlay — never full-frame text over the camera. The layout preset decides which band (lower third by default, upper third if you pick it) and how media slides behave:
| Layout | Where content sits | Best for |
|---|---|---|
| Full | Media fills the entire 1080p NDI frame; text still renders as a lower-third overlay. | The default — clean lower-third text plus full-frame images / videos. |
| 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. |
Caption templates
Beyond the default caption chip, Spectra ships caption templates — fully designed broadcast looks for the NDI text overlay, configured in Settings → Broadcast (NDI) → Caption templates. A template is assembled from freely positioned layers on the 16:9 frame: bound text (the live verse / lyric body, and a Bible reference plate that auto-hides for content without a reference), fixed text (hashtags, church name, station IDs), images, and paint-only shapes. Any shape or text box can be filled with a solid colour, a two-colour gradient (with an adjustable angle), and / or an uploaded background image — so you can build a TV-style scripture lower-third with a reference tag plate, a gradient or artwork colour panel, and your stream hashtag, all as one look.
- One template per content kind — Scripture, Song lyrics, and Prayer each pick their active template from a thumbnail gallery. Mix freely: a designed scripture look while lyrics stay on the chip, or any combination. A “Classic caption” tile in each gallery returns that kind to the default chip.
- Target one entity or all — when you create a template you choose what it's for: Scripture only, Song lyrics only, Prayer only, or all content. A single-entity template only shows in that entity's gallery, so editing it changes only that entity — it can never affect the others. An all-content template is a shared design (badged as such); duplicate it to a single entity if you want a private variant. Each gallery also has a “New for …” button that starts a template scoped to that entity.
- NDI-only — templates render only on the NDI feed, never on the in-room projector. The congregation keeps the full-screen auto-fit look; the livestream gets the broadcast design.
- Built-in presets — five ready-made looks, free to pick on every plan: Broadcast Blue (reference tag plate + angular blue artwork panel + hashtag, like a TV scripture lower-third), Gradient (purple-to-magenta gradient panel), Minimal (bare text with a gold reference), Classic Chip, and Bold Bar (full-width bar).
- Body text auto-shrinks — the text size set on the verse box is a maximum. Long verses shrink to fit the box automatically, so the panel stays a steady size while you step through verses.
- Reveal behavior — a template's decoration layers (panels, artwork, fixed text) reveal once when a new passage or song goes live, then hold steady while you step through verses in the same chapter — only the verse text swaps, using the slide animation. The reveal streams live over NDI, so 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 caption look (the Prayer template or the prayer caption style) it picks up on an NDI output.
Upgrading from backplates
Caption Studio (template designer)
Caption Studio is the full-screen designer for building and editing your own templates — a Spectrum feature (picking the built-in presets is free on every plan). Open it from the Caption templates card:
- Canvas editing — drag and resize layers on the 16:9 frame with snap guides, undo / redo (⌘Z), keyboard nudging, and a layers list. Stacking order is yours: Bring to front / forward / backward / Send to back arranges the layers, so a shape can sit in front of or behind the verse text as you like.
- Shapes — the paint-only box is now a Shape element: the same solid / gradient fill (with an optional artwork image on top) clipped to any of about 20 shape kinds — rectangle, ellipse, triangle, diamond, stars, chevrons, arrows, speech-bubble, and more — chosen from a visual grid, plus a Blur slider (0–10) for a soft, frosted plate. Existing templates keep their rectangular boxes unchanged.
- Per-element properties — font (from the curated web-loaded list), max text size, colour, bold / italic / uppercase, letter spacing, line height, alignment, drop shadow, box fill (solid colour, or a two-colour gradient with an angle) / opacity, background-image upload (up to 1024 px), and padding.
- Corner radius — round a panel or text box uniformly with one slider, or hit Per corner to set each corner independently (top-left, top-right, bottom-left, bottom-right) — for pill shapes, one-sided tabs, or asymmetric cards. Link collapses back to a single value.
- Colour controls — every colour picker takes a typed hex value, has an eyedropper to sample a colour from anywhere on screen (including another element on the canvas), and copy / paste so you can carry an exact colour from one element to another.
- On-canvas gradient handle — a gradient-filled element shows a draggable arrow (CorelDraw-style): drag the start dot to set where the first colour lands, and the end dot to aim the direction and set where the second colour lands. What you drag is exactly what broadcasts.
- Reveal choice — per template: wipe left→right, fade, or none. A preview box plays the reveal the moment you pick it (and a Play button replays it), using the exact renderer the NDI feed uses — so what you see is what broadcasts.
- Live preview — a “Preview as Scripture / Lyrics / Prayer” toggle swaps in sample text so you can check the design against each content kind before saving. In the Settings gallery, hovering a template thumbnail plays its reveal too.
- Start from anywhere — New template begins from a starter layout, or duplicate a preset into an editable copy to tweak it. User templates can be edited, duplicated, and deleted. Up to 24 saved templates.
Raw text flow on NDI
Text on the NDI feed — Bible verses, song / hymn lyrics, prayers, and custom Text Builder slides alike — renders raw, as a broadcast caption, sitting just above the bottom of the frame at one fixed size (≈5% of the frame height, ~54 px on the 1080p feed). The caption comes in two shapes: song lyrics get a snug chip hugging the words (like TV / YouTube subtitles), while scripture, prayer, and custom text get a steady padded boxspanning the configured caption width — so the panel doesn't resize as you step through verses. All of it is bounded by the caption's Max width (default 70% of the frame, configurable): text stays on a single line until that width forces a wrap, shrinking only when the wrapped block genuinely can't fit. The in-room projector keeps its auto-fit behavior (short verses grow huge, long verses shrink to fill the screen), but the broadcast overlay stays visually stable from slide to slide — like a chyron, not a projected slide.
Two consequences worth knowing: the projector's sizing knobs (the per-slide A− / A+ control and the global Settings → Presentation → Text size slider) do not affect the NDI feed— the sizing levers on NDI are the caption style's per-kind font size and, when a caption template is selected, the max text size set on the template's verse box. And for song / hymn slides, the operator's per-line verse breaks are collapsed into one continuous wrapping paragraph before projecting, so the lyric reflows naturally to whatever width the receiver (OBS / vMix scene size) gives it instead of inheriting the in-room line shape.
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
Text styling on NDI
The default look is the caption: white text in a black box, low in the frame — configure it in Settings → Broadcast (NDI) → Caption style. Shared across all text: the background colour, its opacity (0% = bare text on camera, no box), the text colour, and the max width (40–100% of the frame, default 70%). Then each entity — song lyrics, scripture, and prayer — has its own font size, box padding (side and top/bottom, scaling with the font), text alignment (left / center / right / justify), a reference positionfor scripture (where the “— John 11:1 (NIV)” line sits in the box — left, center, or right; default right), an optional entity tag— a small broadcast-style tab on the box's top-left naming the content (“SCRIPTURE” / “SONGS” / “PRAYER”, editable text per entity, shared tag colours), an optional watermark — upload your logo and lay it over the caption box, positioned anywhere with X / Y sliders, with its own size (scales with the caption text) and opacity — and a Background switch — turn it off to broadcast bare text with no box at all (a drop shadow is applied so the words stay readable over camera footage). So lyrics can run big and tight while verses sit smaller in a roomier panel, or shadow-only. A live preview over a mock camera frame shows both shapes as you tune. When a caption template is selected for a content kind, the template takes precedence for that kind and carries its own layout, text styling, and sizing. There is no per-output font scale, colour override, or text-background panel anymore — one caption style plus opt-in caption templates covers the broadcast surface.
NDI caption text is always horizontally centered.A slide's left / right alignment is for the in-room projector; on the classic caption 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. (A caption template positions and aligns its own text layers.)
For media slides, the image scale control still applies — it sizes full-bleed media (logos, photos) within the frame on both the projector and the NDI feed.
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.
NDI® is a registered trademark of Vizrt NDI AB.