Routers

Clicking on the Routers link in the navigation bar will present a list of routers in the system:

Pathfinder Core PRO currently supports:

  • Axia Audio Routers

  • Axia GPIO Routers

  • Imagine Routers

  • Virtual Routers

  • Sap Property Routers

The Axia Audio Router and Axia GPIO Router are automatically generated based on devices discovered in the system. These two routers will always be in the system and may not be removed. Imagine Routers, Virtual Routers, and Sap Property Routers may be created and removed from the Routers page.

Clicking on the Details link for any router will present a new screen with the routing status of the router:

This screen has three tabs on the top: Points, Routes, and XY.

The Points Tab

The Points tab simply lists sources and destinations in the router along with relevant information for each. The columns in each list are broken into two major sections:

  1. Source/Destination: Details related directly to the source or destination such as the source’s name, Livewire channel, and availability.

  2. Host: Information about the host device where a source or destination resides.

Source/Destination Columns

Column

Description

Availability

This column indicates whether the source or destination is currently available for use. Options include:

  • Available—The device is operating normally

  • Offline—The device is offline or unreachable

  • SystemLocked—Destinations whose source cannot be changed by the router; for example, mixer faders cannot be changed using standard routing commands and must be changed using the console or by issuing special source profile load commands

Name

The Name of the source or destination.

Livewire Channel (Axia Audio Sources Only)

The Livewire channel number assigned to the source.

Description (Destinations)

The description of the destination.

Host Columns

Column

Description

IP Address

The IP Address of the source or destination host device.

Name

The name of the source or destination host device.

Port

The physical (or virtual) port number that identifies the source or destination on the device.

Since these lists can contain many entries, the search box can be used to narrow the list.

For users that have administrative rights to the router, some additional configuration tools may also be present depending on the type of router. For example, when viewing the Axia Audio router, a button will be present for adding AES67 sources to the router. In the Virtual router, controls will exist for adding additional virtual sources and destinations to the router. These additional controls will be discussed below under the section for each router type.

The Routes Tab

The Routes tab displays the current source-to-destination routing of the router.

Again, this screen is divided into two sides. The source information for each active route is on the left, and the destination information is on the right. The columns display information about each active route:

Source Columns

Column

Description

Name

The name of the source routed to this destination.

Description

The description of the source routed to this destination.

IO (Virtual Router Only)

The IO number of the source in the virtual router.

Livewire Channel (Axia Audio Router Only)

The Livewire channel number of the source routed to this destination.

HostName

The name of the device where the source resides.

Destination Columns

Column

Description

Name

The name of the destination.

Description

The description of the destination.

IO (Virtual Router Only)

The IO number of the destination in the virtual router.

HostName

The name of the device where the destination resides.

Lock

The lock state of the destination.

Route Changes

Route changes may be made from the Routes tab by either:

  • Selecting an entry in the routing list and clicking Change Route

  • Double-clicking on an entry in the routing list

Either of these actions will present a dialog with a list of sources that may be assigned to the currently selected destination:

On the Select Source dialog, select the source in the source list and click Take to change the route or double-click on a source in the source list.

Click Cancel to exit the route selection dialog without making changes

Since this list can contain many entries, the search box can be used to narrow the list.

The search filter can persist as you navigate between pages so if you return to the route page and are not seeing sources or destinations that you expect to find, check to see if there is a search filter on the list.

Important Note: A Source will not be available in the Routes list if it is not routed to anything. It will be present in the Take list when you go to make a change as well as in the Points tab under sources, but the search function is only searching data that is in the list. If the source is not routed to any destination, it is not in the routes list because it is not involved in any active route.

Locking

Each route (destination) in a router can be Unlocked, Locked, or SystemLocked.

The lock state is represented by an icon in the Router’s Details table:

Lock State

Icon

Locked

Unlocked

System Locked

System Locked (except for virtual routers described below) indicates that the device itself does not allow route changes to be made on that IO. This is typically seen with console faders where source changes must be accomplished via a source profile load rather than a route change.

