> For the complete documentation index, see [llms.txt](https://tractus.gitbook.io/tractus-tools-for-ndi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tractus.gitbook.io/tractus-tools-for-ndi/miscellaneous/release-notes-multiview-for-ndi.md).

# Release Notes - Multiview for NDI

## 2026.7.21

**NDI Version: 6.3.2**

**New features**

* Added direct Multiview sources, allowing one local multiview to be displayed inside another without a round-trip to/from NDI.
* Added right-click context menus throughout the web editor.
* Added rectangles with conditional fill, visibility, and opacity rules.
* Added configurable borders for captions.
* Added `$associated.*$` expressions for elements linked to viewports or audio meters.
* Added volatile expression variables for high-frequency updates.
* Added per-viewer controls for advertising KVM and PTZ support over NDI.
* Added a dimmed full-scale display mode for audio meters.
* Editor and template improvements
* Improved copy-and-paste support in the layout editor.
* Improved multi-element selection, grouping, duplication, resizing, and layer ordering.
* Improved visual previews for layout templates.
* Target-resolution support for templates and improved layout scaling.
* Save the current multiview as a template.
* Template package import and export.
* Improved editor organization, styling, and usability.

**Bug Fixes**

* Fixed the editor preview not redrawing correctly when switching between Layouts and Main.
* Persistent user variables are now retained across restarts.
* Fixed several minor web-editor styling and interaction issues.

## 2026.7.8

**NDI Version: 6.3.2**

**New Features**

* macOS release (Apple Silicon only)
* macOS NDI|HX encode support using Apple Video Toolbox (H.264 and H.265 hardware encode support)
* New launcher for macOS and Windows
* Audio meters can either display in gradient or solid colors
* Selection of audio channels to pass through when monitoring an audio source on a multiview output
* Selection of audio channels to pass through when monitoring a multiview in the web browser
* Preview and program borders stack when active

**Bug Fixes**

* Audio meter autosizing now enforces equal width meter bars
* Various web editor bug fixes and changes of layout

## 2026.7.3.1

**NDI Version: 6.3.2.**

**New Features**

* WebRTC/in-browser live preview, KVM, and PTZ control.
* Custom user variables for UMD expressions.
* New Windows launcher for Multiview for NDI.
  * Starts and supervises the Multiview engine.
  * Provides quick access to the web UI.
  * Includes a console/log viewer and tray behavior.
* Major web editor update.
  * Added layout template editing directly in the web UI.
  * Added drag-and-drop reordering for layout items.
  * Added click-through editing for overlapping items.
  * Added group select, copy, paste, snap-to-grid, align, bump, and shave tools.
  * Added RGBA color editing.
  * Added visual tally flag editing.
  * Added friendly names for multiview outputs.
  * Added explicit linking of viewports to other layout elements.
* Added layout template management.
  * Layout templates can now be created, updated, and deleted through the UI/API.
  * Template changes are persisted and become available for future layout changes.
  * Reserved template codes such as `__blank__` and `FAILSAFE` are protected.
* Added conditional caption styles.
  * Captions can now change text, expression, fill color, stroke color, visibility, or opacity based on expression/tally conditions.
  * Conditions are evaluated in order; the first matching rule is applied.
* Added more flexible visual layout elements.
  * Viewports, captions, images, and audio meters now support z-index ordering.
  * Layout elements can be hidden or shown.
  * Layout elements support opacity/translucency.
  * Viewports support source cropping.
  * Captions support improved width/height and auto-size behavior.
  * Audio meters have improved styling and can track a source or viewport.
* Added improved NDI tally support.
  * Tally state is now available for viewport expressions.
  * The API/UI can expose preview/program tally state for sources and outputs.
  * Optional tally behavior is available when a source is already present on a multiview.
* Added NDI configuration editor in the web UI.
  * Local adapters, discovery/network settings, groups, transport, multicast, and codec-related settings can be reviewed and saved from the UI.
* Added browser preview support using WebRTC.
  * Web previews can receive video/audio from a selected viewer.
  * Browser input/control events can be sent back to the viewer for preview/control workflows.
* Added additional NDI|HX encoder support.
  * AMD AMF support.
  * Intel QSV support.
  * macOS NDI|HX support using Apple VideoToolbox.
  * Improved out-of-process encoder handling for HX outputs.
  * Added support for more than one frame between keyframes and improved keyframe-request monitoring.
* Added new and expanded HTTP API routes.
  * `/layouts`
  * `/layouts/{code}`
  * `/viewer/{viewer}/layout/content`
  * `/viewer/{viewer}/audiomonitor`
  * `/ndi/configuration`
  * `/externalio/...`
  * `/webrtc/preview/...`
  * `/heartbeat`
  * Swagger/OpenAPI documentation has been expanded.

**Behavior Changes**

* Multiview now uses the hybrid blitter/scaler path by default when the fastest renderer is selected.
* Audio monitoring now uses `GET/POST /viewer/{viewer}/audiomonitor`.
  * Supported modes are `None`, `Source`, and `Viewport`.
  * Viewport mode follows the source assigned to the selected viewport.
  * Audio monitoring is passthrough-only in this release.
* Viewer/output indexes are now handled more consistently as zero-based API/editor references.
* Multiview slots are resolved from saved viewer files and can have gaps between indexes.
* NDI|HX sender work has moved further out-of-process for better isolation.

**Performance Improvements**

* Improved rendering performance with hybrid scaling/blitting paths.
* Added cached hybrid rendering mode.
* Added SIMD-related alpha blit options.
* Improved source rendering fast paths for common resolutions.
* Reduced unnecessary caption re-rendering.
* Improved alpha blending and alpha-aware rendering paths.
* Added NDI 6.3 sender/receiver advertiser support.

**Bug Fixes**

* Fixed startup crashes and receiver-disposal lock contention.
* Fixed source assignment lag in the web UI.
* Fixed NDI output status not always updating.
* Fixed full-width sources rendering at the wrong position.
* Fixed corruption when resizing an output using an HX sender.
* Fixed issues with sources that share the same name.
* Fixed alpha preview and source-alpha rendering issues.
* Fixed FPS changes leaving stale background content.
* Fixed editor mouse-up behavior that could immediately deselect items.
* Fixed linked viewport copy/paste behavior.
* Improved audio monitor state persistence and recovery.

**Deprecated Features**

* Legacy audio monitor listen routes are replaced by `/viewer/{viewer}/audiomonitor`.

**Removed Features**

* Removed unused/older graphics paths as part of the renderer/editor cleanup.

## 2025.11.4.2

**New Features**

* Official MacOS release.
* Source finding is improved. The source list will now update when sources go offline or come online - zombie sources should now disappear.
* Bilinear filtering (pgpt) blitter and scaler selected by default instead of nearest neighbor.
* Frame timing details added to the Performance tab of the web UI to help troubleshoot source timing issues.
* NDI|HX Output support.
  * Windows: NVIDIA NVENC for hardware accelerated h.264 and h.265, along with OpenH264 for software-based h.264.
  * Linux: OpenH264 for software-based h.264.
  * MacOS: Unavailable for now.
* Performance boosts for alpha blending on MacOS/Linux ARM.
* Improvements to frame blitting across multiple multiview outputs to reduce latency.

**Bug Fixes**

* Bilinear filtering supports interlaced sources.
* Sources with a number sign/hashtag (#) character were not being set properly from the web browser controller. (Direct API calls were not impacted)

**Temporarily Removed Features**

* **Discovery endpoints removed.** This is due to a bug where rapidly creating and destroying NDI receivers can crash Multiview. Discovery to be re-added at a later date.

**Deprecated Features**

* None at this time

**Removed Features**

* Removed older, inefficient scaling and blit methods.

## 2025.8.29.1

**NDI Version updated to 6.2.1.**

**New Features**

* NDI library updated to NDI 6.2.1.
* Added `--disablewatchdogrebuild` as a command line flag. This will disable Multiview's built-in reconnection logic if it does not receive any video frames from a source for more than 10 seconds.
* Added KVM click actions to viewports. You can trigger HTTP GET requests, Discovery updates, and viewport assignments when a source is clicked via KVM.
* Added a new Discovery tab to the Multiview for NDI web UI.
* Added the following HTTP API routes.
  * `/viewer/{viewer}/unfocus`: Deselects the current focused viewport on a viewer.
  * `/discovery` : Return all known Discovery information for the Discovery Service Multiview is connected to.
  * `/discovery/connection`: Returns the IP address of the Discovery Service Multiview is connected to.
  * `/discovery/receivers`: Retrieves a list of receivers registered with Discovery Service.
  * `/discovery/assign/{receiverUuid}/source/{sourceName}`: Assigns a source to a given received via its receiver UUID.
  * `/viewer/{viewer}/output/{output}/ptz/savepreset/{preset}`: Requests the NDI receiver assigned to viewport at index `{output}` to save the current PTZ position as a preset.
  * `/viewer/{viewer}/output/{output}/ptz/loadpreset/{preset}`: Requests the NDI receiver assigned to viewport at index `{output}` to recall the PTZ position at preset `{preset}`.
* Added expressions to captions for Discovery receiver monitoring.
  * `$discovery.{receiverName}.audio-channels$`&#x20;
  * `$discovery.{receiverName}.audio-codec$`&#x20;
  * `$discovery.{receiverName}.audio-present$`
  * `$discovery.{receiverName}.audio-receive-mode$`&#x20;
  * `$discovery.{receiverName}.audio-sample-rate$`&#x20;
  * `$discovery.{receiverName}.connection-state$`&#x20;
  * `$discovery.{receiverName}.source-name$`&#x20;
  * `$discovery.{receiverName}.source-url$`&#x20;
  * `$discovery.{receiverName}.video-codec$`&#x20;
  * `$discovery.{receiverName}.video-color-primaries$`&#x20;
  * `$discovery.{receiverName}.video-frame-rate$`&#x20;
  * `$discovery.{receiverName}.video-frame-type$`&#x20;
  * `$discovery.{receiverName}.video-has-alpha$`&#x20;
  * `$discovery.{receiverName}.video-matrix-coefficients$`&#x20;
  * `$discovery.{receiverName}.video-present$`&#x20;
  * `$discovery.{receiverName}.video-receive-mode$`&#x20;
  * `$discovery.{receiverName}.video-resolution$`&#x20;
  * `$discovery.{receiverName}.video-transfer-function$`

**Behavor Changes**

* Multiview's web UI will now connect to the **Full Bandwidth** version of a source instead of the proxy feed by default.&#x20;

**Bug Fixes**

* Fixed a bug with blank captions that had no vertical padding and were empty (i.e. a height/width of 0) that would crash Multiview.
* Fixed a bug where the web UI would get out of sync with the source watchdog status.
* Fixed an issue where a black flicker would be present if reconnecting to a source.
* Fixed issues with audio monitoring sometimes not working properly on a viewer.

**Known Issues**

* Using KVM and PTZ together on the same viewer may cause loss of control over PTZ sources. We are investigating the root cause. We suggest *not* using KVM and PTZ on the same viewer (i.e. one viewer for camera control, another for KVM).

## 2025.8.5.1

**New Features**

* NDI library updated to NDI 6.2.
* Selectable PTZ lockout for sources on PGM - prevents accidental PTZ inputs if the selected viewport's source has a program tally active.
* Added "immersive" and "explicit" KVM modes. In immersive mode, you can move the mouse between viewports without clicking them to activate. In explicit mode, you must click a viewport to select it before it can be controlled via KVM or PTZ.
* Selecting a source in the source browser on the web UI defaults to full bandwidth mode.
* Search for sources in the web UI.
* Multiview for NDI receivers will appear in NDI Discovery if using a Discovery Service.

**Bug Fixes**

* Fix a crash when reconnecting to a source where the watchdog timer times out (impacts 2025.7 releases running NDI 6.2).
* At startup, when not running in portable mode, if the data directory did not exist (i.e. $HOME/.config did not exist), Multiview would use a relative path for data storage, which led to images not being able to be saved/loaded properly.&#x20;

## 2025.6.20.1

**New Features**

* Pass-through KVM - control multiple computers using Screen Capture/Screen Capture HX from one multiview instance.
* NDI tally flags (PNG & border) per multiview and per viewport (breakaway mode).&#x20;

## 2025.6.16.1

**New Features**

* Audio meters can be added and be tied to a specific viewport on a multiview.
  * Bars can be auto-sized or set to a fixed width.
  * MV will display all channels it can within the space allocated to the audio meters.
  * Padding can be applied to the meters.
* Captions can now contain multi-line content and wrap content properly.
* Captions can have width/height applied.
* Captions can have text alignment set (only impacts fixed-size captions).

**Bugfixes**

* Interlaced sources did not draw properly. Multiview will now apply a simple bob filter (scandouble) on any interlaced sources.

## 2025.5.31.1

* macOS build available
* Linux & Windows x86-64:
  * Improved performance of alpha blending PNGs
  * Improved performance of linear filtering
  * Improved performance of nearest-neighbor scaling
* Auto-complete for expressions on captions
* Web editor now has copy-paste of viewports, captions, and images
  * Copy-paste provides "intelligent" renaming of element codes. For example, an image copied with code `IMG1` will be pasted as `IMG2`. If `IMG2` already exists, `IMG3` will be used (or whatever the next logical image might be)
* Web editor can attempt to scale viewports and captions if the multiview resolution is changed (e.g. from 1920x1080 to 3840x2160).
* SignalR/Websockets replaced with Server-Sent Events (SSE)
* Bug fixes:
  * Sources that do not match the same aspect ratio as the viewport now render with letterbox/pillarbox inside the viewport bounds
  * Loading PNGs has a safety fallback path if Multiview cannot allocate a contiguous memory block (fatal crash when loading some PNGs)
  * Web editor would render images at an incorrect scale/resolution

## 2025.4.29.1

* Custom fonts for captions/UMD. Add TTFs to the Multiview executable directory and restart MV.
* Custom text color for captions/UMD
* Fixed a bug that Michael Lange found - possible crash when Multiview re-initializes all viewers with captions
* Set frame rate per multiview output - default to 60
* Set resolution per multiview output - default to 1920x1080
* Linux ARM64 support
* Alpha decode & display of alpha channel if the source is sending alpha
* Linear filtering for scaling sources implemented, hidden behind a command line flag, use –blitmode=linearlut to use linear filtering. (Much slower than nearest neighbor)
* PNG images with alpha - can be uploaded & displayed on the canvas now
* Hide & show images via HTTP API calls
