ReadMe File
1) General features & FAQs for all ZEN NDI® utilities
Other Important Notes
2) The NDI® Router package includes three applications, the main NDI Router which can be run standalone, the Router Remote which mimics all the switching controls of the Router, and the Preset Remote which can control multiple Routers but only controls the preset buttons on each one.
Version 1.4 added the ability to create multiple router instances on the same PC. For people who need to have more NDI® switching options than the standard 20 inputs and 24 outputs, this can provide a solution in certain circumstances, particularly when couple with external control using the Router Protocol via TCP. This builds on the external control features introduced in v1.3, namely the XKeys XKE-40 & XK-24 support and the TCP server. Also added with v1.3 was the Router Remote, a network client for the main router application, using a nearly identical GUI (also with XKeys support), although with a few control options missing (like adding new sources).
When the Router app is run multiple times, each instance is allocated a different port number, starting with 9779 as per the original single-instance Router, and then decrementing (E.g. Router No 3 = port 9777). When running the Router Remote app, the target Router/port-number can be selected at start-up.
A new app is also included in the package, the PresetRemote, which controls multiple routers by allowing the remote switching of their presets. It will also include “Master Presets” which allow simultaneous switching of presets on multiple routers.
3) The main matrix buttons have been designed to use the ARIAL ROUNDED MT BOLD font, which was on my computer and I thought it was part of the basic Windows collection – but I think I was wrong. However, a google search reveals that it can be downloaded from various paces, eg. https://blogfonts.com/arial-rounded-mt-bold-1.font. I would suggest it’s worth doing this if you you don’t like the look of the button text which might otherwise look a bit on the light side.
Usage Notes
4) The router can make use of up to 20 NDI sources and creates up to 24 virtual NDI® (output) sources, the A-Bus, B-Bus, etc. Each input can be independently switched to any or all output busses. The outputs become additional NDI® sources on the network which can be accessed by other NDI-compatible software, just like any normal NDI® source.
At start-up, choose a pre-set configuration or enter you own values for inputs & outputs. Once entered, these values are fixed for the current session. You can also load a saved configuration, which will include the sources used and any routing presets created. If the “Use Last config” box has been ticked, then a “Last” config file will be searched for and loaded if found. Router config files have a .zri extension.
New in v1.5 is the ability to specify NDI® Group names for source detection and the routed outputs. If all group selection boxes are blank, then the default “Public” group is used for source detection and NDI outputs. If you wish to specify other groups, then the Public group will not be used unless the checkbox is ticked. You can specify multiple groups in each text edit box by separating them with commas (eg “Group 1, Group2”). In addition, all outputs will automatically be added to the ZEN Router group. (Note: currently there is a bug whereby the Public group is not being added when all selection boxes are blank, so the box must be ticked in order to add it. Will be fixed in the next release)
There is also a Command Line option that can be used, “/force_last“, which will attempt to use the settings in the “last.zri” file, if it exists, and bypass the normal Settings dialog which appears at start-up. This can be used for unattended start-up where the router will be controlled remotely. If alternative config files might be required, the current workaround would be to create multiple folders each with its own copies of the Router .exe and NDI® .dll and a unique last.zri file, and then use different script/batch files to run whichever one is required.
5) The “Router base name” is used to form the NDI® names for the various outputs, combined with an alphabetic suffix (RouterOut-A, RouterOut-B, etc). If running multiple router instances on a single PC, you must ensure you have a different base name for each router instance.
From v1.4.1 onwards, individual output source names can be edited. Click on the name to open a small dialog box in which the name can be edited.
6) Assuming you have some NDI® sources available on your LAN, start by assigning sources to the input channels. The drop-down list below the switching buttons contains a list of currently available sources (in the Input Groups specified at start-up) and, once selected, the name will show above the respective channel switching button.
7) Multi-bus routing switch configurations can be saved as Routing Presets, accessed via the row of buttons just above the Channel Input Selection drop-down list buttons. Hold down the CTRL key and click on a Preset button to assign the current switch positions to that Preset. An active Preset will have a red button, which changes to amber if any of the bus outputs are changed. This is to act as a reminder as to which Preset was last selected, should you wish to make a slight change to one of them and then re-save it (via CTRL-click). An unselected Preset will have a green button, whilst those with no assigned data will have no colour.
The Routing Preset buttons can have their text editing by using ALT-click on a preset button. To clear the button text back to the default (Preset 1, Preset 2, etc), use SHIFT-click on a button.
Note that Presets will only affect those active outputs to which inputs were assigned at the time the Preset was created. For example, Preset1 is created when only outputs A & B are active, but Presets 2 & 3 are created when A, B, C & D are active. Selecting either Preset 2 or 3 will potentially change all four outputs, whereas Preset 1 will only affect outputs A & B and not change whatever is selected on C & D.
8) Outputs can be cleared (i.e. disconnected/deactivated) by clicking on an active switching button whilst holding down the Shift key. To clear all outputs, use the menu item in the system menu.
9) Use the “Save Last” tick box to create a “Last.zri” config file on exit, or to create named config files at any time use the “Save Custom Config” menu item in the system menu (right-click top left).
10) Pressing the A/B Switcher button changes the configuration slightly to mimic an A-B bus (preview/program) vision switcher, where the A bus is the main output and the B bus is the preview output. Pressing the “Switch A-B” button will toggle the contents of Bus A & B. Also, when in Advanced/A-B-Switcher mode, an additional set of virtual outputs are created, one for each input (“zRouter In-01”, “zRouter In-02”, etc). The idea of this is to allow multiple Monitor apps to be set up to view all the inputs and outputs, as shown in the screen grab at the bottom of the NDI page at http://www.zenvideo.co.uk/ndi.htm#Router.
When this app was developed, using NDI® v2, the switching was virtually instant in most cases but, as NDI® has developed and the protocol evolved, that is no longer the case, making this mode far less useful than was originally intended. However, using NDI v5.6 (starting in Router v1.5.2.40), there appears to be a marked improvement giving virtually instant switching with some receiving apps, at least when the sources have the same framerate & resolution.
11) The “Show NDI Source Listings” menu item (rt-click top left) opens a resizable dialog window which can be used to search for and display some stats about all the NDI® sources detected on the LAN. The “Exclude local” tick-box disables detection of sources from the local computer, eg. the outputs of the ZEN router, in order not to fill up the list with extra entries that, in effect, are the same as other “original” sources. It is also possible to specify which NDI® Groups will be included in the search (in a similar manner to the Router Setup in section 4 above).
12) The “Destroy Routed Sources on Exit” menu item (rt-click top left) can be used to toggle whether the “routed” virtual NDI® output sources should be destroyed when exiting the application, or kept active with their current routing settings when the application is closed. If left open, the application can be opened again to reconnect and regain control of the NDI® output sources (provided no change is made to the “Router base name” setting). My thanks to Kane Peterson for suggesting that there was no need to destroy the Routed Sources (which was previously the default behaviour).
13) The TCP server for remote control is on port 9779 for the first router instance (and decrements for subsequent instances). You can check the port used via the “Show TCP Control Port” menu item. Up to four simultaneous connections can be made, as shown by the block of four indicators at the upper right of the window, which light up green when connected. Clicking on a “lit” indicator will disconnect that client. See the PDF with the Router Protocol (available from the Downloads page) for more info about the available commands and responses for external control.
A module for Bitfocus Companion (for the Elgato Stream Deck) has been created (thanks to Nigel Brown, and not by me, I might add) and is available via the Bitfocus site (for the ZEN NDI® Router), plus Joe de Max has added the ZEN Router to the range of devices supported by his Central Control software. Support is also being tested in Universe Control.
14) XKeys support is for the XK-24 keypad and XKE-40 rack-mount keyboard. The XKE-40 has two rows of 20 keys, 1-20 and 21-40 on the lower row. Key 40 acts as a mode switch and changes colour accordingly. Mode switch = Red:- normal selection mode, where the lower row (21-39) selects the output bus (and lights in blue) and the upper row (1-20 selects an input to be routed to the selected output (and lights in red). Mode switch = Blue:- Preset mode, in which the upper row of keys lights blue to show valid presets (ones with data). Selecting a valid preset turns the key red. If the preset becomes “degraded” (by one or more of the output routings being changed), then both red/blue LEDs will light.
Operation is similar on the XK-24, but with fewer keys which are effectively split into two blocks of twelve, rather than two rows of twenty on the XKE-40. This limits the maximum number of ins & outs that can be switched on the keypad, but not the size of the router configuration itself. The XK-24 can be configured to operate in either portrait or landscape configurations, as preferred.
Watch the video above (also on YouTube/Facebook) for a demonstration of how the router works. (At present only the previous router features are covered in any videos, but a new video showing the XKeys is planned.)
FACEBOOK User Group
There is a support/discussion User Group page on Facebook – “ZEN’s Software Apps & Utilities for NDI” – just agree to the rules in order to join.
Martin Kay
ZEN Computer Services
www.zenvideo.co.uk
Version History
v1.0.0.2 Jan-2017 Earlier alpha with very limited release.
v1.0.0.3 7-Feb-2017 First public release as a 6×2 NDI® router/switcher.
v1.0.0.4 17-Jul-2017 Maintenance release.
v1.0.0.5 19-Jan-2018 Maintenance release (with extra web-links).
v1.0.0.6 14-Jul-2018 Maintenance release.
v1.2.0.7 23-Jul-2018 Preview release with similar switching functionality but revised GUI & user-configured switching matrix (no longer fixed at 6×2).
v1.2.2.9 20-Aug-2018 Further preview release which includes Routing Presets and load/save of (last used) Config files.
v1.2.3.11 28-Dec-2018 Maintenance release, recompiled with NDI® v3.8
v1.3.0.12 2-May-2019 (First) beta release with XKeys XKE-40 support and TCP Server using ZEN Router Protocol v1.0
v1.3.0.13 6-May-2019 Beta – few fixes to the TCP server code
v1.3.0.14 7-May-2019 Beta – more fixes to the TCP server code
v1.3.0.15 10-May-2019 Beta – added support for 4 concurrent TCP connections, plus new Protocol commands for getting NDI source names (IN xx yy) and performing a general “data dump” (DD ** **)
v1.3.1.xx Autumn 2019 Various beta releases as work progresses on adding XKeys support
v1.3.2.20 2-Feb-2020 Release candidate with XKeys support for XK-24 & XKE-40 keyboards, NDI Sources stats/listing window. Uses NDI® v4.15, and includes both 32 & 64 bit code versions.
v1.3.3.21 15-Feb-2020 Added “Destroy Routed Sources on Exit” menu option (default is OFF) and updated to v4.16 libraries.
v1.3.4.25 29-Sep-2020 Maintenance release, recompiled with v4.53
v1.4.0.27 9-May-2021 Both the Router & Router Remote apps support multiple instances on the same PC. Added F1 & System Menu methods of accessing the ReadMe online. Includes the v4.62 DLL.
v1.4.1.29 30-May-2021 Added the ability edit the NDI® names of individual outputs, and to clear (i.e. disconnect) routed outputs, individually or acting on all outputs.
v1.4.1.30 22-Oct-2021 Recompiled to extend expiry date and use the NDI v5.03 DLL. Includes the “PresetRemote” app for switching presets in multiple routers. Apps are all 64-bit only (no 32-bit versions in this release)
v1.4.2.32 12-Feb-2022 Mainly updates to complete the functionality of the Preset Remote app, including auto-connection to available routers and auto-detection of supported XKeys devices.
v1.5.0.35 12-May-2022 Adds support for specifying NDI® Group names for the Router, for limiting source detection and joining/creating new output groups. Also supported in the “Show NDI Source Listings” display panel.
v1.5.0.36 8-Mar-2023 Maintenance release, recompiled with NDI® v5.5
v1.5.0.37 15-Apr-2023 Maintenance release, includes revised expiry warning dialog and extended lifetime.
v1.5.1.38 15-Jul-2023 Includes a bug fix to the Router Protocol affecting the TCP Server response to the “OS xx yy” command when trying to select an unconnected input source.
v1.5.2.39 19-Jul-2023 Adds a new “PC xx yy” command to the Router Protocol for creating/changing Presets, and Router Protocol document updated to v3b.
v1.5.2.40 15-Aug-2023 Maintenance release, recompiled with NDI® v5.6. Note, this appears to give faster switching that versions using earlier versions of NDI (from v3.x to v5.5).