Important Note: Other than system locks, locking and unlocking is a Pathfinder state and does not actually change anything in the equipment as Axia equipment does not have lock parameters. Therefore, a locked route in Pathfinder Core PRO could still be changed by the device’s web page.

Locking or unlocking a route is as simple as clicking on the Destinations icon in the route list. Locked routes must be unlocked before they can be changed. In addition, it is possible to define whether a user has permission to change route locks. When defining a user, a field now exists to configure this:

Checking the Can Lock Routes checkbox will grant this user permissions to lock and unlock routes. This allows an Administrator to lock routes and make them unchangeable by normal users.

The Route locks do not apply option is reserved for future development.

Important Note: A virtual destination is comprised of one or more base destinations from other routers. If you lock a virtual destination, it will not lock the underlying base destination. This is by design and allows an Administrator to create a general user router with locked destinations and an engineering router where those same destinations are unlocked. However, if the base point becomes locked, then the virtual destination will display as system locked and the lock can only be removed by unlocking the lock on the base point. In the case where a virtual destination has multiple base points, the locking of any of the base points results in the entire virtual destination becoming system locked.

The fact that locking a virtual destination does not lock its underlying base point is different from how previous versions of Pathfinder worked.

The XY Tab

The XY tab presents an XY grid which allows the user to graphically make route changes. This tab also mirrors the functionality of the XY component available in HTML5 user panels.

Ref

Description

Notes

1

Search bar

Search sources or destinations by typing in either the S or D field to reduce the number of columns and rows shown. Your search can be filtered even further by specifying a device using the dropdowns. The device dropdowns are not present on virtual routers and only exist on the audio and GPIO routers.

2

Sources

Source Names are displayed in the columns at the top of the table. Hovering over any column header will highlight the source with a yellow bar and show the source’s full description.

Double-clicking a source column header repeatedly will cause the grid to jump to each destination the source is routed to and highlight it with the yellow hover bars. If the source is not routed to any destination, nothing will be highlighted.

3

Destinations

Destination Names are displayed to the left of each row. Hovering over any row header will highlight the destination with a yellow bar and show the destination’s full description.

Double-clicking on a destination row header will cause the grid to jump to the source that is currently routed to that destination. If no source is routed to the destination, nothing will be highlighted.

Greyed-out destination names indicate the destination is locked either at the user level or system level and cannot be changed. Double-clicking on a locked row header will still navigate to the locked cross-point if a route exists.

4

Scroll Bars

Scroll bars will appear if there are more destinations or sources than can be displayed. The scroll bars may be manipulated by dragging anywhere within the bar or by clicking and/or holding the arrows at either end of the scroll bar. The scroll bars are slightly wider than some normal windows scroll bars because the grid is optimized for touch panel use.

5

Action Buttons

To take, clear, or lock a route, click the desired cross-point to preset it and then click the corresponding button in the top left corner of the grid.

There are three action button sets:

  1. The Take/Clear button set will display either Take or Clear depending on whether the selected route is currently active or not. Click this button to either Take or Clear the route.

  2. The Lock/Unlock button set may be used to add or remove a user-level lock to an existing cross-point. The ability to unlock a route is restricted by user permissions.

  3. The Cancel button will clear all selected presets without making any changes.

6

Routing Grid

Clicking a cross-point will preset it and enable the action buttons.

Each cross-point will have one of several colors indicating the cross-point state:

No route exists at that cross-point

The route exists at that cross-point

The cross-point is locked at the system level

The cross-point is locked at the user level

The cross-point has been preset for an action

7

Preset Rotate

When a preset is selected, this button will show the count of selected presets. Clicking the button will cause the hover bars to highlight the selection and move the scroll bars to the correct preset cross-point.

If the matrix has been configured in multiple preset mode, this button will loop through the currently selected presets.

The button will be grayed out and unavailable for use when no selection (presets) have been made.

Router Types

Axia Audio Router

The Axia Audio Router is created automatically by the system. As devices are discovered or manually added to the system, they are analyzed to determine what audio sources and destinations they provide, and those sources and destinations are automatically loaded into this router.

