OTHER IMPORTANT NOTES
2) Version 1.4 could be seen as a beta version in terms of its main new feature, 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 in development, the PresetRemote, which will control multiple routers by allowing the remote switching of their presets. It will also include “Master Presets” which allows a group of presets on any connected routers to be switched simultaneously
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.
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.
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 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 NDI output 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 NDI sources 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. In addition, when in Advanced/A-B-Switcher mode, an additional set of virtual outputs are created, one for each input. The idea of this is to allow multiple NDI 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 had developed and the protocol evolved, that is no longer the case, making this mode far less useful than was originally intended.
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” disables detection of NDI sources from the local computer, eg. the outputs of the NDI router, in order not to fill up the list with extra entries that, in effect, are the same as other “original” sources.
12) The “Destroy Routed Sources on Exit” menu item (rt-click top left) can be used 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 NDI Router to the range of devices supported by his Central Control software.
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.)
ZEN Computer Services
v126.96.36.199 Jan-2017 Earlier alpha with very limited release.
v188.8.131.52 7-Feb-2017 First public release as a 6×2 NDI router/switcher.
v184.108.40.206 17-Jul-2017 Maintenance release.
v220.127.116.11 19-Jan-2018 Maintenance release (with extra web-links).
v18.104.22.168 14-Jul-2018 Maintenance release.
v22.214.171.124 23-Jul-2018 Preview release with similar switching functionality but revised GUI & user-configured switching matrix (no longer fixed at 6×2).
v126.96.36.199 20-Aug-2018 Further preview release which includes Routing Presets and load/save of (last used) Config files.
v188.8.131.52 28-Dec-2018 Maintenance release, recompiled with NDI v3.8
v184.108.40.206 2-May-2019 (First) beta release with XKeys XKE-40 support and TCP Server using ZEN Router Protocol v1.0
v220.127.116.11 6-May-2019 Beta – few fixes to the TCP server code
v18.104.22.168 7-May-2019 Beta – more fixes to the TCP server code
v22.214.171.124 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
v126.96.36.199 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.
v188.8.131.52 15-Feb-2020 Added “Destroy Routed Sources on Exit” menu option (default is OFF) and updated to NDI v4.16 libraries.
v184.108.40.206 29-Sep-2020 Maintenance release, recompiled with NDI v4.53
v220.127.116.11 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 NDI v4.62 DLL.
v18.104.22.168 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.