====== How Content is Routed in BEYOND ====== ===== Introduction ===== Content routing to different Projection Zones in BEYOND can be done from several locations, in the animation when created, in the Cue properties, Timeline Track Properties, Timeline Event Properties, etc.; this document will discuss how BEYOND manages these routing instructions within the software. ===== BEYOND Content Routing ===== 
By design, BEYOND uses a hierarchal structure when determining what projection zones to route laser content to. For example, when you create laser content (Frame/animation, Text, Shape, etc.), you can define what Projection zone that content be displayed from within the content creation editor you create the content in. This zone designation will be used by default when the content is displayed. When that laser content is placed into a higher level object (Cue or Timeline event), the Projection zones where the content outputs to can be redefined.  The laser content itself is a lower level object and the cue and timeline events are higher level objects that have rights to redefine the projection zone routing.  

Of course, there are exceptions. For example, for safety reasons, you may want to disable rerouting of the content to other projection zones. In this case, the "prevent rerouting" option is inside the content creation editor options, and content will ignore what the higher level object defines. "Exceptional" cases are needed for low level objects. They should have a chance to work as defined. 

 By default, it is not recommended to use the "prevent rerouting" option. In this case you will have expected results on the higher level object. Embedded images will not prevent rerouting and the laser content will be output on projection zones defined in higher level objects.  

Conversely, using the "prevent rerouting" option will allow the building of complex laser displays. For example, if you need to create a laser display that will output different laser content to different projection zones at the same time. ===== A new Take on Synthesized Image ===== 
The Synthesized Image is a well known object as it was designed back in “QS 1.0 times”, but in BEYOND 2.0 it will be allowed to do more than before. The Synthesized Image allows the ability to combine multiple laser content items into one, complex image. If you set the "prevent rerouting" option for the laser content items within the complex Synthesized Image, the resulting output will be routed to multiple projection zones based on the projection zone routing defined in the editor used to create the content within the Synthesized Image. Previously such complex images were only possible by using the Capture or Timeline tools. As each laser content item has its own image properties (optimization settings, scan rate, projection zone routing, etc.) and the settings for each are controllable separately; for this reason, the Synthesized Image, image properties, are blocked. ===== Workspace Cue Player ===== 
When we talk about the Workspace Grid of BEYOND, we talk about the Cues holding laser content items. We click on a Cue to display the laser content within it. Within BEYOND, it is a bit more complex. The Workspace Cue is a container that holds laser content (Animations, Timeline Shows, Beams/DMX sequences, etc.) as well as additional information. When a cue is played, BEYOND creates a "player" internally. The Cue Player works in the back ground and does all the calculations and routing of the laser content to the Projection Zones which sends the display to the laser projectors. A player is the highest level object in the BEYOND routing hierarchy. The Preview window will also allow laser content routing in a live show situation. You may select a number of zones by clicking on their associated preview window (in grid mode), and then clicking on the cue you want to display from the selected zones. The moment the cue is clicked, BEYOND will use the selected projection zones and start the Cue Player. If no projection zones are selected, the Cue Player will use Cue properties to route the laser content and if the Cue properties have no settings defined, the routing define in the Image properties will be used.  ===== From Top to Bottom ===== 
When BEYOND processes laser content routing information, the route is defined as a string with the specified projection zone names the content will be sent to. The string may have more than one projection zone name; the order of names has a function as well. From top to bottom we deliver a string that can be somehow modified based on the hierarchal object routing information. The process starts from the Cue Player. If it knows the destination (routing), then it will put this information into the string. If the Cue Player does not know this information then it will produce an empty string.  

This string will be redirected to the Cue. For the Cue Player is the highest level object in the BEYOND routing hierarchy, and if the Player has defined the route, the Cue cannot change it, except in an "exceptional" case. If the Cue Player does not define a route, then the Cue has the rights to do define the route. So, the Cue may leave the routing as is, or define its own route (depending on the "prevent routing" condition). This routing scenario is repeated with the Image properties of any laser content. The Image receives the string with projection zone names, just as the Cue did, and normally it will follow the instruction of the Cue Player. 