When you use this router to make a route change, Pathfinder Core PRO is reaching out into the destination device and sending it a command to change the source assigned to that destination. This happens in much the same way as you could make the change from the device’s web page except that you can see all of the audio IOs in one location with Pathfinder Core PRO. Pathfinder Core PRO can also execute scene changes where it can make hundreds of route changes across many devices at once.

You may notice in the points tab that some sources will carry an IP Address of 255.255.255.255:93, have nothing in the host name column, and have “To:” at the start of their Name.

These sources are Axia Backfeeds generated by the mixing engines. They are not assigned a specific host because they are the one and only type of source that can dynamically change which device (Engine) is currently hosting them so they do not have a formal home. To learn more about Axia Backfeeds, see any of the Axia Mixing Console manuals.

The points tab of an Axia Audio Router will also have an Add AES67 Source button. Clicking this button will present a dialog for adding AES67 sources to the system.

Type the name and description by which the source will be identified in the system in the Source Name and Description fields. The AES67 specification allows for sources to be defined using a Unicast/Sip or multicast address format. The information required to define the source is different depending on the selected format and so different fields will be present depending on which definition you select. The example above shows the unicast method. Define the number and the host IP address required to define the Sip path. The resulting address field will automatically fill with the address required for this source based on these parameters.

If you select the multicast option, the required fields will change:

In this case, fill in the multicast IP address and adjust the other parameters to reflect the AES67 source settings, then click add to add the source.

Once added, you will notice that in the list of points AES67 sources will have a minus icon to allow deletion of the source and an edit field to return to the editing dialog shown above.

Once these sources are added to the router, Pathfinder Core PRO can instruct any Axia device destination that supports AES67 streams to receive a specific AES67 stream in the same way as normal Axia route changes are made.

Axia GPIO Router

The Axia GPIO Router is very similar to the Axia Audio Router. As devices get discovered which have GPIO ports, those ports are added to this router. And in a similar fashion to the Axia Audio Router, when you make route changes, Pathfinder Core PRO is reaching into the destination node and sending it a command which tells a specific GPO on that device to follow the GPIs of the selected source device and port. Due to the nature of GPIOs on an Axia network, this routing becomes a little more nuanced and could use some explanation.

There are three ways to route GPIO closures across an Axia network. The Axia GPIO Router in Pathfinder Core PRO only uses one of these methods. It is still important to understand all of the methods however as attempting to use conflicting methods at the same time on a GPIO port can cause erroneous and unpredictable closures.

First, within the Axia device itself, you can assign a channel number to a GPIO port. When you do this, you are creating a special situation where you are telling the port to bind itself to Axia Mixing Console GPIO signals from whatever console currently has loaded that Livewire channel number.

Second, you can assign an IP address and port number of a GPI to a GPO. This is called "snake mode" and it is what the GPIO Router uses to tell a device’s GPOs to mirror another port’s GPIs. Therefore, when you make a route change in the Pathfinder Axia GPIO Router from Node 1 Port 1 to Node 2 Port 4, any GPI closures on Node 1 Port 1, will be mirrored as GPOs in Node 2 Port 4. These route changes can also be updated dynamically, just as with any other router.

The third way that GPIOs can be used is to leave both the Livewire channel number and the routing assignment unassigned, then directly trip the closures using Pathfinder’s (or some other automation system’s) event system by sending closure commands to the device.

The reason it is important to understand these three methods of GPIO closures is that it is possible to do multiples of them at the same time which is occasionally useful but more often just a mistake. For example, we often see users who think that the GPIO ports should have a Livewire channel number and so just arbitrarily assign them. This can lead to a situation where the user has created Pathfinder events to make and respond to changes on those ports, but those same ports are also being fired by changes on the mixing console causing confusion and generating calls to Axia Support. It is important to first understand how you intend to use a given GPIO port then configure it correctly for that task.

Imagine Logical Router

To add an Imagine Router into Pathfinder Core PRO, you first must add the Imagine Device to the Devices list. In Devices, click Add, type the IP Address, and select Imagine LRC from the Investigation Type drop-down list.

Once the device has been successfully added, click on the Routers tab and click Add a new Router.

Field

Description

Router Type

Select Imagine Lrc.

Router Id

Id number of the router. Leave a value of 0 for an auto-generated Id.

Router Name

Type a descriptive name for this Router.

Router Description

Optionally, type a description for this Router.

Select Lrc Device

From the drop-down list, select the specific device.

Select Lrc Level

Select the LRC level in the router to control as described below.

Imagine routers have multiple levels and Pathfinder Core PRO can control full routes that route all levels at once by adding the {ALL} level. Any given breakaway level may also be added separately. Or, both may be added in different routers. This allows routes that should target all levels to be made on the router with the All target and routes of individual breakaway levels to be made on the breakaway routers.

Once added, the router will discover the IOs made available by the selected level and routes may be manipulated in the same way as other routers in the system

Virtual Routers

Virtual routers are a special kind of router. You can think of a virtual router as a way to make a subset of routes you wish a specific user to use. For example, you could create a router that only contains the routes from the Axia Audio Router that are related to a specific studio. Or you could create a router that only contains the routes that are relevant to the final air chains. This allows you to create purpose-driven routers that display only the routes that are relevant to a specific set of tasks and are therefore much easier to navigate than browsing every source and destination on the network.

However, virtual routers can also go much deeper than just subsets of routes. For any specific virtual source or destination, you can also associate multiple real sources or destinations with that virtual source. That sounds complicated but is actually relatively simple and extremely powerful.

For example, let’s say that every time you route a specific Audio Source to a specific Audio Destination, you also want to route a GPIO source that carries signaling information related to that audio source to a specific GPIO destination. An example of where this might be useful would be switching from a primary automation system to a backup automation system by creating a virtual source that contains both an audio and a GPIO source plus a virtual destination that contains both an audio and a GPIO destination. Now, when you use the virtual router to route that source to the destination, it will tell the underlying audio and GPIO routers to make both routes.

To create a virtual router, click the plus icon on the main routers page.

Provide a name and description for the router and click Add. The router id will autogenerate the next available router id number but can be overridden with your own id number. Be sure to use a unique id that is not already in use by another router.

After clicking Add, the virtual router will appear in the routers list but is currently empty as it does not have any sources or destinations. Click the Details button and select the Points tab.

The easiest way to populate a virtual router is to import some sources and destinations from a real router. In this case, we are going to select the Axia Audio Router from the import drop-down and then click Import Sources. You will then be presented with a list of importable sources.

Click on the sources you wish to import (Shift-click to select a range) then click the Import button. Repeat the procedure with the Import Destinations button to import additional destinations into the virtual router. Note that in general, you will leave the target id at -1. This will import the IOs to the end of the router. Setting a number other than -1 will try to import the new IOs at the number selected. This will fail if there are not enough open numbers at the target id to support the number of selected IOs.

At this point, you have a virtual router with only the sources and destinations you want available. This router can then be made available as the only router certain users have access to by using the user rights section, or it can be used to easily see and change certain critical routes without viewing the entire Audio router.

However, let’s dig a little deeper into each individual virtual IO. If you click the Edit link on one of the imported virtual sources, you will be presented with more details about the virtual source.

By default, when you import a source the name and description fields of the virtual source inherit the name of the imported source. But you can change this to any name or description you want using the name and description field. The Base Io Package allows you to define which real sources are a part of this virtual source. As mentioned earlier, it is possible to tie multiple sources together into a single virtual source package. For example, we could select the Gpio router from the Import From dialog, click Import, then select a gpio source to include in this package.

The Move Up, Move Down, and Renumber buttons allow you to change the order of the sources in the virtual source package. Once applied, this virtual source now has both a gpio and audio source and so routing that virtual source to a virtual destination will attempt to make both a gpio and audio route change underneath. The same process can be used to edit and manipulate the virtual destinations.

The Points tab on the virtual router also includes a Plus icon for manually adding virtual sources and destinations and a Minus icon for deleting a virtual source or destination from the router.

Deeper Tech: Packaging

For those who are interested in what happens under the hood with virtual routers, this section is for you. Every virtual source or destination is a package. Within that package is a list of pointers to real sources or destinations. When you make a route change, the system does a number of things.