Based on this process, you can see the routing information will be known only when the laser content has passed through the whole hierarchal structure, from Cue Player to the content creation editor. This way the laser content knows the projection zone it will be routed to before the content is calculated within the content creation editor. The main job of the content creation editor is to generate the points that make up the laser content which produces one or more laser content frames. All frames in the laser content will use the route (string with projection zone names) for its passage through routing hierarchal structure. A detail that should be reviewed separately; once the laser content receives the route, higher level objects cannot change it. This is different compare to all previous systems; it seems logical to calculate the frame first, before setting the destinations, but this model has downsides. ===== Between the Top and the Bottom ===== 
WIthin the routing hierarchal structure, the Cue Player is the highest level object and the laser content Image (Animation, Scrolling Text, etc.) are at the bottom of hierarchy (Cue Player->Cue->laser content Image). For more complex laser content constructions we have two other objects that are a compilation of multiple Cues, QuickCapture and Timeline Objects.

QuickCapture is nothing more than a list of "items". Each item may contain: - a Cue, an embedded cue or a link to an external event
 - Optional Routing information
 - an Effect - a Mute option.  In context of this discussion it is important to know that an Item may have routing information, and can redirect the output elsewhere. 

A Timeline object is a more complex object. A Timeline is a list of Tracks. A Track is a list of Lines. A Line is a list of Events. An Event contains a Cue (local or external) and many options are available for a Timeline including routing information. A Track can have routing information as well. The process for a Timeline to calculate laser content routing is: Cue Player->Cue->Timeline->Track->Event->Cue->"Laser Content". Typically a Timeline object uses a special set of routing rules. 
(...will be continued...) ===== Now from Bottom to Top ===== 
The laser content creation editor produces a frame. If the routing has been defined, this information will be stored inside the frame via the Image properties. When it comes time to apply effects to the laser content and store the frames according to the routing information for corresponding projection zones BEYOND can do at least two additional things: - BEYOND can calculate effects based on the defined routing information. The effect can be calculated with a time shift based on the number of zones in the "routing string". BEYOND takes the source frame, creates a copy for each zone, and applies the effect. At the end of this process, instead of 1 frames that goes to 10 zones, we have 10 frames with each copied frame going to its corresponding projection zone. Time shift is "adding", not a speed control. It can be controlled even in live mode, without "jumps". You select projection zones in Grid mode preview window and click on the Cue to start it. If the Cue has an applied effect, you may set the time shift of one effect item. Such effects should work from all places (workspace cue, FX tab, timeline, etc.). - Usually an effect operates with points. In the above option, we use the routing information of the frame for calculation but in BEYOND an effect may also change/modify routing information. The simplest example of this would be to make a new routing, or make a zone chase effect. When creating the effect, you will define a list of projection zones you want to route laser content to, and BEYOND will route the output to each zone in the list, in a sequence. - BEYOND can also unite the two options above to have one effect that will modify the previously defined routing while also calculating a time-shifted effect based on its own routing.  

Now imagine within the QuickFX tab (at the bottom of the BEYOND interface) you have programmed a line of the effects to modify the projection zone routing for cues being played. It means that you may have one cue running and then play with routing destinations from these QuickFX items. It seems like an "action" slider to control the “intensity” of the effect would work and allow you to softly introduce the routing change effect. 

The "problem" with modifying the projection zone routing by an effect is that the "prevent" re-routing option will be ignored. "Prevent rerouting" works when routing is calculated from "Top to Bottom". The simple solution for this problem is not to use an effect to change routing. Time-shift effects may work effectively with routing composed by "top to bottom". So, if you find this is a problem, do not use it.

 If you will decide to use routing inside effects you will not be able to change routing by the Grid mode preview window. This type of routing would be replaced by the QuickFX tab and you will need to prepare "a group of routing presets" in the QuickFX tab, but then you can use the Cue to play the image and the QuickFX tab for routing modification without the need to use the preview window grid. 

 ===== ProTracks ===== An alternative to the effect based routing described above is the ProTrack feature which has the functionality of the Cue Player. The ProTrack is a special type of player used to execute a cue. If needed, it will be able to calculate a few copies of the cue shifted by time. A ProTrack can also redefine routing and has a number of presets. The benefits of using a ProTrack is it is the first step of calculation path, and the "prevent rerouting" option will work fine. The down side is it is also the highest level of the routing hierarchy; It cannot be used in a QuickCapture object because QuickCapture will need a player, that will fit into a cue which causes a conflict. Additionally, ProTracks and other Timeline objects cannot be used in a Timeline for the same reason, because the Timeline creation process needs to have the functionality of the Player itself, in the lower level objects, such as a Cue, being displayed from the Timeline.