First, it attempts to organize the package according to the IO types of the pointers in both the source and destination package. For example, it will lump all of the GPIO points together and all of the Audio points together in each package. Then it will try to make one to one routes based on the order of the routes in the package.

This also allows you to lump multiple Audio sources and destinations into a single package. For example, if you were using some sort of immersive sound configuration that required multiple channels of audio (7.1, 22.2) to be routed at once, you could package all of the sources together into a virtual source package and all of the destinations together into a virtual destination package. When the virtual route is made, Pathfinder Core PRO will step through each line in the source package and try to apply it to the same line in the destination package in the order which they exist in the package. If the count in the source and destination packages does not match, the system will go as far as it can to create the matches. For example, if the source package has 1 source and the destination package has 2 destinations, only the first destination will get a route. If the source package has 2 sources and the destination package only has a single destination then only the first source will get applied anywhere.

In the same fashion, the state of virtual routes gets updated automatically as base routes in the packages change. If an audio route changes and the source and/or destination exists in a virtual router, an analysis is done to determine if the current route states of any of the source packages match what would happen if the source were applied to the destination. If they do, the virtual route is updated to reflect that source as the current route. If multiple source packages match the destination, then the first one with the most matches is displayed as the currently routed source.

If no source package matches a destination package, the route may have two other states. The first is “None”, which means that none of the destination package's destinations are assigned to anything. The other state is “Other”, which means that some of the destination package’s destinations have some route applied to them but it does not match up with any of the source packages in the virtual router. This explicitly displays a differentiation between a destination that is cleared and one that might be in use in some fashion, but not one that the virtual router can represent given its existing configuration.

IO Ordering – Move Up/Down and Push Up/Down

The virtual router page also has a block of controls used for manipulating the order of the IOs in the router. These controls are only available to Administrative users. These buttons effectively alter the number of the IO in the virtual router. Since changing the IO numbering of a virtual router can have deeper consequences if the IOs are already in use by Logic Flows or device emulators, these buttons must be enabled by manually selecting the Enable Push/Move checkbox in order to prevent accidental changes.

It is recommended to sort by Port when using this feature as it manipulates up and down based on the port number and not the sort order. This is a design tool to create specific numbering for the virtual IOs and is most useful when those IOs will be exposed to emulated routing protocols that expect a number to be assigned to each IO.

Move Up – moves the IO up in the router effectively decreasing its IO number and swapping with its lower next-door neighbor if necessary.

Move Down – moves the IO down in the router effectively increasing its IO number and swapping with its higher next-door neighbor if necessary.

Push Up - moves the IO up in the router effectively decreasing its IO number and pushing any lower-numbered IOs it runs into up as well decreasing their numbers until it reaches a hole in the numbering or 0.

Push Down - moves the IO down in the router effectively increasing its IO number and pushing any higher-numbered IOs it runs into down as well increasing their numbers until it reaches a hole in the numbering or the highest value in the router.

Advanced Base IOs and the Enable Property

Each virtual source and destination’s base points in a virtual router also include an enable property which could be true or false. This can be used to disable the base point from being considered during route changes and route state analysis. This property is only available via the API tree in logic flows as it is considered an advanced property.

Here is an example of where this feature might be useful: Let’s say we are mixing audio for an airchain using a vmixer. We might create a virtual router with the virtual mixer destinations and the possible studio sources. However, what if for redundancy's sake we wished to duplicate the settings on a vimixer on a second engine thereby allowing us to feed the air chain off of either engine and take one or the other out of service? To accomplish this, we could create a virtual router with destination base points using vmixer channels from both engines and where the source points are the same source base point duplicated.

Destination (note the different engine paths):

Source:

If this virtual source was routed to the virtual destination, the same base source would get routed to the vmix destination on both engines, and the route would only show active if it was successfully made on both engines. However, if we wanted to take engine number 2 offline for maintenance, our route changes would still be sent to both engines, but the state would not be displayed since the offline engine did not show the successful route.

Using the enable property of the base points, we could create a scene or a logic flow that disabled the destination base points for the second engine while it is in maintenance. The virtual router would continue to work as if those base points did not exist in the destination. Then we could execute a second scene when the engine comes back online to re-enable those base points.

Advanced: Push Route on Base Io Enable

This feature works with the base Io enable/disable feature above. When viewing a virtual router on the points tab, there is now an Advanced button on the far right side:

Clicking the Advanced button will open a dialog for advanced options. Currently the only option is a checkbox for Push Route on Base Io Enable which by default is off.

This option defines what happens when a virtual source or destination’s base point was set to enabled=false and changes to enabled=true. If the option is checked, then the existing route state will be re-applied in order to update the state of the base point that was just re-enabled with the current source. If this option is not enabled, no change will be made when the base point is enabled. That is, the route state may change to something like Other since the newly enabled base point does not fit the current source to destination pairing.

Sap Property Router

By selecting the Sap Property Router type, any property that can be read from in Pathfinder Core PRO can become a router source and any property that can be written to can become a router destination.

For example, in the legacy Pathfinder Pro it was possible to create a router of individual GPIO pins instead of routing entire ports using the GPIOByPin router. This same functionality can be realized with SapPropertyRouter in Pathfinder Core PRO.

Creating a Sap Property Router

To create a Sap Property Router, browse to the Routers navigation link and click the Plus icon to create a new router.

Select the Sap Property Router from the drop-down list of available Router Types. Click Add to create the new router.

Adding IOs

To add IOs to your new router, click the Details link and then click the Points tab.

Like the virtual router, you will see Import Sources and Import Destinations buttons as well as a Translation button. However, clicking these buttons for this router will display the property selector used in Logic Flows.

In the example above, we are going to select a GPI PinState property.

Type a name and description for the IO (or use the default) and click Select. Repeat for other pins you want as sources, then import the destinations.

Note that if the ports you are using for destinations are on a Livewire driver or Pathfinder Core PRO GPIO node, you can use GPI pins as the destination and route GPI to GPI. When you are done, it might look something like this:

If you go to the Routes tab you will see the destinations with a "take table" of the sources where you can make route changes.

In this example, GPI pin 5 has been routed to GPO pin 1. Therefore, any closures that take place on pin 5 will be replicated on pin 1.

Translation Patterns

Clicking the Translation button on the Points tab will open the translation pattern used for any values that pass from the source property to the routed destination properties. There is a single translation pattern that is used between the source values and destination values.

In the example above, the translation pattern is *=*. Using this pattern, a pin low on the source side will cause a pin low on all destinations to which the source is routed. By changing this translation to l=h and h=l, lows on the source would generate highs on any destination to which that source was routed.

Translation patterns may be applied to other properties. Applying a translation pattern of l=5000 to the Pulse state would force the output to go low for 5000ms each time the input went low. Without defining a h= value, nothing would happen when the input went high.

While we could achieve similar results with Logic Flows, configuring a router allows the start point of a flow to change dynamically. For example, suppose we have a Vmixer assigned to each air chain with channel 1 representing the feed from the studio console. There is a GPI pin in the studio which turns the Vmix channel on. This is simple to accomplish with a Logic Flow:

What if we have 5 studios and any one of them could be assigned to the air chain? Using Logic Flows this becomes much more complex because we must build flows for each studio-to-airchain variation. However, this becomes easy with a property router. On the source side of the router we select the GpiPinState property, and on the destination side we select all airchain Vmix IN state properties:

Once the items are selected, we can change the translation to:

Now when we route a studio pin to the airchain Vmix, the low from the studio will control the Vmix state of whichever airchain that studio happens to be routed to.

We can extend this example by using a virtual router where the virtual source package includes the audio console program buss audio source and the pin source from the SapProperty router, and the destination package includes the Vmix channel input audio destination and the Vmix state property from the property router.

These signals get married together such that a single virtual route change will switch both audio and signaling seamlessly. That virtual router can then be controlled by a third-party application using something like Probel without that application needing to know that we are actually switching numerous things under the hood. This opens up a whole new world of routing possibilities.

Another interesting example uses many of the new features described above. What if we wanted to route a TCP stream of song data to different destinations depending on what is currently on the air? We could create generic device emulators for each destination and each song data source. Using the regex capability, we could then add a watcher to the emulators on the source side that looks like:

Regex.Match((?s).*)

This will match any data coming in. Then, we create a new property router and choose the watcher TranslationValues for the soruces. For the destinations, we select the ToSend property of the destination generic emulators. This will essentially pass any data that comes into the source emulator to the output of destinations to which that source is routed. Then we could also marry those points into the air chain virtual router such that audio, studio pin to Vmix state, and songdata are all married together as a single virtual route.

Another possibility might be to route memory slots. Or, we could use the duration regex example above to capture different satellite duration data as source points in a router that then gets passed on to countdown clocks.

The point is, you can now route anything Pathfinder knows about.

In each example above, all sources and destinations in a given property router are of the same type. While this is not strictly required, it is usually good practice. Once you start mixing IO property types in the same router’s sources or destinations, the translation table can become non-intuitive and it is possible to output the wrong data to devices.

As there is no route state in the equipment for this type of routing, in order to retain the route state between restarts, this router must store all route changes (not the values transitioning through the routes) to the backing storage. In the case of the fanless engine which uses compact flash for this storage, we have implemented some protections to reduce the write cycles, though it is not recommended to make recursive millisecond route changes on Property routers if it can be avoided; for example, a rotation circuit that continuously loops through changing property routes. This is less of a concern with the R2 platform which uses SSD and the VM version.

Virtual Mixing Router

The virtual mixing router can be used to dynamically add and remove sources from a destination that accepts multiple sources like a vmixer. It's usage will be become more clear as we work through an example. To create a virtual mixing router, browse to the routers page and click the plus icon to add the router. From the Router Type, select Virtual Mixing Router, provide a name and description, and click Add.

The virtual mixing router is created and populated in the same way as a virtual router but it behaves differently. A virtual mixing router only allows a single base point for each source and assumes that the base points of a destination mix together. Therefore, you can apply multiple sources to the same destination up to the number of base points you have defined for the destination. Let’s see if we can make this clearer through an example. Let’s say you have 10 studios and 4 air-chains. However, some of these studios are news rooms which may need to be mixed in with the main studio. In this case you can use a vmixer on an engine to mix these together. And we could use the Virtual Mixing Router to dynamically route studios into the vmixer. To do this we would create the virtual mixing router like this:

Destination:

Source:

If we added additional sources and destinations where the destinations were comprised of multiple mixed (vmix) destinations and the source was a single source, we end up with a router that can look like this:

You will notice that the destination AirChain1 actually has three sources assigned to it and since under the hood the destination’s base points are in the same vmixer, these are mixed together. It is important to note that PathfinderCore PRO does not actually do any audio mixing. No audio passes through PathfinderCore PRO. Rather you are telling PathfinderCore PRO that these destinations are all a part of a mixer.

Routing a source to a destination in a Virtual Mixing Router is accomplished differently than in a normal router. In a normal router we assign a source to a destination using the CurrentSource or CurrentSourcePath property. With a Virtual Mixing Router we use a different set of properties called AddSource, RemoveSource, and SwapSource.

When you apply a source number to a virtual mixing destination’s AddSource Property, the system will review the destination’s base points. If the source is already assigned to one of the destination’s base points then no change is made. If it is not assigned and all of the base points already have a source assigned to them, then no change is made. If it is not assigned and once of the destination’s base points is cleared, then the source will be applied to that base point. Therefore, you can route as many sources to the destination as the destination has base points and they will be dynamically used.

Conversely, when a source number is applied to a destination’s RemoveSource property, the system will check to see if that source is applied to any of the destination’s base points, and if so it will clear that base point.

The SwapSource property checks to see if a source is applied to one of the destination’s base points and if not, it attempts the same actions as AddSource. If it is applied, then it executes a remove source. This is useful for toggle buttons that add and remove sources from a destination.

While this router’s sources can only have a single base point. It is possible to marry points together by putting the base points in a virtual router and then targeting the virtual router as the base points of a virtual mixing router.